Phase 5a: add configurable Jai module roots
This commit is contained in:
33
AGENTS.md
33
AGENTS.md
@@ -75,7 +75,9 @@ dev.hgh.jai.parser.DebugParseTest tests=2 <- scratch harness, ine
|
||||
dev.hgh.jai.refactoring.JaiRenameTest tests=3
|
||||
dev.hgh.jai.reference.JaiReferenceTest tests=9
|
||||
dev.hgh.jai.structure.JaiStructureViewTest tests=3
|
||||
-> total 71, failures+errors 0
|
||||
dev.hgh.jai.settings.JaiProjectSettingsTest tests=3
|
||||
dev.hgh.jai.settings.JaiConfiguredRootTest tests=4
|
||||
-> total 78, failures+errors 0
|
||||
```
|
||||
|
||||
The corpus gates report what they actually did; check both lines are still there:
|
||||
@@ -118,6 +120,13 @@ Tier 3: parsed 714 files, 714 clean (100.0%), 0 with errors, 0 PsiErrorElements
|
||||
`#import`/`#load` path references with standard go-to-definition resolution.
|
||||
Headless tests cover source-ordered declarations, nested structure members,
|
||||
folding ranges, local `#load`, and Jai module directories.
|
||||
- **Phase 5** — completion, same-file and imported symbol navigation, rename,
|
||||
and find-usages for declaration names.
|
||||
- **Phase 5a** — persistent project settings for Jai module/import roots,
|
||||
shared root-aware resolution and completion, and indexed external Jai library
|
||||
sources. Headless tests cover state round-tripping, the Settings panel,
|
||||
custom-root `#import`/`#load` navigation and completion, and cross-root
|
||||
find-usages.
|
||||
|
||||
### Lexer design facts worth knowing before touching it
|
||||
|
||||
@@ -179,30 +188,20 @@ Tier 3: parsed 714 files, 714 clean (100.0%), 0 with errors, 0 PsiErrorElements
|
||||
|
||||
### In progress — pick up here
|
||||
|
||||
1. **Phase 5 completion and navigation** — basic completion for keywords,
|
||||
compiler directives, `#import`/`#load` module paths is implemented in
|
||||
`dev.hgh.jai.completion.JaiCompletionContributor`. Identifier references now
|
||||
resolve procedures/types in the same file and transitively loaded/imported
|
||||
files. Declaration names now support rename and find-usages through the
|
||||
standard PSI contracts; module-qualified members, parameters, and fields
|
||||
remain future symbol-resolution work.
|
||||
2. **Phases 6+** — formatter, inspections, compiler integration, and other
|
||||
1. **Phases 6+** — formatter, inspections, compiler integration, and other
|
||||
optional work remain. `#asm` bodies are intentionally consumed opaquely, so
|
||||
nothing inside them has PSI yet.
|
||||
|
||||
### Next planned increment
|
||||
|
||||
- Add persistent project settings for configurable Jai module/import roots.
|
||||
- Use those roots consistently for `#import`/`#load` resolution, completion,
|
||||
symbol navigation, and find-usages.
|
||||
- Include configured external `.jai` directories in indexing/search scope so
|
||||
standard-library and custom-module usages are discoverable across files.
|
||||
- Add headless tests for settings persistence, custom-root resolution,
|
||||
completion, go-to-definition, and cross-root find-usages.
|
||||
- Decide whether to continue with the optional formatter, inspections, and
|
||||
compiler integration phases (6–8).
|
||||
- If formatter work begins, add the corpus-wide idempotence gate described in
|
||||
`docs/BUILD_PLAN.md` before changing formatting behavior.
|
||||
|
||||
### Open questions for the user (unanswered)
|
||||
|
||||
Scope (Phases 0–4 vs 0–7), compiler integration, target IDEs, JDK policy. See
|
||||
Scope (Phases 0–5a vs 0–7), compiler integration, target IDEs, JDK policy. See
|
||||
`docs/BUILD_PLAN.md` §6. Scope is the one that most affects the work.
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user