91 lines
2.1 KiB
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(),
|
|
},
|
|
},
|
|
})
|