diff --git a/plugins/by-name/luau-lsp/default.nix b/plugins/by-name/luau-lsp/default.nix new file mode 100644 index 00000000..31d36325 --- /dev/null +++ b/plugins/by-name/luau-lsp/default.nix @@ -0,0 +1,19 @@ +{ lib, ... }: +lib.nixvim.plugins.mkNeovimPlugin { + name = "luau-lsp"; + package = "luau-lsp-nvim"; + + maintainers = [ lib.maintainers.HeitorAugustoLN ]; + + settingsExample = { + platform.type = "roblox"; + types.roblox_security_level = "PluginSecurity"; + + sourcemap = { + enabled = true; + autogenerate = true; + rojo_project_file = "default.project.json"; + sourcemap_file = "sourcemap.json"; + }; + }; +} diff --git a/tests/all-package-defaults.nix b/tests/all-package-defaults.nix index 87d733a9..685de494 100644 --- a/tests/all-package-defaults.nix +++ b/tests/all-package-defaults.nix @@ -109,6 +109,9 @@ let # https://github.com/NixOS/nixpkgs/commit/bc725b12b2595951a3f4b112d59716d30b41001a "zf" "zls" + + # luau-lsp is marked as broken on x86_64-darwin + "luau-lsp.nvim" ] ++ lib.optionals (hostPlatform.isDarwin && hostPlatform.isAarch64) [ # 2025-10-20: build failure diff --git a/tests/test-sources/plugins/by-name/luau-lsp/default.nix b/tests/test-sources/plugins/by-name/luau-lsp/default.nix new file mode 100644 index 00000000..8e2a453a --- /dev/null +++ b/tests/test-sources/plugins/by-name/luau-lsp/default.nix @@ -0,0 +1,68 @@ +{ lib, ... }: +{ + empty = { + plugins.luau-lsp.enable = true; + }; + + defaults = { + plugins.luau-lsp = { + enable = true; + + settings = { + fflags = { + enable_by_default = false; + enable_new_solver = false; + override = lib.nixvim.emptyTable; + sync = true; + }; + + platform = { + type = "roblox"; + }; + + plugin = { + enabled = false; + port = 3667; + }; + + server = { + path = "luau-lsp"; + }; + + sourcemap = { + autogenerate = true; + enabled = true; + generator_cmd = lib.nixvim.mkRaw "nil"; + include_non_scripts = true; + rojo_path = "rojo"; + rojo_project_file = "default.project.json"; + sourcemap_file = "sourcemap.json"; + }; + + types = { + definition_files = lib.nixvim.emptyTable; + documentation_files = lib.nixvim.emptyTable; + roblox_security_level = "PluginSecurity"; + }; + }; + }; + }; + + example = { + plugins.luau-lsp = { + enable = true; + + settings = { + platform.type = "roblox"; + types.roblox_security_level = "PluginSecurity"; + + sourcemap = { + enabled = true; + autogenerate = true; + rojo_project_file = "default.project.json"; + sourcemap_file = "sourcemap.json"; + }; + }; + }; + }; +}