73 lines
1.7 KiB
Lua
Raw Normal View History

2024-09-12 21:43:42 +02:00
return {
"neovim/nvim-lspconfig",
event = { "BufReadPre", "BufNewFile" },
dependencies = {
"nvim-lua/plenary.nvim",
"hrsh7th/nvim-cmp",
"hrsh7th/cmp-buffer",
"hrsh7th/cmp-path",
"hrsh7th/cmp-cmdline",
"hrsh7th/cmp-nvim-lsp",
{ "antosha417/nvim-lsp-file-operations", config = true },
},
config = function()
-- https://github.com/folke/lazydev.nvim
-- import lspconfig plugin
local lspconfig = require("lspconfig")
-- import cmp-nvim-lsp plugin
local cmp_nvim_lsp = require("cmp_nvim_lsp")
--local keymap = vim.keymap -- for conciseness
local opts = { noremap = true, silent = true }
-- configure dart server (with special settings)
--[[
lspconfig["dartls"].setup({
cmd = { "dart", "language-server", "--protocol=lsp" },
filetypes = { "dart" },
init_options = {
closingLabels = true,
flutterOutline = true,
onlyAnalyzeProjectsWithOpenFiles = true,
outline = true,
suggestFromUnimportedLibraries = true,
},
settings = { -- custom settings for dartls
dart = {
completeFunctionCalls = true,
showTodos = true,
},
},
})
--]]
lspconfig.rust_analyzer.setup({
settings = {
["rust-analyzer"] = {
diagnostics = {
enable = false,
},
},
},
})
lspconfig.gopls.setup({})
lspconfig.lua_ls.setup({})
local cmp = require("cmp")
cmp.setup({
mapping = cmp.mapping.preset.insert({
["<C-a>"] = cmp.mapping.scroll_docs(-4),
["<C-z>"] = cmp.mapping.scroll_docs(4),
["<C-Space>"] = cmp.mapping.complete(),
["<C-e>"] = cmp.mapping.abort(),
["<CR>"] = cmp.mapping.confirm({ select = true }),
}),
sources = cmp.config.sources({
{ name = "nvim_lsp" },
{ name = "buffer" },
}),
})
end,
}