diff --git a/nvim/lsp/gopls.lua b/nvim/lsp/gopls.lua index 38f2b64..6b88b92 100644 --- a/nvim/lsp/gopls.lua +++ b/nvim/lsp/gopls.lua @@ -21,6 +21,7 @@ return { compositeLiteralTypes = true, constantValues = true, functionTypeParameters = true, + ignoredError = true, rangeVariableTypes = true, parameterNames = true, }, diff --git a/nvim/lsp/lua_ls.lua b/nvim/lsp/lua_ls.lua index f71f2bd..4be10e8 100644 --- a/nvim/lsp/lua_ls.lua +++ b/nvim/lsp/lua_ls.lua @@ -19,6 +19,9 @@ return { end, settings = { Lua = { + codeLens = { + enable = true, + }, hint = { enable = true, arrayIndex = 'Enable', diff --git a/nvim/lua/config/autocmd.lua b/nvim/lua/config/autocmd.lua index 038f3a4..6184e7a 100644 --- a/nvim/lua/config/autocmd.lua +++ b/nvim/lua/config/autocmd.lua @@ -1,9 +1,3 @@ --- create undopath -vim.api.nvim_create_autocmd('VimEnter', { - command = 'silent !mkdir -p ' .. vim.fn.stdpath('data') .. 'undo', - group = vim.api.nvim_create_augroup('Init', {}), -}) - -- open :h in buffers vim.api.nvim_create_autocmd('BufWinEnter', { pattern = '*', @@ -31,6 +25,7 @@ vim.api.nvim_create_autocmd({ 'FileType' }, { vim.cmd('copen') -- move cursor to stay at same index (or up one if at EOF) vim.api.nvim_win_set_cursor(vim.fn.win_getid(), { ln < #qf and ln or math.max(ln - 1, 1), 0 }) + require('quicker').refresh() end, { buffer = true }) end, }) diff --git a/nvim/lua/config/keymaps.lua b/nvim/lua/config/keymaps.lua index 51a9f6e..62c630c 100644 --- a/nvim/lua/config/keymaps.lua +++ b/nvim/lua/config/keymaps.lua @@ -1,6 +1,7 @@ -- Switch tab length on the fly vim.keymap.set('n', '\\t', function() vim.o.tabstop = vim.o.tabstop == 8 and 2 or 2 * vim.o.tabstop + vim.notify('tabstop: ' .. vim.o.tabstop) end, { silent = true, desc = 'toggle tabstop' }) vim.keymap.set({ 'v', 'i' }, 'wq', 'l', { noremap = true, silent = true }) vim.keymap.set('v', '<', 'Trouble lsp toggle', { buffer = ev.buf, desc = 'Trouble LSP' }) - vim.keymap.set('n', 'gO', function() Snacks.picker.lsp_symbols { focus = 'list' } end, { buffer = ev.buf, desc = 'LSP symbols' }) - vim.keymap.set('n', '', function() - Snacks.picker.lsp_definitions { focus = 'list' } - end, { buffer = ev.buf, desc = 'LSP definition' }) - vim.keymap.set('n', 'grt', function() - Snacks.picker.lsp_type_definitions { focus = 'list' } - end, { buffer = ev.buf, desc = 'LSP type definition' }) - vim.keymap.set('n', 'grr', function() - Snacks.picker.lsp_references { focus = 'list' } - end, { buffer = ev.buf, desc = 'LSP refrences' }) - vim.keymap.set('n', 'gri', function() - Snacks.picker.lsp_implementations { focus = 'list' } - end, { buffer = ev.buf, desc = 'LSP implementations' }) vim.keymap.set('n', 'grh', function() vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled()) @@ -41,10 +27,10 @@ return { vim.keymap.set('n', 'grl', vim.lsp.codelens.run, { buffer = ev.buf, desc = 'vim.lsp.codelens.run()' }) vim.keymap.set('n', 'gre', function() - require('plugins.lib.snacks').diagnostics { buf = true } + vim.diagnostic.setloclist() end, { buffer = ev.buf, desc = 'LSP buffer diagnostics' }) vim.keymap.set('n', 'grE', function() - require('plugins.lib.snacks').diagnostics { cwd = false } + vim.diagnostic.setqflist() end, { buffer = ev.buf, desc = 'LSP diagnostics' }) vim.keymap.set('n', 'grc', function() @@ -55,7 +41,7 @@ return { end, { buffer = ev.buf, desc = 'LSP outgoing_calls' }) -- Auto-refresh code lenses - if client.server_capabilities.codeLensProvider then + if client:supports_method('textDocument/codeLens') or client.server_capabilities.codeLensProvider then vim.api.nvim_create_autocmd({ 'InsertLeave', 'TextChanged' }, { group = vim.api.nvim_create_augroup(string.format('lsp-%s-%s', ev.buf, client.id), {}), callback = function() diff --git a/nvim/lua/plugins/mini.lua b/nvim/lua/plugins/mini.lua index 136521a..c82350c 100644 --- a/nvim/lua/plugins/mini.lua +++ b/nvim/lua/plugins/mini.lua @@ -40,7 +40,7 @@ return { custom_textobjects = { i = extra_ai.indent(), g = extra_ai.buffer(), - l = extra_ai.line(), + e = extra_ai.line(), u = ai.gen_spec.function_call(), a = ai.gen_spec.treesitter { a = '@parameter.outer', i = '@parameter.inner' }, k = ai.gen_spec.treesitter { a = '@assignment.lhs', i = '@assignment.lhs' }, diff --git a/nvim/lua/plugins/misc.lua b/nvim/lua/plugins/misc.lua index d8b1a5f..dda4e34 100644 --- a/nvim/lua/plugins/misc.lua +++ b/nvim/lua/plugins/misc.lua @@ -121,6 +121,20 @@ return { end, desc = 'Refresh qflist', }, + { + 'q>', + function() + require('quicker').expand { before = 2, after = 2, add_to_existing = true } + end, + desc = 'Expand quickfix context', + }, + { + 'q<', + function() + require('quicker').collapse() + end, + desc = 'Collapse quickfix context', + }, }, }, } diff --git a/nvim/lua/plugins/snacks.lua b/nvim/lua/plugins/snacks.lua index 248937b..d6dd0b2 100644 --- a/nvim/lua/plugins/snacks.lua +++ b/nvim/lua/plugins/snacks.lua @@ -79,20 +79,6 @@ return { mode = { 'n', 't' }, desc = 'terminal open', }, - { - ']r', - function() - Snacks.words.jump(1, true) - end, - desc = 'next reference', - }, - { - '[r', - function() - Snacks.words.jump(-1, true) - end, - desc = 'next reference', - }, { '', function() @@ -179,6 +165,13 @@ return { end, desc = 'pick treesitter nodes', }, + { + 'fq', + function() + Snacks.picker.qflist() + end, + desc = 'pick quickfix list', + }, { 'jf', function()