Grammar gains: array types, directive flags, declaration-level directive modifiers, parameter markers, backticked declaration names, notes after a block-valued declaration, 'if cond then stmt', 'ifx c else v', '#module_parameters' two-group form, '(.*)' prefix dereference, and '#asm' bodies consumed opaquely (they are x86-64 assembly, not Jai). Return items no longer take a default value: allowing one made 'f: (K) -> u32 = null' swallow the enclosing parameter's default and read the rest of the parameter list as extra return values.
Jai plugin for IntelliJ IDEA
Support for the Jai programming language.
Everything here is derived from the local Jai distribution at ~/.local/jai,
never from online material (see AGENTS.md).
What works today
.jaifile type with its own icon- Syntax highlighting: keywords, built-in type names, compiler directives
(
#import,#run, …), notes (@Cleanup), numbers (hex / binary / hexfloat /_separators), strings, here-strings (#string DONE … DONE), nesting block comments, operators,---,$/$$,it/it_index - Colour settings page (Settings → Editor → Color Scheme → Jai)
- Comment / uncomment (
//and nesting/* */) - Brace matching, including the Jai-only
.{struct-literal and.[array-literal openers
Not yet: parser and PSI, so no structure view, go-to-definition, completion,
formatting, or inspections. See docs/BUILD_PLAN.md for the phase plan.
Install it locally
./jaigradle buildPlugin
# -> build/distributions/intellijai-1.0.0-SNAPSHOT.zip
In the IDE: Settings → Plugins → ⚙ → Install Plugin from Disk…, pick that ZIP, restart when prompted. Requires build 253 (2025.3) or newer; verified compatible with IU-253, IU-261 and IU-262 by the JetBrains Plugin Verifier.
To try it, open any file from ~/.local/jai/how_to/.
Uninstall or update the same way — installing a new ZIP over the old one replaces it.
Develop
./jaigradle test # or ./jaitest, which reports the JUnit XML
./jaigradle check # full verification
Never call ./gradlew directly: there is no JDK on PATH, and ./jaigradle
resolves one via mise first. Read AGENTS.md before changing anything.
Key docs:
| File | What it is |
|---|---|
AGENTS.md |
how to work in this repo; current state |
docs/JAI_LANGUAGE_REFERENCE.md |
the language, transcribed from the compiler |
docs/BUILD_PLAN.md |
phased plan and testing strategy |
Local IntelliJ references are available in ~/programming/thirdparty:
fortran-plugin— a simple language plugin to use as reference.intellij-elixir— a more complex plugin to use as reference.intellij-sdk-docs— local versions of the IntelliJ SDK documentation.