aboutsummaryrefslogtreecommitdiffstats
path: root/vim/nvim/lua/config/lsp.lua
diff options
context:
space:
mode:
Diffstat (limited to 'vim/nvim/lua/config/lsp.lua')
-rw-r--r--vim/nvim/lua/config/lsp.lua41
1 files changed, 40 insertions, 1 deletions
diff --git a/vim/nvim/lua/config/lsp.lua b/vim/nvim/lua/config/lsp.lua
index 7564795..81d4572 100644
--- a/vim/nvim/lua/config/lsp.lua
+++ b/vim/nvim/lua/config/lsp.lua
@@ -3,12 +3,32 @@ local capabilities = require("cmp_nvim_lsp").default_capabilities()
local lsp_flags = {
debounce_text_changes = 150,
}
+local on_attach = function(client, bufnr)
+ vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc')
+
+ local bufopts = { noremap=true, silent=true, buffer=bufnr }
+ vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, bufopts)
+ vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts)
+ vim.keymap.set('n', 'K', vim.lsp.buf.hover, bufopts)
+ vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, bufopts)
+ vim.keymap.set('n', '<C-k>', vim.lsp.buf.signature_help, bufopts)
+ vim.keymap.set('n', '<space>wa', vim.lsp.buf.add_workspace_folder, bufopts)
+ vim.keymap.set('n', '<space>wr', vim.lsp.buf.remove_workspace_folder, bufopts)
+ vim.keymap.set('n', '<space>wl', function()
+ print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
+ end, bufopts)
+ vim.keymap.set('n', '<space>D', vim.lsp.buf.type_definition, bufopts)
+ vim.keymap.set('n', '<space>rn', vim.lsp.buf.rename, bufopts)
+ vim.keymap.set('n', '<space>ca', vim.lsp.buf.code_action, bufopts)
+ vim.keymap.set('n', 'gr', vim.lsp.buf.references, bufopts)
+ vim.keymap.set('n', '<space>f', function() vim.lsp.buf.format { async = true } end, bufopts)
+end
require('lspconfig')['hls'].setup{
on_attach = on_attach,
flags = lsp_flags,
capabilities = capabilities,
}
-require('lspconfig')['tsserver'].setup{
+require('lspconfig')['ts_ls'].setup{
on_attach = on_attach,
flags = lsp_flags,
capabilities = capabilities,
@@ -40,3 +60,22 @@ require('lspconfig')['texlab'].setup{
flags = lsp_flags,
capabilities = capabilities,
}
+require('lspconfig')['marksman'].setup{
+ on_attach = on_attach,
+ flags = lsp_flags,
+ capabilities = capabilities,
+}
+require('lspconfig')['pylsp'].setup{
+ on_attach = on_attach,
+ flags = lsp_flags,
+ capabilities = capabilities,
+}
+require('lspconfig')['clangd'].setup({
+ on_attach = on_attach,
+ flags = lsp_flags,
+ capabilities = capabilities,
+ -- cmd = {'clangd', '--background-index', '--clang-tidy', '--log=verbose'},
+ -- init_options = {
+ -- fallbackFlags = { '-std=c++17' },
+ -- },
+})