Take steps to a more IDE experience with neovim
This commit is contained in:
@ -10,12 +10,26 @@
|
|||||||
plugins = with pkgs.vimPlugins; [
|
plugins = with pkgs.vimPlugins; [
|
||||||
aerial-nvim
|
aerial-nvim
|
||||||
zen-mode-nvim
|
zen-mode-nvim
|
||||||
vim-commentary
|
# vim-commentary
|
||||||
|
ts-comments-nvim
|
||||||
|
vim-fugitive
|
||||||
|
gitsigns-nvim
|
||||||
vim-repeat
|
vim-repeat
|
||||||
vim-surround
|
vim-surround
|
||||||
nvim-tree-lua
|
nvim-tree-lua
|
||||||
targets-vim
|
targets-vim
|
||||||
delimitMate
|
# delimitMate
|
||||||
|
mini-pairs
|
||||||
|
mini-align
|
||||||
|
mini-bracketed
|
||||||
|
mini-splitjoin
|
||||||
|
mini-move
|
||||||
|
mini-ai
|
||||||
|
flash-nvim
|
||||||
|
trouble-nvim
|
||||||
|
conform-nvim
|
||||||
|
nvim-lint
|
||||||
|
todo-comments-nvim
|
||||||
# vim-startify
|
# vim-startify
|
||||||
vim-windowswap
|
vim-windowswap
|
||||||
vim-nix
|
vim-nix
|
||||||
@ -44,6 +58,12 @@
|
|||||||
markdown-preview-nvim
|
markdown-preview-nvim
|
||||||
vim-markdown
|
vim-markdown
|
||||||
bullets-vim
|
bullets-vim
|
||||||
|
obsidian-nvim
|
||||||
|
nvim-dap
|
||||||
|
nvim-nio
|
||||||
|
nvim-dap-ui
|
||||||
|
nvim-dap-go
|
||||||
|
nvim-dap-python
|
||||||
(nvim-treesitter.withPlugins (p: [ p.awk p.bash p.c p.c_sharp p.cpp p.css p.diff p.dockerfile p.doxygen p.git_config p.gitcommit p.go p.gomod p.gosum p.gotmpl p.helm p.haskell p.html p.http p.java p.javascript p.json p.latex p.lua p.markdown p.markdown_inline p.matlab p.nix p.printf p.python p.regex p.rust p.sql p.strace p.supercollider p.svelte p.swift p.terraform p.tmux p.toml p.typescript p.vim p.xml p.yaml p.zig ]))
|
(nvim-treesitter.withPlugins (p: [ p.awk p.bash p.c p.c_sharp p.cpp p.css p.diff p.dockerfile p.doxygen p.git_config p.gitcommit p.go p.gomod p.gosum p.gotmpl p.helm p.haskell p.html p.http p.java p.javascript p.json p.latex p.lua p.markdown p.markdown_inline p.matlab p.nix p.printf p.python p.regex p.rust p.sql p.strace p.supercollider p.svelte p.swift p.terraform p.tmux p.toml p.typescript p.vim p.xml p.yaml p.zig ]))
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
@ -131,3 +131,40 @@ vim.api.nvim_create_user_command('TrimWhiteSpace', function()
|
|||||||
vim.cmd('%s/\\s\\+$//e')
|
vim.cmd('%s/\\s\\+$//e')
|
||||||
end, {})
|
end, {})
|
||||||
|
|
||||||
|
|
||||||
|
---------------------------
|
||||||
|
------- DIAGNOSTICS -------
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
vim.diagnostic.config({
|
||||||
|
update_in_insert = true,
|
||||||
|
signs = true,
|
||||||
|
virtual_text = {
|
||||||
|
prefix = '● ',
|
||||||
|
current_line = false,
|
||||||
|
severity = {
|
||||||
|
-- min = vim.diagnostic.severity.INFO,
|
||||||
|
max = vim.diagnostic.severity.INFO,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
virtual_lines = {
|
||||||
|
current_line = false,
|
||||||
|
severity = {
|
||||||
|
min = vim.diagnostic.severity.WARN,
|
||||||
|
-- max = vim.diagnostic.severity.WARN,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
float = {
|
||||||
|
prefix = '',
|
||||||
|
focusable = false,
|
||||||
|
style = "minimal",
|
||||||
|
border = "rounded",
|
||||||
|
source = "always",
|
||||||
|
header = "",
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.cmd([[highlight DiagnosticUnderlineError gui=undercurl guifg=Red]])
|
||||||
|
vim.cmd([[highlight DiagnosticUnderlineWarn gui=undercurl guifg=Yellow]])
|
||||||
|
vim.cmd([[highlight DiagnosticUnderlineInfo gui=undercurl guifg=Blue]])
|
||||||
|
vim.cmd([[highlight DiagnosticUnderlineHint gui=undercurl guifg=Cyan]])
|
||||||
|
|||||||
@ -6,10 +6,18 @@ vim.keymap.set('n', 'k', 'gk', {})
|
|||||||
vim.keymap.set('v', 'j', 'gj', {})
|
vim.keymap.set('v', 'j', 'gj', {})
|
||||||
vim.keymap.set('v', 'k', 'gk', {})
|
vim.keymap.set('v', 'k', 'gk', {})
|
||||||
|
|
||||||
vim.keymap.set('n', '<C-h>', '<C-w>h', {})
|
-- vim.keymap.set('n', '<C-h>', '<C-w>h', {})
|
||||||
vim.keymap.set('n', '<C-j>', '<C-w>j', {})
|
-- vim.keymap.set('n', '<C-j>', '<C-w>j', {})
|
||||||
vim.keymap.set('n', '<C-k>', '<C-w>k', {})
|
-- vim.keymap.set('n', '<C-k>', '<C-w>k', {})
|
||||||
vim.keymap.set('n', '<C-l>', '<C-w>l', {})
|
-- vim.keymap.set('n', '<C-l>', '<C-w>l', {})
|
||||||
|
vim.keymap.set('n', '<C-M-h>', '<C-w>h', {})
|
||||||
|
vim.keymap.set('n', '<C-M-j>', '<C-w>j', {})
|
||||||
|
vim.keymap.set('n', '<C-M-k>', '<C-w>k', {})
|
||||||
|
vim.keymap.set('n', '<C-M-l>', '<C-w>l', {})
|
||||||
|
vim.keymap.set('t', '<C-M-h>', '<C-\\><C-n><C-w>h', {})
|
||||||
|
vim.keymap.set('t', '<C-M-j>', '<C-\\><C-n><C-w>j', {})
|
||||||
|
vim.keymap.set('t', '<C-M-k>', '<C-\\><C-n><C-w>k', {})
|
||||||
|
vim.keymap.set('t', '<C-M-l>', '<C-\\><C-n><C-w>l', {})
|
||||||
|
|
||||||
vim.keymap.set('n', '<leader>s', ':call WindowSwap#EasyWindowSwap()<CR>', {})
|
vim.keymap.set('n', '<leader>s', ':call WindowSwap#EasyWindowSwap()<CR>', {})
|
||||||
|
|
||||||
@ -26,6 +34,12 @@ vim.keymap.set('n', '<leader>fs', telebuiltin.grep_string, { silent = true })
|
|||||||
vim.keymap.set('n', '<leader>o', telebuiltin.buffers, { silent = true })
|
vim.keymap.set('n', '<leader>o', telebuiltin.buffers, { silent = true })
|
||||||
vim.keymap.set('n', '<leader>fh', telebuiltin.help_tags, { silent = true })
|
vim.keymap.set('n', '<leader>fh', telebuiltin.help_tags, { silent = true })
|
||||||
|
|
||||||
|
-- Trouble
|
||||||
|
vim.keymap.set('n', '<leader>cs', '<cmd>Trouble symbols toggle focus=true win.position=right<cr>')
|
||||||
|
vim.keymap.set('n', '<leader>cl', '<cmd>Trouble lsp toggle focus=true win.position=right<cr>')
|
||||||
|
vim.keymap.set('n', '<leader>cd', '<cmd>Trouble diagnostics toggle focus=true win.position=bottom<cr>')
|
||||||
|
vim.keymap.set('n', '<leader>cq', '<cmd>Trouble quickfix toggle focus=true win.position=bottom<cr>')
|
||||||
|
|
||||||
-- Yanky
|
-- Yanky
|
||||||
vim.keymap.set({"n","x"}, "p", "<Plug>(YankyPutAfter)")
|
vim.keymap.set({"n","x"}, "p", "<Plug>(YankyPutAfter)")
|
||||||
vim.keymap.set({"n","x"}, "P", "<Plug>(YankyPutBefore)")
|
vim.keymap.set({"n","x"}, "P", "<Plug>(YankyPutBefore)")
|
||||||
|
|||||||
101
nvim/plugins.lua
101
nvim/plugins.lua
@ -1,5 +1,14 @@
|
|||||||
vim.g.delimitMate_expand_space=1
|
-- vim.g.delimitMate_expand_space=1
|
||||||
vim.g.delimitMate_expand_cr = 1
|
-- vim.g.delimitMate_expand_cr = 1
|
||||||
|
|
||||||
|
require('mini.pairs').setup()
|
||||||
|
require('mini.align').setup()
|
||||||
|
require('mini.bracketed').setup()
|
||||||
|
require('mini.splitjoin').setup()
|
||||||
|
require('mini.move').setup()
|
||||||
|
require('mini.move').setup()
|
||||||
|
require('flash').setup()
|
||||||
|
require('ts-comments').setup()
|
||||||
|
|
||||||
vim.g.tagbar_left=1
|
vim.g.tagbar_left=1
|
||||||
vim.g.tagbar_autoclose=1
|
vim.g.tagbar_autoclose=1
|
||||||
@ -210,3 +219,91 @@ require("nvim-tree").setup({
|
|||||||
-- dotfiles = true,
|
-- dotfiles = true,
|
||||||
-- },
|
-- },
|
||||||
})
|
})
|
||||||
|
|
||||||
|
require('gitsigns').setup {
|
||||||
|
signs = {
|
||||||
|
add = { text = '┃' },
|
||||||
|
change = { text = '┃' },
|
||||||
|
delete = { text = '_' },
|
||||||
|
topdelete = { text = '‾' },
|
||||||
|
changedelete = { text = '~' },
|
||||||
|
untracked = { text = '┆' },
|
||||||
|
},
|
||||||
|
signs_staged = {
|
||||||
|
add = { text = '┃' },
|
||||||
|
change = { text = '┃' },
|
||||||
|
delete = { text = '_' },
|
||||||
|
topdelete = { text = '‾' },
|
||||||
|
changedelete = { text = '~' },
|
||||||
|
untracked = { text = '┆' },
|
||||||
|
},
|
||||||
|
signs_staged_enable = true,
|
||||||
|
signcolumn = true, -- Toggle with `:Gitsigns toggle_signs`
|
||||||
|
numhl = false, -- Toggle with `:Gitsigns toggle_numhl`
|
||||||
|
linehl = false, -- Toggle with `:Gitsigns toggle_linehl`
|
||||||
|
word_diff = false, -- Toggle with `:Gitsigns toggle_word_diff`
|
||||||
|
watch_gitdir = {
|
||||||
|
follow_files = true
|
||||||
|
},
|
||||||
|
auto_attach = true,
|
||||||
|
attach_to_untracked = false,
|
||||||
|
current_line_blame = false, -- Toggle with `:Gitsigns toggle_current_line_blame`
|
||||||
|
current_line_blame_opts = {
|
||||||
|
virt_text = true,
|
||||||
|
virt_text_pos = 'eol', -- 'eol' | 'overlay' | 'right_align'
|
||||||
|
delay = 1000,
|
||||||
|
ignore_whitespace = false,
|
||||||
|
virt_text_priority = 100,
|
||||||
|
use_focus = true,
|
||||||
|
},
|
||||||
|
current_line_blame_formatter = '<author>, <author_time:%R> - <summary>',
|
||||||
|
sign_priority = 6,
|
||||||
|
update_debounce = 100,
|
||||||
|
status_formatter = nil, -- Use default
|
||||||
|
max_file_length = 40000, -- Disable if file is longer than this (in lines)
|
||||||
|
preview_config = {
|
||||||
|
-- Options passed to nvim_open_win
|
||||||
|
style = 'minimal',
|
||||||
|
relative = 'cursor',
|
||||||
|
row = 0,
|
||||||
|
col = 1
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
require("obsidian").setup({
|
||||||
|
workspaces = {
|
||||||
|
{
|
||||||
|
name = "privat",
|
||||||
|
path = "~/Documents/notes/privat",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "joplin",
|
||||||
|
path = "~/Documents/notes/fromjoplin",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
require("conform").setup({
|
||||||
|
python = {"black"},
|
||||||
|
rust = {"rustfmt"},
|
||||||
|
go = {"gofmt"},
|
||||||
|
})
|
||||||
|
|
||||||
|
require("trouble").setup()
|
||||||
|
require("todo-comments").setup()
|
||||||
|
|
||||||
|
require("dapui").setup()
|
||||||
|
|
||||||
|
local dap, dapui = require("dap"), require("dapui")
|
||||||
|
dap.listeners.before.attach.dapui_config = function()
|
||||||
|
dapui.open()
|
||||||
|
end
|
||||||
|
dap.listeners.before.launch.dapui_config = function()
|
||||||
|
dapui.open()
|
||||||
|
end
|
||||||
|
dap.listeners.before.event_terminated.dapui_config = function()
|
||||||
|
dapui.close()
|
||||||
|
end
|
||||||
|
dap.listeners.before.event_exited.dapui_config = function()
|
||||||
|
dapui.close()
|
||||||
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user