{"id":15117166,"url":"https://github.com/JohnnyMorganz/luau-lsp","last_synced_at":"2025-09-27T22:32:09.654Z","repository":{"id":37002837,"uuid":"490890710","full_name":"JohnnyMorganz/luau-lsp","owner":"JohnnyMorganz","description":"Language Server Implementation for Luau","archived":false,"fork":false,"pushed_at":"2025-09-20T16:01:17.000Z","size":10701,"stargazers_count":357,"open_issues_count":94,"forks_count":88,"subscribers_count":11,"default_branch":"main","last_synced_at":"2025-09-20T16:30:02.066Z","etag":null,"topics":["hacktoberfest","language-server","lsp","lua","luau"],"latest_commit_sha":null,"homepage":"","language":"Luau","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JohnnyMorganz.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-05-10T23:26:31.000Z","updated_at":"2025-09-20T16:01:20.000Z","dependencies_parsed_at":"2023-10-01T15:46:32.487Z","dependency_job_id":"79575dc9-8754-4fbb-9934-192c6b03b802","html_url":"https://github.com/JohnnyMorganz/luau-lsp","commit_stats":null,"previous_names":[],"tags_count":109,"template":false,"template_full_name":null,"purl":"pkg:github/JohnnyMorganz/luau-lsp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnnyMorganz%2Fluau-lsp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnnyMorganz%2Fluau-lsp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnnyMorganz%2Fluau-lsp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnnyMorganz%2Fluau-lsp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JohnnyMorganz","download_url":"https://codeload.github.com/JohnnyMorganz/luau-lsp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JohnnyMorganz%2Fluau-lsp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276753415,"owners_count":25698823,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-24T02:00:09.776Z","response_time":97,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hacktoberfest","language-server","lsp","lua","luau"],"created_at":"2024-09-26T01:45:51.298Z","updated_at":"2025-09-27T22:32:09.648Z","avatar_url":"https://github.com/JohnnyMorganz.png","language":"Luau","funding_links":[],"categories":["Tooling"],"sub_categories":["Language Servers","Other"],"readme":"# Luau Language Server\n\nAn implementation of a language server for the [Luau](https://github.com/Roblox/luau) programming language.\n\n## Getting Started\n\nInstall the extension from the VSCode Marketplace or OpenVSX Registry:\n\n- VSCode Marketplace: https://marketplace.visualstudio.com/items?itemName=JohnnyMorganz.luau-lsp\n- OpenVSX Registry: https://open-vsx.org/extension/JohnnyMorganz/luau-lsp\n\nAlternatively, check out [Getting Started for Language Server Clients](https://github.com/JohnnyMorganz/luau-lsp/blob/main/editors/README.md)\nto setup your own client for a different editor.\n\nA [Nightly Release](https://github.com/JohnnyMorganz/luau-lsp/actions/workflows/nightly.yml) runs every day with the latest changes on main.\nYou can download the relevant release for your platform and manually install the `.vsix`.\nThe nightly release builds with debug symbols and profiling instrumentation for debugging.\n\n### For General Users\n\nThe language server will start working immediately for general Luau code. There is built-in support\nfor Luau's generalised [require-by-string semantics](https://rfcs.luau.org/new-require-by-string-semantics.html), using `require(\"./module\")`.\n\nTo provide global type definitions for a custom environment, specify `luau-lsp.types.definitionFiles`.\nCorresponding documentation is configured using `luau-lsp.types.documentationFiles`.\n\nIf you use Luau in a different environment and are interested in using the language server, or\nlooking for any specific features, please get in touch!\n\n### For Rojo Users (requires `v7.3.0+`)\n\nBy default, the latest Roblox type definitions and documentation are preloaded out of the box.\nThis can be disabled by configuring `luau-lsp.platform.type`.\n\nThe language server uses Rojo-style sourcemaps to resolve DataModel instance trees for intellisense.\nThis is done by running `rojo sourcemap --watch default.project.json --output sourcemap.json`.\nThe server listens to changes of a `sourcemap.json` file present at the workspace root. It is recommended to add this\nfile to your `.gitignore`.\n\nThe following settings are configurable for sourcemap generation:\n\n- `luau-lsp.sourcemap.enabled`: Whether sourcemap support is enabled (default: on)\n- `luau-lsp.sourcemap.autogenerate`: Whether sourcemaps are automatically generated by the client. If disabled, the server will listen to manual changes to a `sourcemap.json` file (default: on)\n- `luau-lsp.sourcemap.rojoProjectFile`: What project file to use (default: `default.project.json`)\n- `luau-lsp.sourcemap.includeNonScripts`: Whether to include non script instances in the sourcemap. May be disabled for expensive DataModels (default: on)\n- `luau-lsp.sourcemap.sourcemapFile`: What sourcemap file to use (default: `sourcemap.json`)\n\nIf you do not use Rojo, you can still use the Luau Language Server, you just need to manually generate a `sourcemap.json`\nfile for your particular project layout. You can configure `luau-lsp.sourcemap.generatorCommand` to run a custom generator.\nIf your generator does not support file watching, enable `luau-lsp.sourcemap.useVSCodeWatcher`.\n\n\u003e Note: in the diagnostics type checker, the types for DataModel (DM) instances will resolve to `any`. This is a current limitation to reduce false positives.\n\u003e However, autocomplete and hover intellisense will correctly resolve the DM type.\n\u003e To enable this mode for diagnostics, set `luau-lsp.diagnostics.strictDatamodelTypes` (off by default).\n\u003e [Read more](https://github.com/JohnnyMorganz/luau-lsp/issues/83#issuecomment-1192865024).\n\n**A companion Studio plugin is available to provide DataModel information for Instances which are not part of your Rojo build / filetree: [Plugin Marketplace](https://www.roblox.com/library/10913122509/Luau-Language-Server-Companion)**\n\n## Standalone\n\nThe tool can run standalone, similar to [`luau-analyze`](https://github.com/JohnnyMorganz/luau-analyze-rojo), to provide type and lint warnings in CI, with full Rojo resolution and API types support.\nThe entry point for the analysis tool is `luau-lsp analyze`.\n\nInstall the binary and run `luau-lsp --help` for more information.\n\n## Configuration\n\nThere are 2 types of configuration styles for the language server. General configuration is provided by `.luaurc` files,\nwhich allow you to configure language strictness, lints, and require aliases. More information is available in Luau's [RFC documentation](https://rfcs.luau.org/config-luaurc.html).\n\nThe second configuration style is specific to the language server. See `luau-lsp` in your editor's settings for more details.\n\n## Supported Features\n\n- [x] Diagnostics (incl. type errors)\n- [x] Autocompletion\n- [x] Hover\n- [x] Signature Help\n- [x] Go To Definition\n- [x] Go To Type Definition\n- [x] Find References\n- [x] Document Link\n- [x] Document Symbol\n- [x] Color Provider\n- [x] Rename\n- [x] Semantic Tokens\n- [x] Inlay Hints\n- [x] Documentation Comments ([Moonwave Style](https://github.com/evaera/moonwave) - supporting both `--- comment` and `--[=[ comment ]=]`, but must be next to statement)\n- [x] Code Actions\n- [x] Workspace Symbols\n- [x] Folding Range\n- [x] Call Hierarchy\n\nThe following are extra features defined in the LSP specification, but most likely do not apply to Luau or are not necessary.\nThey can be investigated at a later time:\n\n- [ ] Go To Declaration (do not apply)\n- [ ] Go To Implementation (do not apply)\n- [ ] Code Lens (not necessary)\n- [ ] Document Highlight (not necessary - editor highlighting is sufficient)\n- [ ] Selection Range (not necessary - editor selection is sufficient)\n- [ ] Inline Value (applies for debuggers only)\n- [ ] Moniker\n- [ ] Formatting (see [stylua](https://github.com/JohnnyMorganz/StyLua))\n- [ ] Type Hierarchy (Luau currently does not provide any [public] ways to define type hierarchies)\n\n## Crash Reporting\n\nThe language server implements opt-in crash reporting, using [Sentry](https://sentry.io/).\n\nOn VSCode, this is configured via the setting `luau-lsp.server.crashReporting.enabled`.\nWhen a crash is encountered, an out-of-process crash handler will upload the crash details to Sentry via HTTP.\n\nWhen a crash is reported, the report stores the following information:\n\n- Crash reason and thread stack trace\n- Device metadata: OS name, version and CPU architecture\n- Dynamic libraries loaded into the process (including filesystem paths)\n\nThis information is transferred through a [Minidump](https://docs.sentry.io/platforms/native/guides/minidumps/#what-is-a-minidump) file.\nThis file is not stored after processing. No general usage data is recorded.\n\nCrash Reporting is only available for Windows and macOS, and is not active for Standalone mode (`luau-lsp analyze`)\n\n## Build From Source\n\n```sh\nmkdir build \u0026\u0026 cd build\ncmake .. -DCMAKE_BUILD_TYPE=Release\ncmake --build . --target Luau.LanguageServer.CLI --config Release\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FJohnnyMorganz%2Fluau-lsp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FJohnnyMorganz%2Fluau-lsp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FJohnnyMorganz%2Fluau-lsp/lists"}