107 lines
2.5 KiB
Lua
107 lines
2.5 KiB
Lua
local on_attach = require("configs.lsp.e-lspconfig").on_attach
|
|
local on_init = require("configs.lsp.e-lspconfig").on_init
|
|
local capabilities = require("configs.lsp.e-lspconfig").capabilities
|
|
|
|
-- C/C++
|
|
vim.lsp.config('clangd', {
|
|
on_attach = on_attach,
|
|
on_init = on_init,
|
|
capabilities = capabilities,
|
|
cmd = {
|
|
"clangd",
|
|
"--background-index",
|
|
"--background-index-priority=normal",
|
|
"--clang-tidy",
|
|
"--experimental-modules-support",
|
|
"--all-scopes-completion",
|
|
"--completion-style=detailed",
|
|
"--header-insertion=iwyu",
|
|
"--limit-references=5",
|
|
"--pch-storage=disk",
|
|
},
|
|
filetypes = { "c", "cpp", "h", "hpp", "objc", "objcpp" },
|
|
root_markers = { '.git' },
|
|
})
|
|
vim.lsp.enable('clangd')
|
|
|
|
-- Go (gopls) lsp server
|
|
vim.lsp.config('gopls', {
|
|
on_attach = on_attach,
|
|
on_init = on_init,
|
|
capabilities = capabilities,
|
|
cmd = { 'gopls' },
|
|
filetypes = { 'go', 'gomod', 'gowork', 'gotmpl' },
|
|
root_markers = { 'go.mod', '.git' },
|
|
single_file_support = true,
|
|
settings = {
|
|
gopls = {
|
|
completeUnimported = true,
|
|
usePlaceholders = true,
|
|
analyses = {
|
|
unusedparams = true,
|
|
},
|
|
staticcheck = true,
|
|
gofumpt = true,
|
|
},
|
|
},
|
|
})
|
|
vim.lsp.enable('gopls')
|
|
|
|
-- PhP
|
|
vim.lsp.config('phpactor', {
|
|
cmd = { 'phpactor', 'language-server' },
|
|
filetypes = { 'php' },
|
|
root_markers = { 'composer.json', '.git' },
|
|
init_options = {
|
|
["language_server_phpstan.enabled"] = false,
|
|
["language_server_psalm.enabled"] = false,
|
|
}
|
|
})
|
|
vim.lsp.enable('phpactor')
|
|
|
|
-- Lua
|
|
vim.lsp.config('lua_ls', {
|
|
cmd = { 'lua-language-server' },
|
|
filetypes = { 'lua' },
|
|
root_markers = { '.luarc.json', '.luarc.jsonc', '.git' },
|
|
single_file_support = true,
|
|
settings = {
|
|
Lua = {
|
|
telemetry = { enable = false },
|
|
runtime = { version = 'LuaJIT' },
|
|
diagnostics = { globals = { 'vim' } },
|
|
workspace = {
|
|
checkThirdParty = false,
|
|
library = {
|
|
vim.env.VIMRUNTIME,
|
|
vim.fn.stdpath('config'),
|
|
},
|
|
},
|
|
},
|
|
}
|
|
})
|
|
vim.lsp.enable('lua_ls')
|
|
|
|
-- Bash
|
|
vim.lsp.config('bashls', {
|
|
cmd = { 'bash-language-server', 'start' },
|
|
filetypes = { 'sh', 'bash' },
|
|
root_markers = { '.git' },
|
|
single_file_support = true,
|
|
})
|
|
vim.lsp.enable('bashls')
|
|
|
|
-- Meson
|
|
vim.lsp.config('meson_ls', {
|
|
cmd = { 'mesonlsp' },
|
|
filetypes = { 'meson' },
|
|
root_markers = { 'meson.build', '.git' },
|
|
single_file_support = true,
|
|
settings = {}
|
|
})
|
|
vim.lsp.enable('meson_ls')
|
|
|
|
-- For all
|
|
vim.diagnostic.config({
|
|
virtual_text = false,
|
|
})
|