# Jai Plugin Changelog ## [Unreleased] ### Added - `.jai` file type, icon, and language registration - Hand-written Jai lexer covering the full token set of the compiler's own lexer, including nesting block comments and here-strings - Syntax highlighting and a colour settings page - Comment/uncomment support and brace matching, including `.{` and `.[` - Grammar-Kit parser and PSI for the whole language: declarations, procedures, structs, enums, unions, control flow including the `if x == { case }` switch form, and compiler directives. The full 714-file Jai distribution parses with no syntax errors; `JaiCorpusParserTest` is ratcheted at 100%. - Structure view with source-ordered declarations and nested procedure/aggregate members. - Folding for blocks, nested comments, and multi-line here-strings. - Go-to-definition references for `#import` and `#load`, including project-relative files and the local Jai module layout (`Name.jai` or `Name/module.jai`). - Basic completion for Jai keywords, compiler directives, and module/file paths. - Project-level Jai module/import root settings with ordered custom roots. - Go-to-definition for procedure and type symbols in the same file and through loaded, imported, or configured external Jai files. - Indexed external Jai roots so find-usages can cross project/library boundaries. - Rename and find-usages support for declaration names and resolved references. ### Known gaps - `#asm` bodies are parsed as opaque blocks, so their assembly instructions do not have inner PSI. - `#asm` bodies remain intentionally opaque; assembly instructions do not have inner PSI or structure entries. - Symbol-aware completion for declarations and imported symbols is not yet implemented. - Module-qualified members, procedure parameters, and struct fields do not yet have symbol resolution or completion.