121 lines
3.1 KiB
Lua
121 lines
3.1 KiB
Lua
|
local lspconfig = require 'lspconfig'
|
||
|
|
||
|
local on_attach = function(client)
|
||
|
require 'completion'.on_attach(client)
|
||
|
end
|
||
|
|
||
|
-- BASH
|
||
|
lspconfig.bashls.setup({})
|
||
|
|
||
|
-- CLANG
|
||
|
lspconfig.clangd.setup({})
|
||
|
|
||
|
-- CMAKE
|
||
|
lspconfig.cmake.setup({})
|
||
|
|
||
|
-- LATEX
|
||
|
local path = vim.fn.stdpath("config") .. "/after/plugin/dictionary-gb.txt"
|
||
|
local words = {}
|
||
|
|
||
|
for word in io.open(path, "r"):lines() do
|
||
|
table.insert(words, word)
|
||
|
end
|
||
|
|
||
|
require('lspconfig').ltex.setup({
|
||
|
settings = {
|
||
|
ltex = {
|
||
|
language = "en-GB",
|
||
|
dictionary = {
|
||
|
["en-GB"] = words,
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
})
|
||
|
|
||
|
-- LUA
|
||
|
lspconfig.lua_ls.setup({
|
||
|
settings = {
|
||
|
Lua = {
|
||
|
runtime = {
|
||
|
-- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim)
|
||
|
version = 'LuaJIT',
|
||
|
},
|
||
|
diagnostics = {
|
||
|
-- Get the language server to recognize the `vim` global
|
||
|
globals = { 'vim' },
|
||
|
neededFileStatus = {
|
||
|
["codestyle-check"] = "Any",
|
||
|
},
|
||
|
},
|
||
|
workspace = {
|
||
|
-- Make the server aware of Neovim runtime files
|
||
|
library = vim.api.nvim_get_runtime_file("", true),
|
||
|
},
|
||
|
-- Do not send telemetry data containing a randomized but unique identifier
|
||
|
telemetry = {
|
||
|
enable = false,
|
||
|
},
|
||
|
format = {
|
||
|
enable = true,
|
||
|
-- Put format options here
|
||
|
-- NOTE: the value should be STRING!!
|
||
|
defaultConfig = {
|
||
|
indent_style = "space",
|
||
|
indent_size = "4",
|
||
|
}
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
})
|
||
|
|
||
|
|
||
|
-- PYTHON
|
||
|
require('lspconfig').pylsp.setup {
|
||
|
settings = {
|
||
|
pylsp = {
|
||
|
plugins = {
|
||
|
-- formatter options
|
||
|
black = { enabled = true },
|
||
|
autopep8 = { enabled = false },
|
||
|
yapf = { enabled = false },
|
||
|
-- linter options
|
||
|
pylint = { enabled = false, executable = "pylint" },
|
||
|
pyflakes = { enabled = false },
|
||
|
pycodestyle = { enabled = true, maxLineLength = 110 },
|
||
|
-- type checker
|
||
|
pylsp_mypy = { enabled = true },
|
||
|
-- auto-completion options
|
||
|
jedi_completion = { fuzzy = true },
|
||
|
-- import sorting
|
||
|
pyls_isort = { enabled = true },
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
flags = {
|
||
|
debounce_text_changes = 200,
|
||
|
},
|
||
|
}
|
||
|
|
||
|
-- RUST
|
||
|
lspconfig.rust_analyzer.setup({
|
||
|
-- on_attach = on_attach,
|
||
|
settings = {
|
||
|
["rust-analyzer"] = {
|
||
|
imports = {
|
||
|
granularity = {
|
||
|
group = "module",
|
||
|
},
|
||
|
prefix = "self",
|
||
|
},
|
||
|
cargo = {
|
||
|
buildScripts = {
|
||
|
enable = true,
|
||
|
},
|
||
|
},
|
||
|
procMacro = {
|
||
|
enable = true
|
||
|
},
|
||
|
}
|
||
|
}
|
||
|
})
|