Take steps to a more IDE experience with neovim
This commit is contained in:
@ -10,12 +10,26 @@
|
||||
plugins = with pkgs.vimPlugins; [
|
||||
aerial-nvim
|
||||
zen-mode-nvim
|
||||
vim-commentary
|
||||
# vim-commentary
|
||||
ts-comments-nvim
|
||||
vim-fugitive
|
||||
gitsigns-nvim
|
||||
vim-repeat
|
||||
vim-surround
|
||||
nvim-tree-lua
|
||||
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-windowswap
|
||||
vim-nix
|
||||
@ -44,6 +58,12 @@
|
||||
markdown-preview-nvim
|
||||
vim-markdown
|
||||
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 ]))
|
||||
];
|
||||
|
||||
|
||||
@ -131,3 +131,40 @@ vim.api.nvim_create_user_command('TrimWhiteSpace', function()
|
||||
vim.cmd('%s/\\s\\+$//e')
|
||||
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', 'k', 'gk', {})
|
||||
|
||||
vim.keymap.set('n', '<C-h>', '<C-w>h', {})
|
||||
vim.keymap.set('n', '<C-j>', '<C-w>j', {})
|
||||
vim.keymap.set('n', '<C-k>', '<C-w>k', {})
|
||||
vim.keymap.set('n', '<C-l>', '<C-w>l', {})
|
||||
-- vim.keymap.set('n', '<C-h>', '<C-w>h', {})
|
||||
-- vim.keymap.set('n', '<C-j>', '<C-w>j', {})
|
||||
-- vim.keymap.set('n', '<C-k>', '<C-w>k', {})
|
||||
-- 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>', {})
|
||||
|
||||
@ -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>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
|
||||
vim.keymap.set({"n","x"}, "p", "<Plug>(YankyPutAfter)")
|
||||
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_cr = 1
|
||||
-- vim.g.delimitMate_expand_space=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_autoclose=1
|
||||
@ -210,3 +219,91 @@ require("nvim-tree").setup({
|
||||
-- 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