Referenced by 6
Labels 3

Referencing ideas

IdeaStatusTagsSummary
grammar_and_parser Grammar is Langium ( Chevrotain ), not tree-sitter. Main `.rq` grammar: [reqlan_grammar]. Comment-token grammar for `rq:[…]` in non- `.rq` sources: [comment_grammar]. `langium generate` produces AST / grammar modules and TextMate JSON; TextMate is patched and copied into the extension at build time per [development_build.build_prepare]. Syntax requirements that the grammar must satisfy live in [syntax]; conceptual units in [ontology.idea], [ontology.ideaset], [ontology.reference], [ontology.import_statement]. Services are wired in [language_module].
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] ( indexer / analysis ), [extension_package] ( LSP ), [cli_package]. Published to npm as a library dependency of [analytical_package] and [cli_package]; not Marketplace-published. See [distribution.version_management] and [package_versioning].
language_server The language server is a separate Node process started by the extension host over IPC ( [extension_main] → [language_server_main] ). It runs [language_module] `createReqlanServices` for live editing: definition, completion, semantic tokens, inlays, document links, validation. It owns open-document language intelligence for `.rq` files ( and related language features ), not the full-workspace SQLite ideas index. Product expectation for LSP navigation and validation: [extension_scope.lsp_support].
scope These requirements describe the cross-package system architecture of the reqlan monorepo: language definition, language server, ideas index, editor product, and companion tools. They are distinct from [extension_scope.scope], which bounds only the VS Code extension and LSP product surface. Language concepts live in [ontology]; syntax truth lives in [syntax]; editor module contracts live under extension / module. Grouped as [workspace_packages], [language_runtime], and [product_map].
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.
parse_budget_timeout done Lexing, parsing, or a parse subprocess for a single `.rq` file must finish within a wall-clock budget. 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.

Reference labels

../../packages/language/src/reqlan-module.ts, ../packages/language/src/reqlan-module.ts, language_module