You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
95 lines
2.9 KiB
95 lines
2.9 KiB
vim.pack.add {
|
|
{ src = 'https://github.com/neovim/nvim-lspconfig' },
|
|
}
|
|
|
|
local on_attach = function(_, bufnr)
|
|
local opts = { buffer = bufnr, remap = false }
|
|
vim.keymap.set("n", "gd", function() vim.lsp.buf.definition() end, opts)
|
|
vim.keymap.set("n", "<leader>k", function() vim.lsp.buf.hover() end, opts)
|
|
vim.keymap.set("n", "<leader>vws", function() vim.lsp.buf.workspace_symbol() end, opts)
|
|
vim.keymap.set("n", "<leader>vd", function() vim.diagnostic.open_float() end, opts)
|
|
vim.keymap.set("n", "[d", function() vim.lsp.diagnostics.goto_next() end, opts)
|
|
vim.keymap.set("n", "]d", function() vim.lsp.diagnostic.goto_prev() end, opts)
|
|
vim.keymap.set("n", "<leader>ca", function() vim.lsp.buf.code_action() end, opts)
|
|
vim.keymap.set("n", "gr", function() vim.lsp.buf.references() end, opts)
|
|
vim.keymap.set("n", "<leader>rn", function() vim.lsp.buf.rename() end, opts)
|
|
vim.keymap.set("i", "<C-k>", function() vim.lsp.buf.signature_help() end, opts)
|
|
vim.keymap.set("n", "<leader>fo", function() vim.lsp.buf.format() end, opts)
|
|
vim.keymap.set('n', '<Leader>D', vim.lsp.buf.type_definition, opts)
|
|
vim.keymap.set('n', '<Leader>e', vim.diagnostic.open_float, opts)
|
|
end
|
|
|
|
vim.lsp.config['rust_analyser'] = {
|
|
-- capabilities = capabilities,
|
|
on_attach = on_attach,
|
|
filetypes = { 'rust' },
|
|
settings = {
|
|
['rust-analyzer'] = {
|
|
checkOnSave = {
|
|
allFeatures = true,
|
|
overrideCommand = {
|
|
'cargo', 'clippy', '--workspace', '--message-format=json',
|
|
'--all-targets', '--all-features'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
vim.lsp.enable('rust_analyser')
|
|
|
|
vim.lsp.config['lua_ls'] = {
|
|
on_attach = on_attach,
|
|
filetypes = { 'lua' },
|
|
-- capabilities = capabilities,
|
|
settings = {
|
|
Lua = {
|
|
runtime = {
|
|
version = 'LuaJIT',
|
|
},
|
|
diagnostics = {
|
|
globals = { 'vim' },
|
|
},
|
|
workspace = {
|
|
library = vim.api.nvim_get_runtime_file("", true),
|
|
},
|
|
telemetry = {
|
|
enable = false,
|
|
},
|
|
},
|
|
},
|
|
}
|
|
|
|
vim.lsp.enable('lua_ls')
|
|
|
|
vim.lsp.config['ts_ls'] = {
|
|
-- capabilities = capabilities,
|
|
on_attach = on_attach,
|
|
}
|
|
vim.lsp.enable('ts_ls')
|
|
|
|
vim.lsp.config['pyright'] = {
|
|
-- capabilities = capabilities,
|
|
on_attach = on_attach,
|
|
}
|
|
vim.lsp.enable('pyright')
|
|
|
|
vim.lsp.config['bashls'] = {
|
|
-- capabilities = capabilities,
|
|
on_attach = on_attach,
|
|
}
|
|
vim.lsp.enable('bashls')
|
|
|
|
vim.lsp.config['clangd'] = {
|
|
-- capabilities = capabilities,
|
|
on_attach = on_attach,
|
|
}
|
|
vim.lsp.enable('clangd')
|
|
|
|
vim.lsp.config['volar'] = {
|
|
filetypes = { 'typescript', 'javascript', 'javascriptreact', 'typescriptreact', 'vue', 'json' },
|
|
-- capabilities = capabilities,
|
|
on_attach = on_attach,
|
|
}
|
|
vim.lsp.enable('volar')
|