Code reference detail
reqlan-workspace-manager.ts
packages/language/src/reqlan-workspace-manager.ts
| Idea | Status | Tags | Summary | Katz |
|---|---|---|---|---|
| node_engine_open_path | done | This idea applies when `reqlan.languageServer.engine` is `node`. The default engine is [language_server_rust]. The node server populates a Langium AST for the open buffer at `DocumentState.Parsed`. Later builder phases attach scopes, links, and diagnostics. They must not replace that AST. Parsed-time handlers must not read Langium `.ref`. Use `$refText`, the symbolic extract, or `peekResolvedRef` until `ComputedScopes`. The linker must not resolve a cross-reference while that document is below `ComputedScopes`. Do not log the Langium warning. Do not store a failed link. Scope lookup, code lens, completion, and idea summaries use `readResolvedRef` or `peekResolvedRef` until that phase. When another `.rq` file changes, relink this document when the index says it is affected, when comment references name that file, or when this document's outbound targets include the changed URI. Do not relink every document that still has a linker error. Workspace load parses at most 8 files at a time ( [workspace_parse_concurrency] ). `fileIdeasCache` and `importPathCache` drop a URI when that document is removed ( [scope_cache_release] ). Related: [open_file_algorithm], [ast_lifecycle]. | 0.133 | |
| workspace_parse_concurrency | done | This idea applies when the engine is `node` ( [node_engine_open_path] ). Workspace load parses `.rq` files with a fixed limit of 8 in flight. One file that fails to parse does not cancel the other files. The steady-state set is still every workspace `.rq` file. The rust server does not parse the workspace. A closed file keeps no syntax tree ( [language_server_rust] ). Related: [ast_lifecycle], [workspace_manager]. | 0.057 | |
| lexer_bridge_to_syntax | The context-sensitive token builder is what makes [block_idea] and prose braces coexist: structural `{` / `}` are only those that open or close ideas, while [nested_curly_braces] stay body text. [context_sensitive_lexer_scaling] is the performance contract for that bridge; [code_snippets] is the opacity contract so fence interiors never feed the brace timeline. Index-path Rust port: ["../core_analysis/rust_port.rq".lexer_rust] / ["../core_analysis/rust_port.rq".parser_rust]. | 0.077 | ||
| parse_budget_timeout | done | Lexing, parsing, or a parse subprocess for a single `.rq` file must finish within `parseBudgetMs` from ["../../packages/analytical/src/core/defaults.json"]. If it cannot, do not hang the language server or block the rest of the workspace. Surface both a warning ( budget exceeded; semantic features may be incomplete ) and an error ( file left unloaded ) on that document, then continue with other files. Happy path stays in-process ( sync ) for typical file sizes so edits and workspace load stay fast. Killable worker enforcement is used when the input is large, a file previously hit the budget ( sticky escalate ), or a caller forces the worker path; sync throws still become the same incomplete result shape. The open buffer stores that result as an empty model plus diagnostics ( ["../extension/language/support/open-file-sequencing.rq".ast_lifecycle] ). | 0.197 | |
| file_suffix | Reqlan requirement documents use the. rq file suffix. | 0.052 | ||
| no_name_idea_safe_warning | done | A top-level nameless curly-brace block — `{... }` with no idea name — must not take down the parser or the language server workspace. Parse the block as a recoverable anonymous top-level element, emit a descriptive warning that a name is required before `{`, and continue so later ideas, imports, and links still work. Nameless blocks inside parenthesized lists remain valid list items per [lists]; only top-level nameless blocks warn. Related recovery posture: ["./imports.rq".import_error_recovery]. Block shape: [block_idea]. Fenced examples must stay opaque per [code_snippets] so braces inside snippets cannot desync structural depth. Non-termination ( lex / parse never finishes ) is a different failure mode: ["./parser_lexer.rq".parse_budget_timeout]. | 0.072 |
Reference labels
"../../packages/language/src/reqlan-workspace-manager.ts", ../../../../packages/language/src/reqlan-workspace-manager.ts, ../../packages/language/src/reqlan-workspace-manager.ts