Files
intellijai/README.md
2026-08-06 16:18:34 -04:00

3.3 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

  • .jai file 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
  • Completion for keywords, directives, Jai module/file paths, visible same-file or imported declarations, procedure parameters, and members of imported module aliases
  • 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
  • PSI-aware formatting for operator and punctuation spacing, block indentation, directive flags, and opaque #asm bodies; formatting is idempotent across the full local corpus
  • Inspection warnings for unresolved #import and #load module/file paths

Remaining code-insight gaps include completion and symbol resolution for struct fields and other type-qualified members. Additional 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.