Referenced by5
Labels5

Referencing ideas

IdeaStatusTagsSummaryKatz
grammar_and_parserThe language server parses with `reqlan-parse` ( [lsp_rust.language_server_rust] ). Do not switch the language to tree-sitter. Main `.rq` grammar file: [reqlan_grammar]. Comment-token grammar for `rq:[…]` in non- `.rq` sources: [comment_grammar]. `langium generate` still builds host AST modules and TextMate JSON per [development_build.build_prepare]. The checked-in TextMate grammar paints the editor before semantic tokens. Syntax requirements that the grammar must satisfy live in [syntax]; conceptual units in [ontology.idea], [ontology.ideaset], [ontology.reference], [ontology.import_statement]. Host services stay in [language_module]. The language server does not load them.0.172
language_package`packages/language` ( `@reqlan/language` ) is the canonical language definition. It owns Langium grammars, generated AST and parser, scoped linking, validators, and LSP service providers. Public DI entry is [language_module] via `createReqlanServices`. Consumers: [analytical_package] ( native index / analysis via napi ), [extension_package] ( LSP ). Published to npm as a library dependency of [analytical_package]; not Marketplace-published. See [distribution.version_management] and [package_versioning].0.105
lsp_file_watchdoneThe language server must register workspace file watchers for `.rq` files only. It must not register a recursive all-files watcher. Watched-file events whose path contains a `node_modules`, `.git`, `.reqlan`, `out`, or `dist` segment must not start a document rebuild. Directory URIs without a trailing slash, Windows paths, and percent-encoded URIs must use the same segment rules. A kept `.rq` change replaces that buffer's model when the text changed ( [ast_lifecycle] ). Related: [language_server], [index_file_search_coalesce], [open_file_algorithm].0.085
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/src/reqlan-module.ts", "../../packages/language/src/reqlan-module.ts", ../../../../packages/language/src/reqlan-module.ts, ../../packages/language/src/reqlan-module.ts, ../packages/language/src/reqlan-module.ts