diff --git a/templates/nvim/lua/keybindings.lua.j2 b/templates/nvim/lua/keybindings.lua.j2 index 23c272a..a9cad32 100644 --- a/templates/nvim/lua/keybindings.lua.j2 +++ b/templates/nvim/lua/keybindings.lua.j2 @@ -5,3 +5,7 @@ vim.api.nvim_set_keymap('n', 'ff', 'lua require("telescope.builtin").find_f vim.api.nvim_set_keymap('n', 'fg', 'lua require("telescope.builtin").live_grep()', opts) vim.api.nvim_set_keymap('n', 'fb', 'lua require("telescope.builtin").buffers()', opts) vim.api.nvim_set_keymap('n', 'fh', 'lua require("telescope.builtin").help_tags()', opts) +vim.api.nvim_set_keymap('n', 'fj', 'lua require("telescope.builtin").jumplist()', opts) +vim.api.nvim_set_keymap('n', 'fl', 'lua require("telescope.builtin").loclist()', opts) +vim.api.nvim_set_keymap('n', 'fq', 'lua require("telescope.builtin").quickfix()', opts) +vim.api.nvim_set_keymap('n', 'fm', 'lua require("telescope.builtin").marks()', opts) diff --git a/templates/nvim/lua/lsp.lua.j2 b/templates/nvim/lua/lsp.lua.j2 index 507eb54..23a12ce 100644 --- a/templates/nvim/lua/lsp.lua.j2 +++ b/templates/nvim/lua/lsp.lua.j2 @@ -10,14 +10,26 @@ local on_attach = function(client, bufnr) buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc') -- mappings - local opts = { noremap=true, silent=true } + local opts = { buffer = bufnr, noremap = true, silent = true } + vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, opts) + vim.keymap.set('n', 'gd', vim.lsp.buf.definition, opts) + vim.keymap.set('n', 'K', vim.lsp.buf.hover, opts) + vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, opts) + vim.keymap.set('n', '', vim.lsp.buf.signature_help, opts) + vim.keymap.set('n', 'wa', vim.lsp.buf.add_workspace_folder, opts) + vim.keymap.set('n', 'wr', vim.lsp.buf.remove_workspace_folder, opts) + vim.keymap.set('n', 'wl', function() + print(vim.inspect(vim.lsp.buf.list_workspace_folders())) + end, opts) + vim.keymap.set('n', 'D', vim.lsp.buf.type_definition, opts) + vim.keymap.set('n', 'rn', vim.lsp.buf.rename, opts) + vim.keymap.set('n', 'gr', vim.lsp.buf.references, opts) + vim.keymap.set('n', 'e', vim.diagnostic.open_float, opts) + vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, opts) + vim.keymap.set('n', ']d', vim.diagnostic.goto_next, opts) + vim.keymap.set('n', 'q', vim.diagnostic.setloclist, opts) + vim.keymap.set('n', 'la', vim.lsp.buf.code_action, opts) - --see `:help vim.lsp.*` for documentation on any of the below functions - buf_set_keymap('n', 'gD', 'lua vim.lsp.buf.declaration()', opts) - buf_set_keymap('n', 'gd', 'lua vim.lsp.buf.definition()', opts) - buf_set_keymap('n', 'K', 'lua vim.lsp.buf.hover()', opts) - buf_set_keymap('n', 'gi', 'lua vim.lsp.buf.implementation()', opts) - buf_set_keymap('n', '', 'lua vim.lsp.buf.signature_help()', opts) end @@ -55,6 +67,13 @@ local python_root_dir = function(fname) util.path.dirname(fname) end +nvim_lsp.ruff_lsp.setup({ + on_attach = on_attach, + capabilities = capabilities, + root_dir = python_root_dir +}) + + nvim_lsp.pylsp.setup({ on_attach = on_attach, capabilities = capabilities, @@ -63,24 +82,24 @@ nvim_lsp.pylsp.setup({ pylsp = { plugins = { ruff = { - enabled = true - } + enabled = false + }, + jedi_completion = { fuzzy = true } } } }, root_dir = python_root_dir }) -local pyright_capabilities = vim.lsp.protocol.make_client_capabilities() -pyright_capabilities.textDocument.publishDiagnostics.tagSupport.valueSet = { 2 } - nvim_lsp.pyright.setup({ - on_attach = on_attach, - capabilities = pyright_capabilities, - root_dir = python_root_dir + settings = { + pyright = { + -- Using Ruff's import organizer + disableOrganizeImports = true, + }, + }, }) - nvim_lsp.html.setup({ on_attach = on_attach, capabilities = capabilities, diff --git a/vars/archlinux.yml b/vars/archlinux.yml index 8a9b760..e9767d3 100644 --- a/vars/archlinux.yml +++ b/vars/archlinux.yml @@ -36,7 +36,7 @@ aur_build_dir: '/usr/local/src' python_build_dir: '/usr/local/src' python_install_dir: '/opt' -# Note that the "python-lsp-server", "python-lsp-ruff" and "neovim" python +# Note that the "python-lsp-server" and "neovim" python # packages should be installed to the corresponding virtualenv as well. language_servers: - { @@ -79,6 +79,11 @@ language_servers: server_name: 'lua_ls', auto_setup: true } + - { + package: ruff-lsp, + server_name: 'ruff_lsp', + auto_setup: false + } python_download_url: 'https://www.python.org/ftp/python' python_versions: