3.1 KiB
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 - Grammar-Kit parser and PSI for the full local 714-file corpus
- Structure view and folding for blocks, comments, and here-strings
- Colour settings page (Settings → Editor → Color Scheme → Jai)
- Comment / uncomment (
//and nesting/* */) - Brace matching, including the Jai-only
.{struct-literal and.[array-literal openers - Basic completion for keywords, directives, and Jai module/file paths (symbol-aware identifier completion is not implemented yet)
- Project settings for ordered Jai module/import roots
- Go-to-definition for procedures and types in the same file and through
#import/#load, including configured external roots - Indexed external Jai roots so find-usages can cross project/library boundaries
- Rename and find-usages for declaration names and their resolved references
Remaining code-insight gaps include symbol-aware completion for declarations
and imported symbols, plus module-qualified members, parameters, and struct
fields. Formatting, inspections, and compiler integration are planned later.
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/. Configure additional
module/import directories under Settings → Languages & Frameworks → Jai;
configured roots are searched in order and indexed as Jai library sources.
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.