Skip to content

feat: add Luau language support (#153)#165

Open
azizur100389 wants to merge 1 commit intotirth8205:mainfrom
azizur100389:luau-support
Open

feat: add Luau language support (#153)#165
azizur100389 wants to merge 1 commit intotirth8205:mainfrom
azizur100389:luau-support

Conversation

@azizur100389
Copy link
Copy Markdown

Summary

  • Adds Luau (Roblox Lua) as a supported language, closing Luau Support #153.
  • Luau shares most AST node types with Lua, so the existing Lua constructs handler is reused.
  • Luau-specific type_definition nodes are mapped as Class nodes to capture type aliases (type Vector3 = { ... }).

Changes

  • code_review_graph/parser.py:
    • Added .luau extension mapping in EXTENSION_TO_LANGUAGE
    • Added "luau" entries to _CLASS_TYPES (with type_definition), _FUNCTION_TYPES, _IMPORT_TYPES, _CALL_TYPES
    • Extended 3 language == "lua" checks to language in ("lua", "luau")
  • tests/fixtures/sample.luau: Comprehensive fixture exercising type aliases, typed functions, table-based OOP (dot + colon syntax), require imports, and test functions
  • tests/test_multilang.py: 14 new tests in TestLuauParsing

What Luau parsing supports

  • Type aliases as Class nodes
  • Functions with type annotations
  • Table-based OOP (dot + colon syntax)
  • require() import detection
  • Function call and test function detection

Test Plan

  • 14 new Luau tests pass
  • All 14 existing Lua tests pass (no regression)
  • Full multilang suite: 129/129 pass
  • ruff check clean on changed Python files

Add Luau (Roblox Lua) as a supported language. Luau shares most AST
node types with Lua (function_declaration, function_call, variable_declaration,
dot/method_index_expression) so the existing Lua constructs handler is
reused. Luau-specific additions include type_definition mapped as a Class
node for Luau's type aliases.

Changes:
- Add .luau extension mapping in EXTENSION_TO_LANGUAGE
- Add luau entries to _CLASS_TYPES, _FUNCTION_TYPES, _IMPORT_TYPES, _CALL_TYPES
- Extend all language == "lua" checks to include "luau"
- Add type_definition as a Luau-specific class type
- Add comprehensive Luau fixture file (sample.luau)
- Add 14 Luau parsing tests in test_multilang.py
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant