Add whichkey and lsp configs for python
This commit is contained in:
53
lua/plugins/whichkey.lua
Normal file
53
lua/plugins/whichkey.lua
Normal file
@@ -0,0 +1,53 @@
|
||||
return { -- Useful plugin to show you pending keybinds.
|
||||
'folke/which-key.nvim',
|
||||
event = 'VimEnter', -- Sets the loading event to 'VimEnter'
|
||||
opts = {
|
||||
icons = {
|
||||
-- set icon mappings to true if you have a Nerd Font
|
||||
mappings = vim.g.have_nerd_font,
|
||||
-- If you are using a Nerd Font: set icons.keys to an empty table which will use the
|
||||
-- default whick-key.nvim defined Nerd Font icons, otherwise define a string table
|
||||
keys = vim.g.have_nerd_font and {} or {
|
||||
Up = '<Up> ',
|
||||
Down = '<Down> ',
|
||||
Left = '<Left> ',
|
||||
Right = '<Right> ',
|
||||
C = '<C-…> ',
|
||||
M = '<M-…> ',
|
||||
D = '<D-…> ',
|
||||
S = '<S-…> ',
|
||||
CR = '<CR> ',
|
||||
Esc = '<Esc> ',
|
||||
ScrollWheelDown = '<ScrollWheelDown> ',
|
||||
ScrollWheelUp = '<ScrollWheelUp> ',
|
||||
NL = '<NL> ',
|
||||
BS = '<BS> ',
|
||||
Space = '<Space> ',
|
||||
Tab = '<Tab> ',
|
||||
F1 = '<F1>',
|
||||
F2 = '<F2>',
|
||||
F3 = '<F3>',
|
||||
F4 = '<F4>',
|
||||
F5 = '<F5>',
|
||||
F6 = '<F6>',
|
||||
F7 = '<F7>',
|
||||
F8 = '<F8>',
|
||||
F9 = '<F9>',
|
||||
F10 = '<F10>',
|
||||
F11 = '<F11>',
|
||||
F12 = '<F12>',
|
||||
},
|
||||
},
|
||||
|
||||
-- Document existing key chains
|
||||
spec = {
|
||||
{ '<leader>c', group = '[C]ode', mode = { 'n', 'x' } },
|
||||
{ '<leader>d', group = '[D]ocument' },
|
||||
{ '<leader>r', group = '[R]ename' },
|
||||
{ '<leader>s', group = '[S]earch' },
|
||||
{ '<leader>w', group = '[W]orkspace' },
|
||||
{ '<leader>t', group = '[T]oggle' },
|
||||
{ '<leader>h', group = 'Git [H]unk', mode = { 'n', 'v' } },
|
||||
},
|
||||
},
|
||||
}
|
||||
38
lua/shillerben/lsp.lua
Normal file
38
lua/shillerben/lsp.lua
Normal file
@@ -0,0 +1,38 @@
|
||||
vim.api.nvim_create_autocmd('LspAttach', {
|
||||
group = vim.api.nvim_create_augroup('lsp-attach', { clear = true }),
|
||||
callback = function(args)
|
||||
local opts = { buffer = args.buf }
|
||||
vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, opts)
|
||||
vim.keymap.set('n', 'gd', vim.lsp.buf.definition, opts)
|
||||
vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, opts)
|
||||
vim.keymap.set('n', 'gr', vim.lsp.buf.references, opts)
|
||||
vim.keymap.set('n', 'K', vim.lsp.buf.hover, opts)
|
||||
vim.keymap.set('n', 'rn', vim.lsp.buf.rename, opts)
|
||||
vim.keymap.set('n', '<C-i>', vim.lsp.buf.signature_help, opts)
|
||||
vim.keymap.set('n', '<C-k>', vim.lsp.buf.format, opts)
|
||||
end,
|
||||
})
|
||||
|
||||
|
||||
-- Python config
|
||||
|
||||
vim.api.nvim_create_autocmd('FileType', {
|
||||
pattern = 'python',
|
||||
group = vim.api.nvim_create_augroup('lsp-python', { clear = true }),
|
||||
callback = function(args)
|
||||
vim.lsp.start({
|
||||
name = 'pyright',
|
||||
cmd = {'pyright-langserver', '--stdio'},
|
||||
-- uncomment after upgrading neovim > 0.10
|
||||
--root_dir = vim.fs.root(args.buf, {'setup.py', 'pyproject.toml'}),
|
||||
root_dir = vim.fs.dirname(vim.fs.find({'setup.py', 'pyproject.toml'}, { upward = true })[1]),
|
||||
})
|
||||
vim.lsp.start({
|
||||
name = 'ruff',
|
||||
cmd = {'ruff', 'server'},
|
||||
-- uncomment after upgrading neovim > 0.10
|
||||
--root_dir = vim.fs.root(args.buf, {'setup.py', 'pyproject.toml'}),
|
||||
root_dir = vim.fs.dirname(vim.fs.find({'setup.py', 'pyproject.toml'}, { upward = true })[1]),
|
||||
})
|
||||
end,
|
||||
})
|
||||
Reference in New Issue
Block a user