Code reference detail
reqlan-module.ts
packages/language/src/reqlan-module.ts
| Idea | Status | Tags | Summary | Katz |
|---|---|---|---|---|
| grammar_and_parser | The 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_watch | done | The 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_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. Index-path Rust port: ["../core_analysis/rust_port.rq".lexer_rust] / ["../core_analysis/rust_port.rq".parser_rust]. | 0.077 | ||
| parse_budget_timeout | done | Lexing, 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