v0.2: Pico-8 Lua dialect grammar and language
Reorganize into grammars/<name>/ subdirs ( Zed's [grammars.*] supports a `path` field, so both grammars ship from this repo without a sibling- repo split ). Vendor tree-sitter-lua as the fork base for tree-sitter- pico8-lua; upstream MIT license preserved at grammars/pico-8-lua/ UPSTREAM-LICENSE.md. Dialect features added: != as ~= alias, \ integer divide, ^^ binary xor, >>> / <<> / >>< shifts and rotates, compound-assignment statements, memory peek prefixes @ % $ (% coexists with binary modulo), single-line `if (cond) stmt [else stmt]` and `while (cond) stmt`, statement-level print shorthand ?, and `#include path` directives. Identifier rule no longer accepts ! ? @ $ ( upstream did ). Pico-8 Lua language ( languages/pico-8-lua/, suffix .p8lua ) ships highlights with the full ~110 PICO-8 builtins as @function.builtin. The cart injection now hands __lua__ bodies to pico-8-lua, so .p8 carts and bare .p8lua files share the dialect-aware grammar. Examples updated to exercise the dialect end-to-end. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,11 +1,5 @@
|
||||
; Inject Lua syntax highlighting into the __lua__ section.
|
||||
;
|
||||
; NOTE: This injects Zed's built-in Lua grammar, which does not
|
||||
; understand Pico-8 dialect extensions ( ?, +=, !=, single-line
|
||||
; `if (cond) stmt`, binary literals, memory peek prefix operators,
|
||||
; etc. ). Code that uses those forms will produce parse errors
|
||||
; locally, with degraded highlighting in those regions only — the
|
||||
; rest of the file will still render correctly. A future Pico-8
|
||||
; Lua grammar fork will replace this; see README for status.
|
||||
; Hand the body of the __lua__ section to the Pico-8 Lua grammar so the
|
||||
; dialect-aware parser parses it (compound-assignment statements, the `?`
|
||||
; print shorthand, single-line `if (cond) stmt`, peek prefixes, etc.).
|
||||
((lua_content) @injection.content
|
||||
(#set! injection.language "lua"))
|
||||
(#set! injection.language "pico-8-lua"))
|
||||
|
||||
Reference in New Issue
Block a user