No description
  • TypeScript 97.5%
  • Lua 2.5%
Find a file
Andrew Tandy 9ac14091ad
Merge branch 'feature/ui-polish' into main
Adds lazy loading for game tree children and UI improvements.
2026-02-03 18:37:11 -08:00
.github/instructions chore(github): add GitHub configuration 2026-02-03 14:40:34 -08:00
.vscode chore(vscode): add workspace settings and launch configs 2026-02-03 14:39:59 -08:00
data feat(data): add Roblox API dump 2026-02-03 14:40:16 -08:00
scripts feat(game-tree): add lazy loading for game tree children 2026-02-03 18:36:51 -08:00
src feat(game-tree): add lazy loading for game tree children 2026-02-03 18:36:51 -08:00
tests test: add type system and completion tests 2026-02-03 14:40:28 -08:00
vscode feat(game-tree): add lazy loading for game tree children 2026-02-03 18:36:51 -08:00
.editorconfig Initial commit 2026-02-01 18:07:26 -08:00
.eslintrc.cjs chore: update project configuration 2026-02-03 14:39:38 -08:00
.gitattributes Initial commit 2026-02-01 18:07:26 -08:00
.gitignore docs: add coding standards and update gitignore 2026-02-03 14:43:19 -08:00
.prettierignore chore: update project configuration 2026-02-03 14:39:38 -08:00
.prettierrc.json Initial commit 2026-02-01 18:07:26 -08:00
bun.lock chore: update project configuration 2026-02-03 14:39:38 -08:00
CLAUDE.md docs: add coding standards and update gitignore 2026-02-03 14:43:19 -08:00
LICENSE Initial commit 2026-02-01 18:07:26 -08:00
package-lock.json chore: update project configuration 2026-02-03 14:39:38 -08:00
package.json chore: update project configuration 2026-02-03 14:39:38 -08:00
README.md feat: add live game integration features 2026-02-03 16:45:30 -08:00
tsconfig.json chore: update project configuration 2026-02-03 14:39:38 -08:00

rbxdev-ls

rbxdev-ls

A fast, full-featured language server for Roblox Luau development.

Version License TypeScript Bun


Features

Intelligent Completions

  • Full Roblox API — all classes, methods, properties, and events
  • Sunc executor functions out of the box
  • Live game tree completions when connected to an executor
  • Auto-import suggestions from your workspace modules
  • Context-aware table field completions

Type Checking

  • Bidirectional type inference
  • --!strict, --!nonstrict, and --!nocheck modes
  • All Roblox datatypes (Vector3, CFrame, Color3, UDim2, etc.)
  • Generics, unions, intersections, and optional types
  • Inheritance-aware class typing

Navigation

  • Go to definition
  • Find all references
  • Rename symbol across files
  • Document symbol outline

Editor Goodies

  • Hover docs with full type signatures
  • Signature help while typing function args
  • Semantic highlighting
  • Inlay hints for inferred types
  • Color picker for Color3 values
  • StyLua formatting integration

Workspace Integration

  • Rojo project file support
  • DataModel path resolution
  • Automatic require path generation

Installation

VS Code

cd vscode
bun install
bun run package
# Install the .vsix file

Or grab it from the releases page.

Standalone

bun install
bun run build

The server speaks LSP over stdio — plug it into any editor that supports language servers.


Usage

Drop a mode comment at the top of your file:

--!strict

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()

-- Full type inference and completions from here

Executor Bridge

The language server can connect to Roblox executors for live game data. When an executor connects to port 21324:

  • Get completions from the actual game tree
  • See real Instance children and properties
  • No more guessing what exists at runtime

Project Layout

src/
├── @core/        # LSP server setup
├── @parser/      # Luau lexer & parser
├── @typings/     # Type system
├── @definitions/ # Roblox API types
├── @lsp/         # All the LSP handlers
├── @executor/    # Runtime bridge
└── @workspace/   # Rojo support

Development

bun run dev        # Watch mode
bun run build      # Production build
bun run type-check # Check types
bun run lint       # Lint & fix
bun run format     # Prettier

Updating Roblox API

bun run fetch-api

Pulls the latest API dump from Roblox and regenerates type definitions.


Contributing

PRs welcome. If you're adding a feature, write a test for it.


License

MIT