Code reference detail
hover_content.rs
crates/reqlan-lsp/tests/hover_content.rs
| Idea | Status | Tags | Summary | Katz |
|---|---|---|---|---|
| language_server_rust | in-progress | A Rust binary replaces the Langium language-server process. The extension launches `reqlan-lsp` over stdio. Open `.rq` buffers parse with [parser_rust]. The open sequence is ["open-file-sequencing.rq".open_file_algorithm]. Workspace names and rename targets come from the ideas index under [application_memory]. Inbound hints wait for the host snapshot of that index. The inbound inlay hover is markdown. It lists each referencer as a file link. An idea hover shows styled idea content when ["../syntax/features-syntax.rq".idea_content_tooltip] is on. A closed file has no retained syntax tree. Go-to-definition cost is ["../syntax/features-syntax-highlighting.rq".reference_goto_definition_speed]. When the engine is `rust`, the server also serves `rq:[…]` document links, go-to-definition, and missing-idea diagnostics in non- `.rq` comments. One resolution supplies the link, the definition target, and the underline. The host strips file document links; Ctrl + click uses definition ( ["../syntax/features-syntax-highlighting.rq".editor_reference_activation] ). The host serves those links when the engine is `node`. Host commands prefer LSP custom requests, napi extract, and the ideas index. Move / delete planners still use Langium until index-backed planners land. The setting `reqlan.languageServer.engine` selects the binary. The default is `rust`. `node` remains only when the setting says so, or when the binary is not on disk yet. A local extension build compiles this binary with the napi addon ( [extension_host_native_stage] ). The extension launches `bin/reqlan-lsp`, else that release build. It never launches a debug build, because a debug build is slow and the extension build does not refresh it. Code actions match ["../vsc-primitives.rq".code_actions]: ignore, create below, import fixes, search or wrap, idea move and delete, and barrel page. Attribute and name catalogs drive completion. Rename and find-references use open buffers plus the ideas index. Inlay hints honour `reqlan.referencesInlayHints.enabled` and the host inbound snapshot. An import link uses the parser token span ( [import_from] ). The path links to the file. An imported idea name and its alias each link to that declaration. A namespace reference links the alias and the idea as separate names. A missing leaf reports an unresolved idea on that name. Related: [language_server], [grammar_and_parser], [analytical_rust_port], [vsix_export]. | 0.580 | |
| complementary_information_rendering | 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 | ||
| reference_goto_definition_speed | 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 | |
| idea_content_tooltip | done | A hover on an idea name or on a reference shows that idea's content. The tooltip is markdown. It uses a heading, body lines, attributes, lists, and code fences. A reference in another file shows that file's idea content. The setting `reqlan.ideaContentTooltip.enabled` controls this hover. The default is on. When the setting is off, the hover shows the idea name and the one-line summary. Related: [syntax_hovering] ["../support/language-server-rust.rq".language_server_rust] | 0.149 | |
| syntax_features | The extension should provide language support for. rq files via the lsp. Syntax features should cover ideas, ideasets, imports, references, attributes, comments, and lists. Broken imports and references should be validated and reported in the editor. Go-to-definition and find-references should work for ideas, imports, and cross-file links. Find-references is served by ["../support/language-server-rust.rq".language_server_rust] ( `textDocument/references` ). Autoformatting should be supported for. rq files. | 0.046 |
Reference labels
"../../../../crates/reqlan-lsp/tests/hover_content.rs:hover_omits_idea_content_when_the_setting_is_off", "../../../../crates/reqlan-lsp/tests/hover_content.rs:hover_shows_idea_content_from_another_file", "../../../../crates/reqlan-lsp/tests/hover_content.rs:hover_shows_styled_idea_content_by_default", ../../../../crates/reqlan-lsp/tests/hover_content.rs:hover_omits_idea_content_when_the_setting_is_off, ../../../../crates/reqlan-lsp/tests/hover_content.rs:hover_shows_idea_content_from_another_file, ../../../../crates/reqlan-lsp/tests/hover_content.rs:hover_shows_styled_idea_content_by_default