Update neovim keybindings & setup ruff lsp

This commit is contained in:
Sonny Bakker 2024-08-23 07:55:15 +02:00
parent f817379950
commit a458963ff0
3 changed files with 45 additions and 17 deletions

View file

@ -5,3 +5,7 @@ vim.api.nvim_set_keymap('n', 'ff', '<cmd>lua require("telescope.builtin").find_f
vim.api.nvim_set_keymap('n', 'fg', '<cmd>lua require("telescope.builtin").live_grep()<CR>', opts) vim.api.nvim_set_keymap('n', 'fg', '<cmd>lua require("telescope.builtin").live_grep()<CR>', opts)
vim.api.nvim_set_keymap('n', 'fb', '<cmd>lua require("telescope.builtin").buffers()<CR>', opts) vim.api.nvim_set_keymap('n', 'fb', '<cmd>lua require("telescope.builtin").buffers()<CR>', opts)
vim.api.nvim_set_keymap('n', 'fh', '<cmd>lua require("telescope.builtin").help_tags()<CR>', opts) vim.api.nvim_set_keymap('n', 'fh', '<cmd>lua require("telescope.builtin").help_tags()<CR>', opts)
vim.api.nvim_set_keymap('n', 'fj', '<cmd>lua require("telescope.builtin").jumplist()<CR>', opts)
vim.api.nvim_set_keymap('n', 'fl', '<cmd>lua require("telescope.builtin").loclist()<CR>', opts)
vim.api.nvim_set_keymap('n', 'fq', '<cmd>lua require("telescope.builtin").quickfix()<CR>', opts)
vim.api.nvim_set_keymap('n', 'fm', '<cmd>lua require("telescope.builtin").marks()<CR>', opts)

View file

@ -10,14 +10,26 @@ local on_attach = function(client, bufnr)
buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc') buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc')
-- mappings -- 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', '<C-k>', vim.lsp.buf.signature_help, opts)
vim.keymap.set('n', '<space>wa', vim.lsp.buf.add_workspace_folder, opts)
vim.keymap.set('n', '<space>wr', vim.lsp.buf.remove_workspace_folder, opts)
vim.keymap.set('n', '<space>wl', function()
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
end, opts)
vim.keymap.set('n', '<space>D', vim.lsp.buf.type_definition, opts)
vim.keymap.set('n', '<space>rn', vim.lsp.buf.rename, opts)
vim.keymap.set('n', 'gr', vim.lsp.buf.references, opts)
vim.keymap.set('n', '<space>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', '<space>q', vim.diagnostic.setloclist, opts)
vim.keymap.set('n', '<space>la', vim.lsp.buf.code_action, opts)
--see `:help vim.lsp.*` for documentation on any of the below functions
buf_set_keymap('n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<CR>', opts)
buf_set_keymap('n', 'gd', '<cmd>lua vim.lsp.buf.definition()<CR>', opts)
buf_set_keymap('n', 'K', '<cmd>lua vim.lsp.buf.hover()<CR>', opts)
buf_set_keymap('n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>', opts)
buf_set_keymap('n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<CR>', opts)
end end
@ -55,6 +67,13 @@ local python_root_dir = function(fname)
util.path.dirname(fname) util.path.dirname(fname)
end end
nvim_lsp.ruff_lsp.setup({
on_attach = on_attach,
capabilities = capabilities,
root_dir = python_root_dir
})
nvim_lsp.pylsp.setup({ nvim_lsp.pylsp.setup({
on_attach = on_attach, on_attach = on_attach,
capabilities = capabilities, capabilities = capabilities,
@ -63,24 +82,24 @@ nvim_lsp.pylsp.setup({
pylsp = { pylsp = {
plugins = { plugins = {
ruff = { ruff = {
enabled = true enabled = false
} },
jedi_completion = { fuzzy = true }
} }
} }
}, },
root_dir = python_root_dir 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({ nvim_lsp.pyright.setup({
on_attach = on_attach, settings = {
capabilities = pyright_capabilities, pyright = {
root_dir = python_root_dir -- Using Ruff's import organizer
disableOrganizeImports = true,
},
},
}) })
nvim_lsp.html.setup({ nvim_lsp.html.setup({
on_attach = on_attach, on_attach = on_attach,
capabilities = capabilities, capabilities = capabilities,

View file

@ -36,7 +36,7 @@ aur_build_dir: '/usr/local/src'
python_build_dir: '/usr/local/src' python_build_dir: '/usr/local/src'
python_install_dir: '/opt' 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. # packages should be installed to the corresponding virtualenv as well.
language_servers: language_servers:
- { - {
@ -79,6 +79,11 @@ language_servers:
server_name: 'lua_ls', server_name: 'lua_ls',
auto_setup: true auto_setup: true
} }
- {
package: ruff-lsp,
server_name: 'ruff_lsp',
auto_setup: false
}
python_download_url: 'https://www.python.org/ftp/python' python_download_url: 'https://www.python.org/ftp/python'
python_versions: python_versions: