Luau lsp extension with fully luau support!
You should use require("luau-lsp.server").setup {} instead of lspconfig.luau_lsp.setup {}
mason-lspconfig.nvim
require("mason-lspconfig").setup_handlers {
luau_lsp = function()
-- use this function like require("lspconfig").luau_lsp.setup { ... }
require("luau-lsp.server").setup {
filetypes = { "lua", "luau" }, -- default is { "luau" }
settings = {
["luau-lsp"] = {
...,
},
},
}
end,
}Note that nvim-treesitter has its own luau parser but causes some conflicts, so the following line is required
require("luau-lsp").treesitter() -- required
-- treesitter configs here:TSInstall luau
This plugin also supports roblox environment:
require("luau-lsp.server").setup {
settings = {
["luau-lsp"] = {
sourcemap = {
enable = true, -- enable sourcemap generation
autogenerate = true, -- auto generate sourcemap with rojo's sourcemap watcher
},
types = {
roblox = true, -- enable roblox api
},
},
},
}require("luau-lsp.server").setup {
settings = {
["luau-lsp"] = {
types = {
definitionFiles = { "testez.d.luau", "path/to/definition/file" },
documentationFiles = { "path/to/documentation/file" },
},
},
},
}require("luau-lsp.server").setup {
settings = {
["luau-lsp"] = {
fflags = {
override = {
LuauTarjanChildLimit = 0,
},
},
},
},
}require("luau-lsp.server").setup {
settings = {
["luau-lsp"] = {
completion = {
imports = {
enabled = true,
},
},
},
},
}See this schema for full luau-lsp. options
-
Add some way to set local configs, might be useful foryou probably wantluau-lsp.typesorluau-lsp.sourcemap.rojoProjectFile:help 'exrc'
- Add a github action to sync queries and parser's revision
