Phase 5a: add configurable Jai module roots

This commit is contained in:
hgranthorner
2026-08-05 10:24:32 -04:00
parent 9122b5a5c0
commit 2bc1b9f4be
13 changed files with 740 additions and 214 deletions

View File

@@ -17,16 +17,16 @@ never from online material (see `AGENTS.md`).
- Comment / uncomment (`//` and nesting `/* */`)
- Brace matching, including the Jai-only `.{` struct-literal and `.[`
array-literal openers
- Basic completion for keywords, directives, and local Jai module/file paths
- Basic completion for keywords, directives, and Jai module/file paths
- Project settings for ordered Jai module/import roots
- Go-to-definition for procedures and types in the same file and through
`#import`/`#load`
`#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 module-qualified members, parameters, and
struct fields. The next planned increment is configurable project module/import
roots, including indexed search scope for external standard-library and custom
module directories. Formatting, inspections, and compiler integration are
planned later. See `docs/BUILD_PLAN.md` for the phase plan.
struct fields. Formatting, inspections, and compiler integration are planned
later. See `docs/BUILD_PLAN.md` for the phase plan.
## Install it locally
@@ -39,7 +39,9 @@ In the IDE: **Settings → Plugins → ⚙ → Install Plugin from Disk…**, pi
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/`.
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.