# 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`). - Completion for Jai keywords, compiler directives, module/file paths, visible same-file or imported declarations, procedure parameters, and members of imported module aliases. - 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. - PSI-aware formatter with operator and punctuation spacing, block indentation, directive-flag handling, and preservation of opaque `#asm` bodies; formatting is idempotent across all 714 corpus files. - Inspection warnings for unresolved `#import` and `#load` module/file paths. ### 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. - Struct fields and other type-qualified members do not yet have symbol resolution or completion.