dotfiles/nvim/.config/nvim/lua/nvim-lspconfig/init.lua

32 lines
1.7 KiB
Lua

local on_attach = function(client, bufnr)
-- Keybindings for LSPs
-- Note these are in on_attach so that they don't override bindings in a non-LSP setting
vim.fn.nvim_set_keymap("n", "gd", "<cmd>lua vim.lsp.buf.definition()<CR>", {noremap = true, silent = true})
vim.fn.nvim_set_keymap("n", "gD", "<cmd>lua vim.lsp.buf.implementation()<CR>", {noremap = true, silent = true})
vim.fn.nvim_set_keymap("n", "K", "<cmd>lua vim.lsp.buf.hover()<CR>", {noremap = true, silent = true})
vim.fn.nvim_set_keymap("n", "<c-k>", "<cmd>lua vim.lsp.buf.signature_help()<CR>", {noremap = true, silent = true})
vim.fn.nvim_set_keymap("n", "1gD", "<cmd>lua vim.lsp.buf.type_definition()<CR>", {noremap = true, silent = true})
vim.fn.nvim_set_keymap("n", "gr", "<cmd>lua vim.lsp.buf.references()<CR>", {noremap = true, silent = true})
vim.fn.nvim_set_keymap("n", "g0", "<cmd>lua vim.lsp.buf.document_symbol()<CR>", {noremap = true, silent = true})
vim.fn.nvim_set_keymap("n", "gW", "<cmd>lua vim.lsp.buf.workspace_symbol()<CR>", {noremap = true, silent = true})
end
require'nvim_lsp'.pyls.setup{on_attach=on_attach}
require'nvim_lsp'.vimls.setup{on_attach=on_attach}
require'nvim_lsp'.bashls.setup{on_attach=on_attach}
require'nvim_lsp'.gopls.setup{on_attach=on_attach}
require'nvim_lsp'.texlab.setup{on_attach=on_attach}
-- To get builtin LSP running, do something like:
-- NOTE: This replaces the calls where you would have before done `require('nvim_lsp').sumneko_lua.setup()`
require('nlua.lsp.nvim').setup(require('nvim_lsp'), {
on_attach = on_attach,
-- Include globals you want to tell the LSP are real :)
globals = {
-- Colorbuddy
"Color", "c", "Group", "g", "s",
}
})