Referenced by7
Labels21

Referencing ideas

IdeaStatusTagsSummaryKatz
comment_span_aligndoneOn every frozen [golden_corpus] `.rq` file, `//` and `/* … */` comment character ranges must be identical across: - the Langium lexer ( hidden `SL_COMMENT` / `ML_COMMENT` ) - `findCommentSpansInText` C-style spans ( host `#` / triple-quote spans are not `.rq` comments ) - TextMate `comment.line.reqlan` and `comment.block.reqlan` scopes Same-line fences, glob `/**/`, URL `://`, and fenced ` ` ` bodies must not open comments. Mid-line triple backticks are prose. They must not open a fence or hide later ideas. Example: `@reqlan/*` in inline code must not open a block comment. Related: [parser_align], ["../language/syntax.rq".code_snippets], ["../language/syntax.rq".comments], ["../language/syntax-edge-cases.rq".fencing_comments], ["../language/syntax.rq".inline_code].0.141
wildcard_reference_highlightingdoneBracket 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
fencing_commentsdoneA complete same-line fence keeps `//` and `/*` as prose, not comments. Closed double quotes: " / / this line " contains no comment. Closed backticks: `//this line` contains no comment. Closed backticks with a glob: `@reqlan/*` does not open a block comment. An unclosed backtick is not a fence, so this line ` An unclosed quote is not a fence, so as does " The Langium lexer, the Rust lexer, comment scanners, and TextMate must use this rule. Related: ["./syntax.rq".comments], ["./syntax.rq".inline_code], ["./syntax.rq".naked_strings_in_body], ["../core_analysis/rust_port.rq".comment_span_align].0.078
nested_curly_bracesif there is a prose block containing curly braces, { such as this one } they should be treated as part of the prose. Matching braces that end a line — including adjacent pairs like { { SITE_URL } } — stay in the body; they must not close the enclosing idea. A lone `}` on its own line still closes the structural block so an unbalanced prose `{` cannot swallow the idea closer.0.108
commentsdoneLine comments use `//` through end of line ( hidden `SL_COMMENT` ). Block comments use `/* … */` and may span multiple lines ( hidden `ML_COMMENT` ). Meta comments on the same line after content are allowed ( `keep this // meta` ). Comments must not open inside a string / reference-string context: - Naked body quotes ( ["naked_strings_in_body"] ): a quoted slash-slash that is not a comment, quoted urls, `"../mod/**/*.rq"`. - Reference / import `STRING` paths ( `["…"]`, `from "…" import …` ) — the lexer consumes the whole quoted path as one `STRING`, so neither `//` nor `/*` inside the quotes starts a comment. Example: a file reference whose path text contains slash-slash, `["../extension/**/*.rq".*webview*]`. - URL / path-segment guard: `//` immediately after `:` or `/` is not a line comment. Same-line fences: ["./syntax-edge-cases.rq".fencing_comments] — complete `"…"`, `'…'`, and ` ` ` … ` ` ` spans keep ` Unclosed quote or backtick openers are not fences, so `//` after them is a comment. Comment-range identity across lexer, scanner, and TextMate: ["../core_analysis/rust_port.rq".comment_span_align]. Multiline / glob clash: the empty block form `/**/` is **not** a comment — it is the recursive glob segment used in paths such as `../mod/**/*.rq`. A real block comment needs a non-empty body ( `/* note */`, `/*\n note\n*/` ). The token builder rejects length-4 `/**/` matches; comment-span scanners skip the same sequence so embedded `rq:[…]` discovery stays aligned. Related: [comment_reference_ignore], [string_literals], ["./imports.rq".wildcard_references], ["../core_analysis/rust_port.rq".comment_span_align].0.145
file_suffixReqlan requirement documents use the. rq file suffix.0.052
naked_strings_in_bodyQuoted text in idea bodies, attribute values, and list items is plain prose, not a string literal. Quote characters are preserved in the body text. For example, " Fit to view " in a bullet line is body text. String literals are reserved for import paths, top-level quoted idea names, and quoted paths inside bracket references. Quoted path-like body text is not a ["../reference_types.rq".file_reference]: ["../reference_types.rq".reference_edgecase].0.065

Reference labels

"../../../../packages/language/test/comment-in-string.test.ts:e2e: /**/ glob survives tokenize → parse in prose, naked quotes, and reference STRING", "../../packages/language/test/comment-in-string.test.ts", "../../packages/language/test/comment-in-string.test.ts:backticked //this line in block body is not a line comment", "../../packages/language/test/comment-in-string.test.ts:backticked @reqlan/* in block body is not a block comment", "../../packages/language/test/comment-in-string.test.ts:e2e: /**/ glob survives tokenize → parse in prose, naked quotes, and reference STRING", "../../packages/language/test/comment-in-string.test.ts:e2e: real block comments still hide body text", "../../packages/language/test/comment-in-string.test.ts:e2e: reference STRING with // tokenizes, parses, and keeps path text", "../../packages/language/test/comment-in-string.test.ts:isInsideLineFence treats only complete same-line fences as fences", "../../packages/language/test/comment-in-string.test.ts:quoted //this line in block body is not a line comment", "../../packages/language/test/comment-in-string.test.ts:single-quoted URL in block body is naked prose", "../../packages/language/test/comment-in-string.test.ts:unclosed backtick then // is a line comment", "../../packages/language/test/comment-in-string.test.ts:unclosed quote then // is a line comment", ../../packages/language/test/comment-in-string.test.ts, ../../packages/language/test/comment-in-string.test.ts:backticked //this line in block body is not a line comment, ../../packages/language/test/comment-in-string.test.ts:e2e: real block comments still hide body text, ../../packages/language/test/comment-in-string.test.ts:e2e: reference STRING with // tokenizes, parses, and keeps path text, ../../packages/language/test/comment-in-string.test.ts:isInsideLineFence treats only complete same-line fences as fences, ../../packages/language/test/comment-in-string.test.ts:quoted //this line in block body is not a line comment, ../../packages/language/test/comment-in-string.test.ts:single-quoted URL in block body is naked prose, ../../packages/language/test/comment-in-string.test.ts:unclosed backtick then // is a line comment, ../../packages/language/test/comment-in-string.test.ts:unclosed quote then // is a line comment