nvim/lua/lspconfiguration.lua

91 lines
2.1 KiB
Lua

-- Mason setup
require("mason").setup(require("mason").setup({
ui = {
icons = {
package_installed = "",
package_pending = "󰔟",
package_uninstalled = "",
},
},
}))
require("mason-lspconfig").setup({
ensure_installed = {
"lua_ls",
},
})
-- require("mason-lspconfig").setup_handlers({
-- function(asm_lsp)
-- require("lspconfig")[asm_lsp].setup({})
-- end,
-- function(clangd)
-- require("lspconfig")[clangd].setup({})
-- end,
-- function(lua_ls)
-- require("lspconfig")[lua_ls].setup({})
-- end,
-- function(hls)
-- require("lspconfig")[hls].setup({})
-- end,
-- function(rust_analyzer)
-- require("lspconfig")[rust_analyzer].setup({})
-- end,
-- function(vhdl_ls)
-- require("lspconfig")[vhdl_ls].setup({})
-- end,
-- function(verible)
-- require("lspconfig")[verible].setup({})
-- end,
-- function(vimls)
-- require("lspconfig")[vimls].setup({})
-- end,
-- function(texlab)
-- require("lspconfig")[texlab].setup({})
-- end,
-- function(als)
-- require("lspconfig")[als].setup({})
-- end,
-- })
require("lspconfig").verible.setup({
cmd = { "verible-verilog-ls", "--rules_config_search" },
})
-- @name file_exists
-- @param (name
-- @short Check if a file does exists (i. e. an ada project file)
local function file_exists(name)
local f = io.open(name, "r")
return f ~= nil and io.close(f)
end
-- @name get_config_file
-- @param
-- @short Get the configuration file.
local function get_config_file()
local filename = vim.api.nvim_buf_get_name(0)
local basedirectory = filename:gsub("/[^%/]-$", "")
local currentdirectory = filename:match("[^%/]-$")
if file_exists(basedirectory .. currentdirectory .. ".gpr") then
return basedirectory .. currentdirectory .. ".gpr"
else
basedirectory = basedirectory:gsub("/[^%/]-$", "")
currentdirectory = filename:match("[^%/]-$")
if file_exists(basedirectory .. currentdirectory .. ".gpr") then
return basedirectory .. currentdirectory .. ".gpr"
else
return "default.gpr"
end
end
end
require("lspconfig").als.setup({
settings = {
ada = {
projectFile = get_config_file(),
},
},
})