Files
intellijai/CHANGELOG.md
2026-08-05 10:43:30 -04:00

40 lines
1.9 KiB
Markdown

<!-- Keep a Changelog guide -> https://keepachangelog.com -->
# 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.