Referenced by4
Labels10

Referencing ideas

IdeaStatusTagsSummaryKatz
native_cache_retentiondoneThe language server keeps the open-buffer model for each open editor. It keeps a depth-1 name list for each imported file, and for each qualified-reference file the background pass has confirmed, while an open editor still needs that list. A closed editor drops its model. It also drops name lists that no open editor still needs. A file-watcher delete drops that URI from both caches. A check of a closed file may parse it once. That result is not stored. Related: [open_file_hot_path], [outbound_one_hop], [ast_lifecycle].0.072
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
scope_cache_releasedoneThis idea applies when the engine is `node` ( [node_engine_open_path] ). `fileIdeasCache` and `importPathCache` drop a URI when that Langium document is removed. A version change still replaces the entry for a document that stays. The rust server drops the open model in [native_cache_retention]. Related: [open_file_hot_path], [native_cache_retention].0.057
workspace_parse_concurrencydoneThis 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

Reference labels

"../../../../packages/language/test/lsp-memory.test.ts:drops a neighbor list when the file watcher reports a delete", "../../../../packages/language/test/lsp-memory.test.ts:drops a neighbor list when the last open editor closes", "../../../../packages/language/test/lsp-memory.test.ts:drops scope cache entries when a document is removed", "../../../../packages/language/test/lsp-memory.test.ts:loads every workspace file with at most 8 parses in flight", "../../../../packages/language/test/lsp-memory.test.ts:runs at most the concurrency limit", ../../../../packages/language/test/lsp-memory.test.ts:drops a neighbor list when the file watcher reports a delete, ../../../../packages/language/test/lsp-memory.test.ts:drops a neighbor list when the last open editor closes, ../../../../packages/language/test/lsp-memory.test.ts:drops scope cache entries when a document is removed, ../../../../packages/language/test/lsp-memory.test.ts:loads every workspace file with at most 8 parses in flight, ../../../../packages/language/test/lsp-memory.test.ts:runs at most the concurrency limit