94 lines
2.3 KiB
Lua
94 lines
2.3 KiB
Lua
require("mason").setup()
|
|
|
|
local cmp = require('cmp')
|
|
local cmp_select = {behavior = cmp.SelectBehavior.Select}
|
|
cmp.setup({
|
|
snippet = {
|
|
expand = function(args)
|
|
require('luasnip').lsp_expand(args.body)
|
|
end,
|
|
},
|
|
mapping = cmp.mapping.preset.insert({
|
|
['<C-p>'] = cmp.mapping.select_prev_item(cmp_select),
|
|
['<C-n>'] = cmp.mapping.select_next_item(cmp_select),
|
|
['<C-y>'] = cmp.mapping.confirm({ select = true }),
|
|
['<C-Space>'] = cmp.mapping.complete(),
|
|
}),
|
|
sources = cmp.config.sources(
|
|
{
|
|
{ name = 'nvim_lsp' },
|
|
{ name = 'luasnip' }
|
|
},
|
|
{
|
|
{ name = 'buffer' },
|
|
{ name = 'path' },
|
|
{ name = 'cmdline' }
|
|
}),
|
|
completion = {
|
|
completeopt = 'menu,menuone,noinsert',
|
|
},
|
|
})
|
|
|
|
vim.lsp.enable("lua_ls")
|
|
vim.lsp.config("lua_ls", {
|
|
on_init = function(client)
|
|
if client.workspace_folders then
|
|
local path = client.workspace_folders[1].name
|
|
if vim.loop.fs_stat(path..'/.luarc.json') or vim.loop.fs_stat(path..'/.luarc.jsonc') then
|
|
return
|
|
end
|
|
end
|
|
|
|
client.config.settings.Lua = vim.tbl_deep_extend('force', client.config.settings.Lua, {
|
|
runtime = {
|
|
version = 'LuaJIT'
|
|
},
|
|
workspace = {
|
|
checkThirdParty = false,
|
|
library = {
|
|
vim.env.VIMRUNTIME
|
|
}
|
|
}
|
|
})
|
|
end,
|
|
settings = {
|
|
Lua = {}
|
|
}
|
|
})
|
|
|
|
vim.lsp.enable("clangd")
|
|
vim.lsp.config("clangd", {
|
|
capabilities = require('cmp_nvim_lsp').default_capabilities(),
|
|
cmd = {
|
|
"clangd",
|
|
"--background-index",
|
|
"--clang-tidy",
|
|
"--completion-style=detailed",
|
|
"--all-scopes-completion",
|
|
}
|
|
})
|
|
|
|
vim.lsp.enable("pyright")
|
|
vim.lsp.config("pyright", {})
|
|
vim.lsp.enable("html")
|
|
vim.lsp.config("html", {})
|
|
vim.lsp.enable("angularls")
|
|
vim.lsp.config("angularls", {})
|
|
|
|
vim.lsp.enable("ts_ls")
|
|
vim.lsp.config("ts_ls", {
|
|
cmd = { "/usr/lib/node_modules/typescript-language-server/lib/cli.mjs", "--stdio" },
|
|
filetypes = { "javascript", "typescript", "javascriptreact", "typescriptreact" },
|
|
init_options = {
|
|
plugins = {},
|
|
},
|
|
on_attach = function(client, bufnr)
|
|
client.server_capabilities.documentFormattingProvider = false -- Optional
|
|
end
|
|
})
|
|
|
|
vim.lsp.enable("java-language-server")
|
|
vim.lsp.config("java-language-server", {
|
|
cmd = {"java-language-server"}
|
|
})
|