Files
nvim/lua/config/plugins/lspconfig.lua
T

64 lines
1.7 KiB
Lua

local u = require 'config.utils'
u.nmap('E', vim.diagnostic.open_float)
u.nmap('[d', vim.diagnostic.goto_prev)
u.nmap(']d', vim.diagnostic.goto_next)
u.nmap('<space>q', vim.diagnostic.setloclist)
local on_attach = function(_, bufnr)
vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc')
vim.o.signcolumn = 'yes'
local map = function(from, to)
vim.keymap.set('n', from, to, { noremap = true, silent = true, buffer = bufnr })
end
map('gd', vim.lsp.buf.definition)
map('gr', vim.lsp.buf.references)
map('gi', vim.lsp.buf.implementation)
map('gD', vim.lsp.buf.declaration)
map('K', vim.lsp.buf.hover)
map('<C-k>', vim.lsp.buf.signature_help)
map('<space>wa', vim.lsp.buf.add_workspace_folder)
map('<space>wr', vim.lsp.buf.remove_workspace_folder)
map('<space>wl', function()
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
end)
map('<space>D', vim.lsp.buf.type_definition)
map('<space>rn', vim.lsp.buf.rename)
map('<space>ca', vim.lsp.buf.code_action)
map('<space>fm', vim.lsp.buf.formatting)
end
local capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities())
require 'lspconfig'.sumneko_lua.setup {
on_attach = on_attach,
capabilities = capabilities,
settings = {
Lua = {
diagnostics = {
globals = { 'vim' },
},
},
},
}
require 'rust-tools'.setup {
server = {
on_attach = on_attach,
capabilities = capabilities,
}
}
vim.g.markdown_fenced_languages = {
"ts=typescript"
}
require'lspconfig'.denols.setup{
on_attach = on_attach,
capabilities = capabilities,
}