Referenced by4
Labels14

Referencing ideas

IdeaStatusTagsSummaryKatz
ast_lifecycledoneThe open buffer has one model. That model is the Rust parse of this buffer. [local_symbolic_analysis] is a file-local extract. The hot path does not run it as a second parse. Related: [open_file_algorithm], [open_file_sequence_diagram], [outbound_one_hop], [token_colour_sequence], [parse_budget_timeout], ["./initialisation-and-sequencing.rq".lsp_file_watch], [language_server_rust]. Populate. Parse this buffer when the editor opens it. Semantic tokens, same-file links, and the import list come from that parse. Replace. When this buffer text changes, parse again and replace the model. Do not patch the old model. A watched `.rq` change uses the same replace path ( [document_update_handler] ). When the text is unchanged, keep the current model. Drop. When the editor closes the buffer, drop the model. A closed file keeps no syntax tree ( [language_server_rust] ). Import files. [outbound_one_hop] stores a name list for each imported file. That list is not an open-buffer model. A change to an imported file does not replace this buffer's model. Read the imported file again when its content hash changes. Incomplete parse. When the budget fails, store an empty model plus diagnostics ( [parse_budget_timeout] ). Idea names stay empty until a later successful parse. The node engine follows [node_engine_open_path].0.249
open_file_algorithmdoneWhen the editor opens or changes a `.rq` buffer, `reqlan-lsp` runs this sequence. Do not wait for the ideas index. Do not wait for a workspace crawl. Detail: [open_file_sequence_diagram]. Related: [open_file_reference_sequencing], [language_server_rust], [ast_lifecycle], [outbound_one_hop], [open_file_hot_path], [token_colour_sequence], [missing_reference_colour_sequence], [lazy_features_after_outbound]. The hot path finishes before the first diagnostics publish. 1. Parse this buffer once ( [ast_lifecycle] ). 2. Colour tokens from that parse ( [token_colour_sequence] ). 3. Emit same-file links and same-file missing-idea errors from that parse. 4. Parse each imported file once, at depth 1, for idea names and lines ( [outbound_one_hop] ). Link an imported name that exists. Underline an imported name that does not ( [missing_reference_colour_sequence] ). 5. Return. A qualified reference may link to its file from the path token. Do not read that file on this path. After that publish, a background pass fills the rest ( [lazy_features_after_outbound] ). That pass must not delay steps 1 – 5. The server sends the hot publish before it starts that pass. It runs that pass only while no client message waits. A hover or a definition request goes first. A change reuses the import roots loaded at open. It does not read the config again. The node engine keeps [node_engine_open_path].0.330
lexer_bridge_to_syntaxThe 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_timeoutdoneLexing, 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

Reference labels

"../../../../packages/language/test/parse-budget.test.ts:times out a hung parse worker with warning and error", "../../packages/language/test/parse-budget.test.ts:escalates large files to the worker path", "../../packages/language/test/parse-budget.test.ts:forceWorker escalates a small file", "../../packages/language/test/parse-budget.test.ts:parses a normal file within budget", "../../packages/language/test/parse-budget.test.ts:parses small files on the calling thread without a worker", "../../packages/language/test/parse-budget.test.ts:returns incomplete result when worker parse fails", "../../packages/language/test/parse-budget.test.ts:times out a hung parse worker with warning and error", ../../../../packages/language/test/parse-budget.test.ts:times out a hung parse worker with warning and error, ../../packages/language/test/parse-budget.test.ts:escalates large files to the worker path, ../../packages/language/test/parse-budget.test.ts:forceWorker escalates a small file, ../../packages/language/test/parse-budget.test.ts:parses a normal file within budget, ../../packages/language/test/parse-budget.test.ts:parses small files on the calling thread without a worker, ../../packages/language/test/parse-budget.test.ts:returns incomplete result when worker parse fails, ../../packages/language/test/parse-budget.test.ts:times out a hung parse worker with warning and error