Cluster detail
features-syntax-highlighting.rq
Ideas defined in reqlan rq/extension/language/syntax/features-syntax-highlighting.rq.
file
26 ideas
1 files
| Idea | File | Status | Summary | Katz |
|---|---|---|---|---|
| activity_bar_module | reqlan rq/extension/language/syntax/features-syntax-highlighting.rq | the extension should provide a activity bar module for the ide. the activity bar module should display the following information: - the current file - the current idea - ideas referencing the current idea / selection - a local graph see ["../../local-context/activitybar.rq"] for more details. | 0.040 | |
| aliased_from_import_ctrl_click | reqlan rq/extension/language/syntax/features-syntax-highlighting.rq | done | A from-import alias that contains the imported idea name as a suffix or substring must offer one Ctrl + click destination for the whole written alias. Example: `from "@/_charter/plant-ontology.rq" import simulation as ontology-simulation` then `[ontology-simulation]`. The document-link underline must cover `ontology-simulation`, not only `simulation`. Ctrl + click on any character of that alias must open the imported idea in the import-root target file. Do not resolve the import path a second time against the current file directory. Do not offer a second interactive link on the original idea-name suffix. Related: [reference_document_links], [reference_underline_syntax_align], [non_web_reference_navigation], ["../../../language/imports.rq".import_from], ["../../../language/imports.rq".configuration_import_root_alias]. | 0.086 |
| attribute_code_completion_attribute_key | reqlan rq/extension/language/syntax/features-syntax-highlighting.rq | the attribute key should complete based on endorsed keys and what is present in the index i. e. after the @ symbol at the start of a line, the used attributes should be completed. subsquently, values of the attribute key should be completed based on the values in that attribute key. | 0.040 | |
| attribute_code_completion_main_descriptiption | reqlan rq/extension/language/syntax/features-syntax-highlighting.rq | the main description attribute is expected to be prose, so, the dropdown shouldn't be rendered in this context. | 0.040 | |
| code_lens_reference_types | reqlan rq/extension/language/syntax/features-syntax-highlighting.rq | done | References should have a ["../vsc-primitives.rq".codelens] button. The button should be togleable in settings. The button should the classification of the reference. e. g. ' open reqlan file', " open { extension } file', ' open folder', ' open idea' Clicking the CodeLens should open a reference card with summary stats — not navigate, because references already act as editor links. The card should offer open / reveal / file-selector actions when useful. Folders should be handled by focusing on the ide explorer, or by opening a file selector. Some summary stats should be shown for references - e. g. last edited, count of references, count of referencers, etc. File-top inbound file references are [file_inbound_code_lens], not this outbound classification lens. Implemented by ["../../../../packages/language/src/reqlan-code-lens-provider.ts"], ["../../../../packages/language/src/reqlan-reference-code-lens.ts"], ["../../../../packages/language/src/reqlan-code-lens-settings.ts"], ["../../../../packages/extension/src/extension/register-reference-code-lens.ts"], and ["../../../../packages/extension/src/extension/reference-code-lens-card.ts"]. [file_inbound_code_lens] | 0.069 |
| complementary_information_rendering | reqlan rq/extension/language/syntax/features-syntax-highlighting.rq | The extension should render computed information inline in the editor as complementary text. Complementary rendering should include resolved references and optionally indirect references behind a toggle. Complementary rendering should not mutate source files unless the user explicitly applies a change. | 0.040 | |
| editor_reference_activation | reqlan rq/extension/language/syntax/features-syntax-highlighting.rq | done | A file reference and an idea reference have no underline in the resting editor. The editor shows an underline when the user holds Ctrl and the pointer is on that reference. Ctrl + click follows the reference in the active editor. A target in the open file moves the cursor in that editor. A target in another file opens in the active editor group. The editor does not open a second copy of the current file. The editor does not open a browser page for a file or idea reference. Alt + Left is navigate-back. It restores the caret from before go-to-definition. The extension keeps that JUMP on a reqlan stack because Cursor often skips the editor history entry for same-file definition. The stack also records jumps that start in comment-reference host languages ( ["../comment-references/functional-code-comment-references.rq".comment_reference_navigate_back] ). Definition targets prefer an open workspace tab URI so Cursor does not open a detached file copy. The definition target range must move the caret ( not an empty 0: 0 – 0: 0 range ). A click that is already on the declaration name is not a JUMP. The TextMate scope is `meta.link.reqlan`. A `markup.underline` scope forces an underline in the resting editor. `.rq` file and idea references omit `markup.underline` — no resting underline. Comment `rq:[…]` sites add `markup.underline` via the comment injection grammar ( ["../comment-references/functional-code-comment-references.rq".comment_reference_resting_underline] ). A file document link is always underlined, and its `#L` URI opens another editor. The extension does not give the editor a file document link. Ctrl + hover uses the definition request. That request is [reference_goto_definition_speed]. The interactive underline is the lexer token under the cursor: the path string or the idea id from the parser. Definition returns `LocationLink.originSelectionRange` for that token so the editor does not invent a word from brackets or quotes. Path segment names inside a quoted path are not reference tokens. The host does not register a DefinitionProvider for other languages, and does not rescan open source files for this activation. When the engine is rust, the language-server document selector includes all file-scheme documents except the comment-host blocklist, and definition navigates resolved `rq:[…]` sites ( ["../comment-references/functional-code-comment-references.rq".references_in_functional_code_comments], ["../comment-references/functional-code-comment-references.rq".comment_reference_language_blocklist] ). A web URL and a command link ( folder, wildcard ) stay document links. A click on a web URL opens that URL in the browser. Related: [reference_document_links], [non_web_reference_navigation], [reference_goto_definition_speed]. | 0.254 |
| file_inbound_code_lens | reqlan rq/extension/language/syntax/features-syntax-highlighting.rq | done | The editor shows inbound file references in a ["../vsc-primitives.rq".codelens] at the top of the file. The CodeLens uses the same `@referenced-by: (name, …)` list form as idea inlay hints ( [view_references_as_inlay_hints] ). Idea declarations keep `@referenced-by` for idea-to-idea inbound. The file CodeLens lists ideas that point at this file with a ["../../../reference_types.rq".file_reference] ( path-only and path-with-symbol ). Click the CodeLens to open the inbound referencers summary for this file. Hide the CodeLens when the file has no inbound file references. Read referencers from the SQLite inbound snapshot ( ["../../../indexer/cache-reuse.rq".unify_inbound_indexes] ). Show the CodeLens when that snapshot arrives ( ["../support/open-file-sequencing.rq".lazy_features_after_outbound] ). Do not scan Langium IndexManager. The file CodeLens is independent of the outbound classification toggle on [code_lens_reference_types]. Applies to `.rq` files and to other indexed files that ideas reference. Implemented by ["../../../../packages/language/src/reqlan-code-lens-provider.ts"], ["../../../../packages/language/src/reqlan-file-inbound-code-lens.ts"], ["../../../../packages/language/src/reqlan-inbound-snapshot.ts"], ["../../../../packages/analytical/src/core/inbound-file-referencers.ts"], ["../../../../packages/analytical/src/index-store/sqlite-store.ts"], ["../../../../packages/extension/src/extension/inbound-file-snapshot.ts"], ["../../../../packages/extension/src/extension/register-inbound-sqlite-sync.ts"], ["../../../../packages/extension/src/extension/register-file-inbound-code-lens.ts"], ["../../../../packages/extension/src/ideas_summary_module/register-webview.ts"], and ["../../../../packages/language/src/reqlan-inlay-hint-settings.ts"]. [view_references_as_inlay_hints] [code_lens_reference_types] [inbound_inlay_index_performance] | 0.120 |
| import_statement_highlighting | reqlan rq/extension/language/syntax/features-syntax-highlighting.rq | done | TextMate highlighting for import lines must colour the whole statement, not only the leading `from` / `import` keyword. After `import` ( and after `from` … `import` ), the quoted path, the `import` / `as` keywords, and idea / alias names must receive scopes — they must not stay default-white while still looking interactive from a path document link alone. Root cause: a short `^\\b(from|import)\\b` match ran before the path patterns and consumed the keyword so the path never scoped. Fix: line-scoped `meta.import.reqlan` begin / end rules that paint path, keywords, and names. Semantic tokens still paint import AST nodes ( and must `return` after handling them ). | 0.064 |
| inbound_inlay_hints_whole_graph | reqlan rq/extension/language/syntax/features-syntax-highlighting.rq | done | Inbound references shown in [view_references_as_inlay_hints] should include referencers from the whole requirement graph across the workspace, not only ideas declared in the current file. Coverage comes from SQLite ["../../../indexer/sqlite-schema.rq".edges_table] via ["../../../indexer/cache-reuse.rq".unify_inbound_indexes], not from Langium IndexManager. Whole-graph coverage must not regress to per-idea full-index scans — see [inbound_inlay_index_performance]. Implemented by ["../../../../packages/language/src/reqlan-inbound-reference-inlay-label.ts"], ["../../../../packages/language/src/reqlan-inlay-hint-provider.ts"]. [view_references_as_inlay_hints] [traceable_inlay_hints] [inbound_inlay_index_performance] | 0.056 |
| inbound_inlay_index_performance | reqlan rq/extension/language/syntax/features-syntax-highlighting.rq | done | Computing inbound reference inlay hints for a document with many ideas must look up a pre-pushed SQLite inbound snapshot ( ["../../../indexer/cache-reuse.rq".unify_inbound_indexes] ) in near-constant time per declaration. Show the hints when that snapshot arrives ( ["../support/open-file-sequencing.rq".lazy_features_after_outbound] ). Until the first ready snapshot arrives, hints stay empty. Later index sync must not clear last-good with an empty mid-sync push ( ["../../../indexer/cache-reuse.rq".inbound_snapshot_events] ). Must not call Langium `findAllReferences` / equivalent full-index scans once per idea ( that is O ( ideas × workspace refs ) and freezes the editor on dense graphs ). Implemented by ["../../../../packages/language/src/reqlan-inbound-reference-inlay-label.ts"] and ["../../../../packages/language/src/reqlan-inlay-hint-provider.ts"]. [view_references_as_inlay_hints] [inbound_inlay_hints_whole_graph] | 0.122 |
| non_web_reference_navigation | reqlan rq/extension/language/syntax/features-syntax-highlighting.rq | done | Non-web references ( idea brackets / wikilinks, local file paths, import paths ) must be Ctrl + click navigable via document links and / or go-to-definition. Built-in http ( s ) link detection is not enough. The rust engine builds same-file links and import-target links on the open path ( ["../../../language/syntax.rq".open_file_reference_sequencing], ["../support/open-file-sequencing.rq".outbound_one_hop] ). When the engine is node, idea underlines use the path-local Rust extract ( ["../../../indexer/indexer.rq".local_symbolic_analysis] ), and go-to-definition uses Langium when the idea ref is already linked. Qualified-reference idea lines follow ["../support/open-file-sequencing.rq".lazy_features_after_outbound]. Related: [reference_document_links], [reference_goto_definition_speed], [reference_underline_syntax_align], ["../../../language/syntax.rq".open_file_reference_sequencing]. | 0.163 |
| reference_code_completion | reqlan rq/extension/language/syntax/features-syntax-highlighting.rq | references should code complete the available namespace of ideas this includes both ideas using hte standards idea namespace syntax, and ideas using file paths, and relative file paths. Cross-file candidates show import paths and may auto-insert imports: ["../support/features-imports.rq".import_code_completion_rendering] ["../support/features-imports.rq".import_code_completion_auto_file_import] Implemented by ["../../../../packages/language/src/reqlan-completion-provider.ts"]. ["./features-syntax.rq".code_completion] | 0.077 | |
| reference_code_completion_objects | reqlan rq/extension/language/syntax/features-syntax-highlighting.rq | done | [reference_code_completion] must offer code completion for all valid reqlan references: - reqlan files ( `.rq` ) - ideas and ideasets in a reqlan file after a quoted path ( `["path".idea]` ) - ideasets and ideaset members ( `[ideaset.member]` ) - code files - folders, including folders that do not contain `.rq` files Import path completion stays limited to `.rq` files. Anonymous file-reference paths share ranking and alias logic with import paths, but they include every file and folder target. Scanning every workspace file on each keystroke is too expensive: [reference_code_completion_performance]. | 0.051 |
| reference_code_completion_performance | reqlan rq/extension/language/syntax/features-syntax-highlighting.rq | done | [reference_code_completion_objects] must stay interactive on large workspaces. Path completion must not re-walk the filesystem on every keystroke: cache directory listings and reuse them for import and anonymous file-reference completion. Ranking must precompute proximity keys rather than recomputing hop distance per comparator call. Idea-graph ranking must reuse per-document adjacency across completion requests while document versions are unchanged. Anonymous file-reference completion may omit distant candidates after proximity ranking so the list stays bounded. Implemented by ["../../../../packages/language/src/reqlan-path-completion.ts"] ( `clearPathCompletionCaches`, listing cache, `sortPathCompletionCandidates` ), ["../../../../packages/language/src/reqlan-completion-provider.ts"], and ["../../../../packages/language/src/reqlan-completion-context.ts"]. [reference_code_completion] [reference_code_completion_objects] | 0.046 |
| reference_code_completion_sequencing | reqlan rq/extension/language/syntax/features-syntax-highlighting.rq | [reference_code_completion] should be offered, not alphabetically, but by distance, then alphabetically. Implemented by ["../../../../packages/language/src/reqlan-completion-provider.ts"]. ["./features-syntax.rq".code_completion] | 0.045 | |
| reference_document_links | reqlan rq/extension/language/syntax/features-syntax-highlighting.rq | done | Bracket and wikilink idea references — both same-file and cross-file — must emit a document link so the editor can follow them the same way as file-path references. Editor activation is [editor_reference_activation]. All resolved `LocalReference` and `QualifiedReference` idea / ideaset tokens should emit links targeting the declaration name, regardless of whether the target lives in the same file or an imported one. Namespace-import alias tokens ( `[alias]` → file ) keep their existing file-target link. Each link must include a `target` and a `tooltip` so VS Code does not show " Loading... ". Implemented by ["../../../../packages/language/src/reqlan-file-link-resolver.ts"] ( `resolveIdeaReferenceLinks`, `collectFileLinks` ) and ["../../../../packages/language/src/reqlan-document-link-provider.ts"]. | 0.124 |
| reference_goto_definition_speed | reqlan rq/extension/language/syntax/features-syntax-highlighting.rq | done | Hover and go-to-definition are lookups on the open parse. The parse keeps its references sorted by start byte. A request finds the reference under the cursor by binary search. A request does not walk the syntax tree and does not convert each reference to a line and column. A request resolves each authored path once per parse. It does not `stat` that path again. A same-file idea uses that parse. An open neighbor uses that neighbor's buffer. A closed neighbor is parsed once. The server keeps its model, idea names, and name-token ranges. A later request does one `stat`. It reads and parses the file again only when the modified time or the size changed. A hover on a cross-file idea renders from that cached model. It does not read the file. The target is the name token of the idea, in the open editor when the target is open. An imported alias such as `[other]` reaches the imported idea. A folder reference has no definition. Its link is the folder-picker command. A hover renders idea content only when ["./features-syntax.rq".idea_content_tooltip] is on. A request does not wait behind the confirm pass of ["../support/open-file-sequencing.rq".lazy_features_after_outbound]. The editor calls this request on Ctrl + hover. The extension does not send the document text from that handler. The extension does not open a folder picker or a wildcard panel from that handler. A folder click and a wildcard click use the command document link. When the engine is node, the provider uses cached Langium ref objects for idea tokens. It does not scan the document text when the CST already covers the cursor. Related: [editor_reference_activation], ["../../../language/imports.rq".wildcard_references_webview]. | 0.179 |
| reference_rendering | reqlan rq/extension/language/syntax/features-syntax-highlighting.rq | Resolved references should be visually distinguishable from unresolved or broken references. Indirect references inferred by graph traversal should be showable via a user toggle. Reference kinds ( dependency, incompatible with, applies to, related to ) should be surfaced where declared or inferred. Unresolved idea and file references must keep a linking / missing-file diagnostic ( error underline ). They must not receive a document-link underline that makes them look like happy, navigable references. See [import_statement_highlighting], [non_web_reference_navigation], [unresolved_reference_diagnostics]. | 0.092 | |
| reference_resolution_folder | reqlan rq/extension/language/syntax/features-syntax-highlighting.rq | If the reference path is a folder, the extension should render a popup with a list of files in that folder. The link should not try to resolve to a file if it doesn't exist. The popup is the command document link. Go-to-definition does not open the popup. Related: [editor_reference_activation], [reference_goto_definition_speed]. | 0.040 | |
| reference_underline_syntax_align | reqlan rq/extension/language/syntax/features-syntax-highlighting.rq | done | Idea document-link and error underlines must cover the same UTF-16 range as the syntax token ( Langium `$refNode` / semantic token ), including when non-ASCII text appears earlier in the file. Native extract spans are UTF-8 byte offsets ( ["../../../indexer/indexer.rq".local_symbolic_analysis] ); LSP `Position.character` is UTF-16. Convert before `positionAt` so the underline does not drift off the token. Related: [non_web_reference_navigation], [reference_document_links], [unresolved_reference_diagnostics], [aliased_from_import_ctrl_click]. | 0.125 |
| same_line_named_block_highlighting | reqlan rq/extension/language/syntax/features-syntax-highlighting.rq | done | TextMate-only highlighting ( no semantic tokens ) must follow the canonical lexer for named `{` / `}`: a top-level `name {}` or `name {hello}` is a complete ["../../../language/syntax.rq".block_idea] on that line. The grammar must close on the same line. It must not leave a block open until a later own-line `}`. An open block swallows later one-liners such as a name-only idea. `name {` at end of line is a multiline block. Close it only on an own-line `}` so matching prose pairs at end of line ( `{{SITE_URL}}` ) stay in the body per ["../../../language/syntax-edge-cases.rq".nested_curly_braces]. `name text {braces}` is a ["../../../language/syntax.rq".simple_idea]. `{` after other body text must not start a block. TextMate idea-name scopes on a file must match the Langium parse of that file. | 0.052 |
| traceable_inlay_hints | reqlan rq/extension/language/syntax/features-syntax-highlighting.rq | done | A click on one inbound referencer opens that idea via `reqlan.openInboundReferencer` → host openIndexFile ( same path as activity-bar / index opens ). The inlay label part must not use raw LSP Location for the click gesture — Cursor rejects detached file: / / opens that Location would trigger. A click on the remainder opens the inbound summary for that idea. The backlink tooltip uses the shared document-link file URI builder ( encoded path, `#L` fragment ). The Rust server emits the same markdown tooltip and open command ( ["../support/language-server-rust.rq".language_server_rust] ). A file path with a space opens that file from the inlay click and from the tooltip. A directory segment " reqlan rq " opens that file. Implemented by ["../../../../packages/language/src/reqlan-inbound-reference-inlay-label.ts"], ["../../../../packages/language/src/reqlan-inlay-hint-provider.ts"], ["../../../../packages/language/src/reqlan-inlay-hint-settings.ts"], ["../../../../packages/extension/src/extension/register-reference-inlay-hints.ts"], ["../../../../packages/language/src/reqlan-file-link-resolver.ts"], ["../../../../packages/language/src/reqlan-path-resolve.ts"], and ["../../../../crates/reqlan-lsp/src/analysis.rs"]. | 0.052 |
| unresolved_reference_diagnostics | reqlan rq/extension/language/syntax/features-syntax-highlighting.rq | in-progress | Unresolved idea references must report a linking error diagnostic. A same-file miss and an import-target miss have an error and no document link. A qualified reference may link to its file before the idea line is confirmed. After confirmation, a missing idea has an error and no document link ( ["../support/open-file-sequencing.rq".missing_reference_colour_sequence] ). A false idea link looked like a happy reference while Ctrl + click could not navigate. Missing file references stay on ["./features-syntax.rq".file_references] / ["../support/language-server-errors.rq".file_reference_errors] ( error, no document link ). Related: [reference_rendering], [non_web_reference_navigation]. | 0.117 |
| view_references_as_inlay_hints | reqlan rq/extension/language/syntax/features-syntax-highlighting.rq | done | References should be shown as inlay hints in the editor. This should be a toggleable setting, which should be available in the command palette. N-lines ( configurable setting ) of hints should be shown below the idea. Inbound lookup must stay interactive on large graphs via [inbound_inlay_index_performance]. The Rust server honours `reqlan.referencesInlayHints.enabled` and the host inbound snapshot ( `byIdeaName` + `fileReferencers` ). Implemented by ["../../../../packages/language/src/reqlan-inlay-hint-provider.ts"], ["../../../../packages/language/src/reqlan-inbound-reference-inlay-label.ts"], ["../../../../packages/language/src/reqlan-inlay-hint-settings.ts"], ["../../../../packages/extension/src/extension/register-reference-inlay-hints.ts"], and ["../../../../crates/reqlan-lsp/src/session.rs"]. | 0.093 |
| wildcard_reference_highlighting | reqlan rq/extension/language/syntax/features-syntax-highlighting.rq | done | Bracket and wikilink forms of ["../../../language/imports.rq".wildcard_references] ( `["path/**/*.rq".idea_*]`, `[["path/*.rq".*_pane|label]]` ) must TextMate-scope as `meta.link.reqlan` with the path as `string.other.link.reqlan` — never as `comment.block.reqlan`. The grey " comment " paint happened when `#bracket-references` only allowed ID suffixes, so `/*` inside an unmatched path opened a block comment. Fixes: TextMate `#bracket-references` / wiki path patterns accept `WILDCARD_NAME` suffixes; `#comments` block begin rejects empty slash-star-star-slash; body rules try references before comments. Semantic tokens paint `WildcardReference.pathPattern` as string and `ideaPattern` as variable ( ["./features-syntax.rq".syntax_highlighting] ). Related: ["../../../language/syntax.rq".comments], ["../../../language/imports.rq".wildcard_references_webview]. | 0.079 |
Cluster graph
Initialising graph…