You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

74 lines
1.5 KiB
Lua

local lsp = require('lsp-zero').preset({
name = 'minimal',
set_lsp_keymaps = false,
manage_nvim_cmp = true,
suggest_lsp_servers = false,
})
local keybindings = require('keybindings')
local on_attach = keybindings.on_attach
local cmp_mapping = keybindings.cmp_mappings
lsp.on_attach(on_attach)
local cmp = require('cmp')
local cmp_config = lsp.defaults.cmp_config({
preselect = 'none',
window = {
completion = cmp.config.window.bordered(),
documentation = cmp.config.window.bordered(),
},
mapping = cmp.mapping.preset.insert(cmp_mappings),
sources = {
{ name = 'nvim_lsp' },
{ name = 'luasnip' },
},
experimental = {
ghost_text = false -- conflicts with copilot.vim's preview
},
})
cmp.setup(cmp_config)
-- Configure lua language server for neovim
lsp.nvim_workspace()
lsp.configure('rust_analyzer', {
settings = {
["rust-analyzer"] = {
cargo = {
features = "all",
},
procMacro = {
enable = true,
},
checkOnSave = {
command = 'clippy',
extraArgs = { "--", "-W", "clippy::pedantic" }
},
},
}
})
lsp.configure('tsserver', {
cmd = { "npx", "typescript-language-server", "--stdio" },
})
lsp.configure('html', {
cmd = { "npx", "vscode-html-language-server", "--stdio" },
})
lsp.configure('texlab', {
forwardSearch = {
executable = 'zathura',
args = { '--synctex-forward', '%l:1:%f', '%p' }
},
})
lsp.configure('clangd', {})
lsp.configure('pylsp', {})
lsp.setup_servers({'tsserver', 'rust_analyzer', 'html', 'texlab', 'clangd', 'pylsp'})
lsp.setup()