summary refs log tree commit diff
path: root/.vim/lua/lsp.lua
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--.vim/lua/lsp.lua30
1 files changed, 23 insertions, 7 deletions
diff --git a/.vim/lua/lsp.lua b/.vim/lua/lsp.lua
index 64a6895..98e9e58 100644
--- a/.vim/lua/lsp.lua
+++ b/.vim/lua/lsp.lua
@@ -16,12 +16,19 @@ local my_attach = function(client, bufnr)
     vim.keymap.set('n', '<C-]>'     , vim.lsp.buf.definition)
     vim.keymap.set('n', 'gd'        , vim.lsp.buf.definition)
     vim.keymap.set('n', 'gR'        , vim.lsp.buf.references)
+    wk_register({
+      ['gd'] = {'goto definition'},
+      ['gR'] = {'goto references'},
+    }, { buffer = bufnr })
   end
   if client.resolved_capabilities.hover then
     vim.keymap.set('n', 'K'         , vim.lsp.buf.hover)
   end
   if client.resolved_capabilities.rename then
     vim.keymap.set('n', 'grr'       , vim.lsp.buf.rename)
+    wk_register({
+      ['grr'] = {'rename'},
+    }, { buffer = bufnr })
   end
   if client.resolved_capabilities.signature_help then
     vim.keymap.set('n', '<c-h>'     , vim.lsp.buf.signature_help)
@@ -32,26 +39,35 @@ local my_attach = function(client, bufnr)
   end
   if client.resolved_capabilities.type_definition then
     vim.keymap.set('n', 'gT'        , vim.lsp.buf.type_definition)
+    wk_register({
+      ['gT'] = {'goto typedef'},
+    }, { buffer = bufnr })
   end
   if client.resolved_capabilities.declaration then
     vim.keymap.set('n', 'gD'        , vim.lsp.buf.declaration)
+    wk_register({
+      ['gD'] = {'goto declaration'},
+    }, { buffer = bufnr })
   end
   if client.resolved_capabilities.implementation then
     vim.keymap.set('n', 'gI'        , vim.lsp.buf.implementation)
+    wk_register({
+      ['gI'] = {'goto implementation'},
+    }, { buffer = bufnr })
   end
   if client.resolved_capabilities.workspace_symbol then
     vim.keymap.set('n', 'gW'        , vim.lsp.buf.workspace_symbol)
+    wk_register({
+      ['gW'] = {'goto symbol'},
+    }, { buffer = bufnr })
   end
   -- if client.resolved_capabilities.document_symbol then
   --   vim.keymap.set('n', 'g0', 'vim.lsp.buf.document_symbol')
   -- end
-
-  augroup {
-    lsp_user = {
-      {'BufWritePre' , '*'    ,  'lua require("lsp").format(vim.fn.expand("<afile>:p"))'},
-      {'BufWritePre' , '*.go' ,  'lua vim.lsp.buf.code_action({ only = {"source.organizeImports"} })'},
-    }
-  }
+  if client.supports_method('textDocument/codeAction') then
+    vim.keymap.set('n', 'ga', vim.lsp.buf.code_action)
+    wk_register({['ga'] = {'code action'}}, {buffer = bufnr})
+  end
 end
 
 local my_exit = function(code, signal, client_id)