71 lines
1.8 KiB
Lua
71 lines
1.8 KiB
Lua
vim.lsp.config.svelte = {}
|
|
vim.lsp.config.gopls = {}
|
|
vim.lsp.config.ts_ls = {}
|
|
|
|
vim.lsp.config.expert = {
|
|
cmd = { vim.fn.expand '$HOME/.local/bin/expert' },
|
|
root_markers = { 'mix.exs', '.git' },
|
|
filetypes = { 'elixir', 'eelixir', 'heex' },
|
|
}
|
|
|
|
vim.lsp.config.lua_ls = {
|
|
settings = {
|
|
Lua = {
|
|
runtime = {
|
|
version = "LuaJIT",
|
|
},
|
|
diagnostics = {
|
|
globals = { "vim" },
|
|
},
|
|
workspace = {
|
|
checkThirdParty = false,
|
|
library = vim.api.nvim_get_runtime_file("", true),
|
|
},
|
|
telemetry = {
|
|
enable = false,
|
|
},
|
|
},
|
|
},
|
|
}
|
|
|
|
vim.lsp.config.intelephense = {
|
|
init_options = { licenceKey = vim.fn.stdpath("config") .. "/intelephense-license" },
|
|
settings = {
|
|
intelephense = {
|
|
files = { maxSize = 1000000000 },
|
|
format = { enable = false },
|
|
stubs = require "intelephense_stubs",
|
|
},
|
|
},
|
|
}
|
|
|
|
vim.lsp.config.nixd = {
|
|
settings = {
|
|
formatting = {
|
|
command = { "nixfmt" },
|
|
},
|
|
},
|
|
}
|
|
|
|
vim.lsp.enable { 'expert', 'lua_ls', 'svelte', 'intelephense', 'nixd', 'gopls', 'ts_ls' }
|
|
|
|
vim.api.nvim_create_autocmd("LspAttach", {
|
|
callback = function(args)
|
|
local client = vim.lsp.get_client_by_id(args.data.client_id)
|
|
|
|
if not client then
|
|
return
|
|
end
|
|
|
|
if client.server_capabilities.documentHighlightProvider then
|
|
vim.api.nvim_create_autocmd({ "CursorHold" }, {
|
|
callback = vim.lsp.buf.document_highlight,
|
|
buffer = args.buf,
|
|
})
|
|
vim.api.nvim_create_autocmd({ "CursorMoved" }, {
|
|
callback = vim.lsp.buf.clear_references,
|
|
buffer = args.buf,
|
|
})
|
|
end
|
|
end,
|
|
})
|