diff options
| author | Skladnayazebra <skladnayazebra@gmail.com> | 2026-04-09 12:20:42 +0200 |
|---|---|---|
| committer | Skladnayazebra <skladnayazebra@gmail.com> | 2026-04-09 12:20:42 +0200 |
| commit | 67a83e2466ea8b7abc74141f887fd39a1e9016cb (patch) | |
| tree | 56bab208dc7af01ded5de617648212ef16a11b2e /nvim/lua | |
| parent | 2f4a533074cba78de91df51431766169e7b10c19 (diff) | |
reconfigure treesitter for NeoVim 0.12; move stuff around
Diffstat (limited to 'nvim/lua')
| -rw-r--r-- | nvim/lua/config/keymaps.lua | 27 | ||||
| -rw-r--r-- | nvim/lua/config/lsp.lua | 6 | ||||
| -rw-r--r-- | nvim/lua/config/plugins/tree-sitter.lua | 40 | ||||
| -rw-r--r-- | nvim/lua/config/trailing-spaces.lua | 16 |
4 files changed, 71 insertions, 18 deletions
diff --git a/nvim/lua/config/keymaps.lua b/nvim/lua/config/keymaps.lua new file mode 100644 index 0000000..de2c737 --- /dev/null +++ b/nvim/lua/config/keymaps.lua @@ -0,0 +1,27 @@ + +vim.keymap.set('n', '<leader>c', '<C-w>c', { noremap = true, silent = true, desc = 'Close window' }) +vim.keymap.set('n', '<leader>o', '<C-w>o', { noremap = true, silent = true, desc = 'Close other windows' }) + +-- z means laZy (plugin manager) +vim.keymap.set('n', '<leader>z', ':Lazy<CR>', { noremap = true, silent = true, desc = 'Open Lazy.nvim' }) + +-- LSP binds +-- default gd searches only in current buffer as a keyword +vim.keymap.set('n', 'gd', vim.lsp.buf.definition, { noremap = true, silent = true, desc = 'Open definition' }) + +-- Fugitive shortcuts +vim.keymap.set('n', '<leader>gd', ':Gvdiffsplit<CR>', { noremap = true, silent = true, desc = 'Git diff (unstaged changes)' }) +vim.keymap.set('n', '<leader>gD', ':Gvdiffsplit HEAD<CR>', { noremap = true, silent = true, desc = 'Git diff (all changes after HEAD)' }) +vim.keymap.set('n', '<leader>gs', ':Git<CR>', { noremap = true, silent = true, desc = 'Git status' }) +vim.keymap.set('n', '<leader>gb', ':Git blame<CR>', { noremap = true, silent = true, desc = 'Git blame' }) +vim.keymap.set('n', '<leader>gl', ':Git log<CR>', { noremap = true, silent = true, desc = 'Git log' }) +vim.keymap.set('n', '<leader>gL', ':0Gclog<CR>', { noremap = true, silent = true, desc = 'Git log: this file' }) +vim.keymap.set('n', '<leader>ge', ':Gedit<CR>', { noremap = true, silent = true, desc = 'Git: return to worktree' }) + +vim.keymap.set('n', '<leader>e', ':lua MiniFiles.open(vim.api.nvim_buf_get_name(0), false)<CR>', { noremap = true, silent = true, desc = 'File Explorer' }) +vim.keymap.set('n', '<leader>aa', ':argadd<CR>:argdedupe<CR>', { noremap = true, silent = true, desc = 'Add to args' }) +vim.keymap.set('n', '<leader>ad', ':argdelete %<CR>', { noremap = true, silent = true, desc = 'Delete from args' }) +vim.keymap.set('n', '<leader>lr', ':LspRestart<CR>', { noremap = true, silent = true, desc = 'LSP: restart' }) +vim.keymap.set('n', '<leader>lx', ':LspStop<CR>', { noremap = true, silent = true, desc = 'LSP: stop' }) +vim.keymap.set('n', '<leader>ll', ':LspStart<CR>', { noremap = true, silent = true, desc = 'LSP: start' }) +vim.keymap.set('n', '<leader>li', ':LspInfo<CR>', { noremap = true, silent = true, desc = 'LSP: info' }) diff --git a/nvim/lua/config/lsp.lua b/nvim/lua/config/lsp.lua index b12b10d..6507c67 100644 --- a/nvim/lua/config/lsp.lua +++ b/nvim/lua/config/lsp.lua @@ -1,3 +1,9 @@ +-- LSP diagnostic info config (erorrs, warnings, etc.) +vim.diagnostic.config({ + -- use virtual text to show diagnostic messages + virtual_text = true, +}) + -- requires json language service - npm i -g vscode-langservers-extracted vim.lsp.enable('jsonls') vim.lsp.config('jsonls', { diff --git a/nvim/lua/config/plugins/tree-sitter.lua b/nvim/lua/config/plugins/tree-sitter.lua index d37f98b..a692c37 100644 --- a/nvim/lua/config/plugins/tree-sitter.lua +++ b/nvim/lua/config/plugins/tree-sitter.lua @@ -1,27 +1,31 @@ return { { "nvim-treesitter/nvim-treesitter", - branch = 'master', + branch = 'main', lazy = false, build = ":TSUpdate", config = function() - require'nvim-treesitter.configs'.setup { - -- A list of parser names, or "all" (the listed parsers MUST always be installed) - ensure_installed = { "c", "lua", "vim", "vimdoc", "query", "markdown", "markdown_inline" }, - - -- Automatically install missing parsers when entering buffer - -- Recommendation: set to false if you don't have `tree-sitter` CLI installed locally - auto_install = true, - - highlight = { - enable = true, - -- Setting this to true will run `:h syntax` and tree-sitter at the same time. - -- Set this to `true` if you depend on 'syntax' being enabled (like for indentation). - -- Using this option may slow down your editor, and you may see some duplicate highlights. - -- Instead of true it can also be a list of languages - additional_vim_regex_highlighting = false, - }, - } + require('nvim-treesitter').install { + "bash", + "c", + "css", + "gitignore", + "html", + "ini", -- .npmrc + "javascript", + "json", + "lua", + "lua", + "markdown", + "markdown_inline", -- code blocks inside .md + "query", + "scss", + "tsx", + "typescript", + "vim", + "vimdoc", + "yaml", + } end } } diff --git a/nvim/lua/config/trailing-spaces.lua b/nvim/lua/config/trailing-spaces.lua new file mode 100644 index 0000000..2bb4cbf --- /dev/null +++ b/nvim/lua/config/trailing-spaces.lua @@ -0,0 +1,16 @@ +-- highlights trailing spaces +vim.cmd('match Search /\\s\\+$/') + +-- disable highlight when going into insert mode +vim.api.nvim_create_autocmd({'ModeChanged'}, { + pattern = {'*:i'}, + command = 'match none', +}) + +-- highlights trailing spaces when going back to normal mode +vim.api.nvim_create_autocmd({'ModeChanged'}, { + pattern = {'*:n'}, + command = 'match Search /\\s\\+$/', +}) + +vim.keymap.set('n', '<leader>t', ':%s/\\s\\+$//g<CR>', { noremap = true, silent = true, desc = 'Remove Trailing Whitespaces' }) |
