Author: Kyle Fuller <kyle@fuller.li> 2024-04-03 22:39:11 +0100 +0100
Committer: Kyle Fuller <kyle@fuller.li> 2024-04-03 22:40:20 +0100 +0100
Commit: e83ffc8d35c437417f37b44ca091848ed8fd0b31
Parent: 6a9a09e230581237e72a7b559d226266aef2cd2c
feat(nvim): better lsp bindings
diff --git a/.config/nvim/lua/kyle/init.lua b/.config/nvim/lua/kyle/init.lua
index 0c4b72417795826db5f69a85581b93c0be8aa3d5..358ccfbc51d9f737d8215885195fc465ff0377c0 100644
--- a/.config/nvim/lua/kyle/init.lua
+++ b/.config/nvim/lua/kyle/init.lua
@@ -1 +1,2 @@
require('kyle.lspconfig')
+require('kyle.mapping')
diff --git a/.config/nvim/lua/kyle/mapping.lua b/.config/nvim/lua/kyle/mapping.lua
new file mode 100644
index 0000000000000000000000000000000000000000..052b926471f008f97bd53fe9c08f67eeb0142739
--- /dev/null
+++ b/.config/nvim/lua/kyle/mapping.lua
@@ -0,0 +1,22 @@
+vim.api.nvim_create_autocmd('LspAttach', {
+ callback = function(args)
+ local opts = { buffer = args.buf }
+
+ vim.keymap.set('n', '<Leader>k', vim.lsp.buf.hover, opts)
+
+ -- refactoring
+ vim.keymap.set('n', '<Leader>rn', vim.lsp.buf.rename, opts)
+ vim.keymap.set('n', '<Leader>m', function()
+ vim.lsp.buf.format { async = true }
+ end, opts)
+
+ -- goto
+ vim.keymap.set('n', 'gd', vim.lsp.buf.definition, opts)
+ vim.keymap.set('n', 'gD', vim.lsp.buf.type_definition, opts)
+ vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, opts)
+
+ -- find
+ local telescope = require'telescope.builtin'
+ vim.keymap.set('n', '<Leader>r', telescope.lsp_references)
+ end,
+})
diff --git a/.vim/vimrc b/.vim/vimrc
index 748c5d1329f9246922694f316e528ff29619b47c..880ecf575a25c5afe6d3bb747cf3b6ce1bcfccf7 100644
--- a/.vim/vimrc
+++ b/.vim/vimrc
@@ -11,9 +11,6 @@ nnoremap <Leader>O :lua require'telescope.builtin'.find_files{}<cr>
nnoremap <Leader>g :lua require'telescope.builtin'.live_grep{}<cr>
nnoremap <Leader>b :lua require'telescope.builtin'.buffers{}<cr>
-nnoremap <Leader>r :lua require'telescope.builtin'.lsp_references{}<cr>
-nnoremap <Leader>s :lua require'telescope.builtin'.lsp_document_symbols{}<cr>
-
nnoremap <Leader>f :NERDTreeFind<cr>
nnoremap <Leader>ag :Ack <cword><cr>