Skip to content

Instantly share code, notes, and snippets.

@itsfrank
Created April 9, 2024 02:57
Show Gist options
  • Save itsfrank/754307080477c83adc3e44a078ca5737 to your computer and use it in GitHub Desktop.
Save itsfrank/754307080477c83adc3e44a078ca5737 to your computer and use it in GitHub Desktop.
luau-lsp.nvim luaurc aliases
-- reads .luaurc in dir if it exists and returns a table that can be passed to luau-lsp.nvim
-- requires plenary: https://github.com/nvim-lua/plenary.nvim
function read_luaurc_aliases(dir)
local p = require("plenary.path")
local luaurc_path = p:new(dir, ".luaurc")
if not luaurc_path:exists() then
return nil
end
local luaurc_data = luaurc_path:read()
local luaurc = vim.json.decode(luaurc_data)
if luaurc == nil or luaurc["aliases"] == nil then
return nil
end
if type(luaurc["aliases"]) ~= "table" then
return nil
end
local aliases = luaurc["aliases"]
local ret = {}
for k, v in pairs(aliases) do
ret["@" .. k] = v
end
return ret
end
-- use like this to read luaurc in nvim cwd:
--[[
local aliases = read_luaurc_aliases(vim.fn.getcwd())
require("luau-lsp").setup({
server = {
...,
settings = {
["luau-lsp"] = {
require = {
directoryAliases = aliases,
},
},
},
},
})
]]--
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment