55 lines
1.7 KiB
Lua
55 lines
1.7 KiB
Lua
|
local on_attach = require("plugins.configs.lspconfig").on_attach
|
||
|
local capabilities = require("plugins.configs.lspconfig").capabilities
|
||
|
|
||
|
local lspconfig = require "lspconfig"
|
||
|
local util = require "lspconfig/util"
|
||
|
|
||
|
-- LUA LSP
|
||
|
local runtime_path = vim.split(package.path, ";")
|
||
|
table.insert(runtime_path, "lua/?.lua")
|
||
|
table.insert(runtime_path, "lua/?/init.lua")
|
||
|
lspconfig.lua_ls.setup {
|
||
|
on_attach = on_attach,
|
||
|
capabilities = capabilities,
|
||
|
settings = {
|
||
|
Lua = {
|
||
|
runtime = {
|
||
|
-- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim)
|
||
|
version = "LuaJIT",
|
||
|
path = runtime_path,
|
||
|
},
|
||
|
diagnostics = {
|
||
|
-- Get the language server to recognize the `vim` global
|
||
|
globals = { "vim" },
|
||
|
},
|
||
|
workspace = {
|
||
|
-- Make the server aware of Neovim runtime files
|
||
|
library = vim.api.nvim_get_runtime_file("", true),
|
||
|
checkThirdParty = false,
|
||
|
},
|
||
|
-- Do not send telemetry data containing a randomized but unique identifier
|
||
|
telemetry = {
|
||
|
enable = false,
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
}
|
||
|
|
||
|
-- GO LSP
|
||
|
lspconfig.gopls.setup {
|
||
|
on_attach = on_attach,
|
||
|
capabilities = capabilities,
|
||
|
cmd = { "gopls" },
|
||
|
filetypes = { "go", "gomod", "gowork", "gotmpl" },
|
||
|
root_dir = util.root_pattern("go.work", "go.mod", ".git"),
|
||
|
settings = {
|
||
|
gopls = {
|
||
|
completeUnimported = true,
|
||
|
usePlaceholders = true,
|
||
|
analyses = {
|
||
|
unusedparams = true,
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
}
|