Printable idea sheet
ast_lifecycle
reqlan rq/extension/language/support/open-file-sequencing.rq:85
Katz 0.249
The 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,
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
( reqlan-document-update-handler.ts ). 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
( ast_lifecycle ). Idea names stay empty until a later successful parse.
The node engine follows node_engine_open_path.
- implementation
- session.rs, analysis.rs, server.rs
- status
- done
- tests
- session.rs:open_file_diagnostics_and_close_drops_the_parse, parse-budget.test.ts:times out a hung parse worker with warning and error
Interactive page: ast_lifecycle