Referenced by48
Labels142

Referencing ideas

IdeaStatusTagsSummaryKatz
analytical_rust_portin-progressPort ["../core-architecture.rq".analytical_package] to Rust: lexer, parser ( index path ), extractor, SQLite index, search, and export. `@reqlan/analytical` remains the published JS facade ( `createAnalysisRuntime` / `AnalysisApi` / Zustand host state ). Native work lives in a `crates/` Cargo workspace and ships as per-architecture binaries per [distribution.rust_binary_distribution]. The editor language server is [lsp_rust.language_server_rust]. This analytical port does not replace that process. Component plans: [rust_crate_layout], [lexer_rust], [parser_rust], [parser_align], [indexer.indexer_rust], [search_rust], [export_rust], [native_bridge], [cutover].0.243
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
golden_corpusdoneParser / extractor alignment uses a frozen `.rq` tree under `testdata/golden-corpus/`, not live product requirements in `reqlan rq/`. Production idea lists may change without regenerating the dump. Copy a representative file into the corpus and refresh `crates/reqlan-index/tests/golden/langium-corpus-names.json` only when grammar or extract behaviour needs a new sample. Langium and Rust both extract name + kind from that tree and must match the committed dump. Live parse alignment ( elements and refs, both engines in one test ): [parser_align]. Comment character ranges on the same tree: [comment_span_align].0.104
parser_rustdoneRecursive-descent parser matching ["../../packages/language/src/reqlan.langium"] productions into a Rust AST the extractor can walk. Recovery: nameless `{...}` and local import mistakes still yield a usable document ( [parser_lexer.recovery_vs_budget] ). Wall-clock [parser_lexer.parse_budget_timeout] via native timeout / cancel — no Node worker process required on the index path. Open `.rq` buffers and CLI `parse` use `reqlan-parse` ( [lsp_rust.language_server_rust] ). Langium remains a dual-parser test oracle and the transitional `node` engine fallback — not the default editor LSP. Alignment contract: [parser_align].0.217
installation_eventdoneOn installation of the extension a webview should be opened showing: - A welcome message - Resolved links to site, github, docs etc. ( not template placeholders ) - A syntax-highlighted example `.rq` with real URLs ( clickable ) from ["../../../../packages/extension/templates/thanks-for-installing.template.rq"] after placeholder substitution - A control to open that example as an untitled `.rq` editor beside the webview - Short tips for the activity bar and `@reqlan` chat - A thanks to sponsors Place in overall install sequencing: ["../installation.rq".welcome_webview_install] / ["../installation.rq".extension_installation]. Implemented as a Svelte webview under ["../../../../packages/extension/webviews/onboarding"] bundled to ["../../../../packages/extension/media/webviews/onboarding"] and opened once on first activation by ["../../../../packages/extension/src/extension/open-thanks-for-installing.ts"] via ["../../../../packages/extension/src/extension/onboarding-panel.ts"]. Resource links and template values are resolved at runtime from [phonebook_reqs.phonebook] through ["../../../../packages/extension/src/shared/phonebook.ts"] and posted to the webview; the example block imports ["../../../../packages/extension/templates/thanks-for-installing.template.rq"] via Vite `?raw` and substitutes `{{…}}` placeholders before display. Highlighting uses the onboarding tokenizer in ["../../../../packages/extension/webviews/onboarding/lib/rq-highlight.ts"]. The source template still uses placeholders such as { { SITE_URL } }; those matching braces are body prose per ["../../../language/syntax-edge-cases.rq".nested_curly_braces] and must parse without errors. Activation state is stored in extension global state key `onboarding` with `onboardingMessageShown` and `lastVersion` per ["../../../../packages/extension/src/extension/onboarding-state.ts"]. VS Code persists `globalState` in the extension global storage directory ( `globalStorage/reqlan.reqlan-extension/state.vscdb` under the editor user data folder ).0.141
complementary_information_renderingThe 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
same_line_named_block_highlightingdoneTextMate-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
at_sign_in_idea_text_blockthe @ symbol should only indicate an attribute if at the start of a line. it should be escapeable with a backslash ( although any character would work as the @ would no longer be at the start of the line ) so @ this_is_not_an_attribute0.040
syntax_featuresThe 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
import_error_recoveryA malformed import must not invalidate the rest of the file. Recoverable invalid `from` shapes parse as local import nodes with a line-level diagnostic: - `from "path" as alias` ( mistaken namespace form ) — suggest `import "path" as alias` or `from "path" import <idea>` - bare `from "path"` — require the `import <idea>` clause - `from` without a quoted path — consume the remainder of the line as an invalid import Later imports and top-level ideas continue to parse and link normally. Same recovery posture for nameless top-level braces: ["./syntax.rq".no_name_idea_safe_warning]. If lex / parse never completes, see ["./parser_lexer.rq".parse_budget_timeout].0.058
import_fromFrom-import syntax uses from, a quoted path, import, and an idea name. From-import may list more than one idea. Separate the names with commas. From-import may include an alias using as. The parser records a span for the path, each idea name, and each alias. Each of those tokens is its own document link. The path links to the file. An idea name links to that declaration. An alias links to the same declaration. When the alias contains the imported idea name, Ctrl + click on a bracket reference still treats the whole alias as one link. See ["../extension/language/syntax/features-syntax-highlighting.rq".aliased_from_import_ctrl_click]. The language server uses the parser spans: ["../extension/language/support/language-server-rust.rq".language_server_rust].0.220
import_keywordsThe keywords import, from, and as are reserved for import statements. Import keywords may also appear as ordinary words in idea body text when not at statement start.0.047
closing_nested_curly_bracesif, for some reason, there is a prose block containing only closing curly braces, they should be escaped and allowed \ } like this.0.040
context_sensitive_lexer_scalingdoneContext-sensitive token classification for structural / prose braces and top-level import keywords must remain linear in document size. The lexer records brace-depth changes sparsely ( not per-character tables ) and looks them up in log time while tokenising, so workspace language-server initialization and editor re-lexes stay bounded. Code fences are skipped during the brace scan so example braces cannot inflate work or desync depth. Bounded work still assumes the lexer / parser *returns*; unbounded hangs are cut by ["./parser_lexer.rq".parse_budget_timeout].0.097
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
attribute_formsA bare attribute name after @ denotes a true flag or render keyword. A negated flag uses a trailing bang after the attribute name. A valued attribute uses a space after the attribute name followed by a value. A colon after the attribute name is optional legacy syntax and is not part of the value. Common attributes include plan, status, priority, criticality, confirmation, owner, log, tags, and references with the @ prefix. Any custom attribute name is allowed.0.049
attribute_locationMarked attributes must be at the start of a line. @ this_is_not_an_attribute0.049
block_ideaA block idea is a name followed by curly braces that contain a body and optional attributes. The opening `{` may share the line with the closing `}` ( `name {}`, `name {hello}` ). The opening `{` may also sit at the end of the name line, with the closer on a later line. `{` starts a block only when it is immediately after the name ( optional spaces ). If other text is between the name and `{`, the line is a [simple_idea] and the braces are body text. The first unstructured text in an idea body is the main description when no other body attribute is marked.0.099
code_snippetsIdea bodies and block attribute values may embed fenced code blocks delimited by triple backticks. An opening fence is three backticks as the first non-whitespace characters on a line, optionally followed by a language tag such as python or rq. A closing fence is three backticks as the first non-whitespace characters on a line. Three backticks in the middle of a line are prose. They do not open a fence. Everything between the fences is literal opaque text — it is not parsed as reqlan syntax. Keywords, imports, attributes, braces, and quotes inside a fence are inert for the parser and may be shown as examples without parse errors. Fenced blocks may span multiple lines and preserve their inner content verbatim. Brace-depth tracking must skip fence interiors so example braces cannot desync surrounding structure ( [no_name_idea_safe_warning] ). Related: ["../core_analysis/rust_port.rq".comment_span_align].0.113
empty_attributeA line that contains only @ is insignificant whitespace. Spaces or tabs may precede that @. Spaces or tabs may follow that @. The lexer consumes that @ as hidden whitespace. The parser does not build an attribute for that line. That line does not cause a parser error. That line does not cause a lexer error. That line does not cause a tokenizer error. That line does not cause an extension error. A flag keeps the form @ name. A negated flag keeps the form @ name!. A valued attribute keeps its value after the name. A syntax error on a different line is still reported.0.040
file_layoutincompleteA file begins with zero or more import statements, followed by top-level ideas and ideasets. The file forms an implicit ideaset; its name may default to the filename without the suffix. Front matter syntax is not yet specified.0.070
file_suffixReqlan requirement documents use the. rq file suffix.0.052
idea_nameIdea names are identifiers or double-quoted strings. Unquoted names follow identifier rules and may use letters, digits, underscores, and dashes, for example myidea, my_idea, or dash-or_underscore_delimited-idea. Quoted names allow spaces and other characters when wrapped in double quotes. Idea names must be unique within their ideaset or file. An idea, one-liner, and ideaset must not share a name in the same file. Idea names should not use reserved keywords.0.063
inline_codedoneSingle-backtick spans ( `…` ) are opaque `INLINE_CODE`. They may show example syntax such as a quoted path plus idea. The grammar does not parse bracket or file references inside the span. Check and the language server must not report those examples as unresolved ["../reference_types.rq".file_reference] or idea refs. Related: [code_snippets], ["../core_analysis/rust_port.rq".comment_span_align].0.165
listsParenthesized lists contain newline-separated items. Each list item is either a one-liner or a nameless block idea in curly braces. Lists may appear as attribute values and inside block bodies. Named lists use a label followed by a parenthesized item list; the opening parenthesis must be followed by a newline before the first item. Nested lists may appear inside block values or as list items; the opening parenthesis must be followed by a newline before the first item. Inline parentheses in body prose — for example continuous ( " live " ) physics or ( pixelRatio 1, no WebGL ) — are plain text, not lists.0.055
markdown_linksdoneMarkdown `[label](target)` links are supported; the label is not treated as an idea reference. Example: testing requirements and the golden corpus. Related: ["../development/core.rq".testing], ["../core_analysis/rust_port.rq".golden_corpus].0.055
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
no_name_idea_safe_warningdoneA top-level nameless curly-brace block — `{... }` with no idea name — must not take down the parser or the language server workspace. Parse the block as a recoverable anonymous top-level element, emit a descriptive warning that a name is required before `{`, and continue so later ideas, imports, and links still work. Nameless blocks inside parenthesized lists remain valid list items per [lists]; only top-level nameless blocks warn. Related recovery posture: ["./imports.rq".import_error_recovery]. Block shape: [block_idea]. Fenced examples must stay opaque per [code_snippets] so braces inside snippets cannot desync structural depth. Non-termination ( lex / parse never finishes ) is a different failure mode: ["./parser_lexer.rq".parse_budget_timeout].0.072
reference_urldoneA bracket reference may target an unquoted absolute URL ( `scheme://…` ). Example: `[https://reqlan.com/]`. The URL is one token; `://` is not a line comment. Unbracketed URLs in body prose stay text. Quoted remote paths stay [reference_file] ( `["https://example.com/file.ts"]` ). Index and check: ["../reference_types.rq".url_reference].0.137
reference_wikilinkDouble-bracket wikilinks use doubled square brackets around a target. Wikilinks may include an obsidian-style alias pipe with a display label after the target. A bare pipe character in body prose — for example kind: idea | file | selection — is plain text, not wikilink syntax.0.230
round_bracketsRound brackets indicate a list of ideas or attributes. Items may be separated by commas or newlines. Attribute list values may use commas or newlines; see @ example_list_attribute_using_commas and @ example_list_attribute_using_newlines. Parentheses in body prose — including API call shapes like cytoscape. animate ( { fit, easing: ' ease-out-cubic ' } ) — are plain text, not list syntax.0.045
simple_ideaA one-liner idea is written as a name followed by unstructured body text on the same line. A name-only idea is a one-liner with just the name and no body text. One-liner ideas do not continue onto subsequent lines. A `{` that is not immediately after the name is body text, not a block opener — see ["./syntax-edge-cases.rq".one_liner_curly_brace_context]. `name {}` and `name {hello}` are [block_idea] forms, not one-liners.0.075
string_and_reference_apostrophesstrings should use double or single apostrophes interchangeably and support backslash escapes.0.040
idea-leading-whitespaceA block body can have spaces or tabs before the text. The lexer counts a space and a tab as whitespace. A tab is one whitespace character. The parser does not replace a tab with spaces. The base indent is the whitespace at the start of the first body line. The first body line is the first line of body text in the block. The first body line can start after column 0. The base indent is still the whitespace on that line. A body line with the same whitespace as the base indent has no leading whitespace in the parsed text. A body line keeps the whitespace that remains after the base indent. The parser removes the base indent only when the line starts with that same whitespace. An attribute on its own line stays an attribute. Example: the first body line has four spaces. A later line with four spaces has no leading whitespace. A later line with eight spaces has four spaces in the parsed text. This line has the same four spaces as the first body line. This line has eight spaces.0.040
syntax_whitespacewhitespace is not significant in attributes. this line is not an idea, it is part of the main content attribute ["../ontology.rq".attribute]0.040
attributedoneAttributes are classification, functional, or nonfunctional metadata. Syntax: ["./language/syntax.rq".attribute_marker], ["./language/syntax.rq".attribute_forms], ["./language/syntax.rq".attribute_values], ["./language/syntax.rq".attribute_location]. Policy: ["./language/attributes.rq".attribute_configuration]. Indexed on [analytical_types] `IdeaAttributeMap`; extract: [idea_extractor], [rust_extract]. Product surface: [ideas_summary_tabs] Attributes tab.0.070
filedoneFiles store ideas and form ideasets. Documents use the `.rq` suffix ( ["./language/syntax.rq".file_suffix] ) and ["./language/syntax.rq".file_layout]. Indexed as ideaset kind `file` in [analytical_types].0.094
grammar_ruledoneGrammar rules describe the syntax features. Requirements: ["./language/syntax.rq"]; lexer bridge: ["./language/parser_lexer.rq".lexer_bridge_to_syntax]. Langium: [reqlan_grammar]; comment grammar: [comment_grammar]; index-path AST: [rust_ast].0.040
ideadoneA reqlan core unit is an idea. Syntax: ["./language/syntax.rq".simple_idea], ["./language/syntax.rq".block_idea]. Grammar: [reqlan_grammar] `Idea` / `OneLinerIdea`; index records: [analytical_types] `IdeaRecord`. Extract: [idea_extractor], [rust_extract]; AST: [rust_ast]. Product surface: [ideas_summary_tabs] Ideas tab per ["./extension/workspace-summary/ideas_summary/webview.rq".ontology_aligned_tabs].0.110
idea_namedoneThe idea name is a string / handle / variable that uniquely identifies the idea ( within the ideaset / file ). It should not be a reserved [keyword]. Syntax: ["./language/syntax.rq".idea_name]; grammar: [reqlan_grammar] `IdeaName`.0.069
ideasetdoneIdeasets are namespace containers for ideas. Syntax: ["./language/syntax.rq".ideaset]. Grammar: [reqlan_grammar] `IdeaSet`. Index kind `ideaset` plus `ideaset_member` edges: [analytical_types], [idea_extractor], [rust_index_types]. A [file] is an implicit ideaset ( ["./language/syntax.rq".file_layout] ). Product surface: [ideas_summary_tabs] Ideasets tab.0.134
import_statementdoneImports describe references. Some [keyword] s are reserved for imports. Forms: ["./language/imports.rq".import_from], ["./language/imports.rq".import_namespace], ["./language/imports.rq".import_qualified]. Grammar: [reqlan_grammar] `Import`; resolve: [import_resolver].0.063
keyworddoneAs a language, reqlan has keywords that are reserved in some contexts. Import statement keywords: ["./language/imports.rq".import_keywords] ( `import`, `from`, `as` ). Grammar: [reqlan_grammar] — those tokens are keywords only at statement start. Idea names should not use reserved keywords ( [idea_name] ).0.057
idea_referencedoneIdea-to-idea ["./ontology.rq".reference]: bracket `[name]` / `[ideaset.name]` targets a local, imported, or same-file idea. Syntax: ["./language/syntax.rq".reference_brackets], ["./language/syntax.rq".same_file_reference], ["./language/syntax.rq".reference_qualified], ["./language/syntax.rq".reference_embedding], ["./language/syntax.rq".references_to_subidea]. Index edge kind `references` on [analytical_types] / [rust_index_types]. Extract: [idea_extractor], [rust_extract]. A `[ideaset.member]` form records the edge on the member leaf, not on the ideaset container. An attribute uses the same brackets. See ["./language/syntax.rq".attribute_namespacing]. Wikilink surface for the same edge kind: [link_reference]. Fan-out across files: [wildcard_reference].0.125
link_referencedoneLink-shaped ["./ontology.rq".reference] surfaces that are not a bare `[idea]` bracket. Wikilink `[[target]]` ( optional alias pipe ): ["./language/syntax.rq".reference_wikilink] — indexes as idea-to-idea `references`, same as [idea_reference]. Markdown `[label](target)`: ["./language/syntax.rq".markdown_links] — label is not an idea ref; the target indexes as `file_reference` ( [file_reference] ).0.112
reference_edgecasedoneA quoted string is a [file_reference] only when it is inside brackets. Example of a file reference: ["./reference_types.rq"] Example of body text: " this is not a reference. rq " The file suffix does not change this rule. The parser must not make a file reference from quoted body text. The language server must not make a document link or a missing-file error from quoted body text. Related: [file_reference], ["./language/syntax.rq".naked_strings_in_body], ["./language/syntax.rq".reference_file].0.112
url_referencedoneA bracket reference whose target is an absolute URL with a scheme and `://`. Example: [https://reqlan.com/]. Syntax: ["./language/syntax.rq".reference_url]. Index edge kind `url_reference` on [analytical_types] / [rust_index_types]. Extract: [idea_extractor], [rust_extract]. [check] does not treat a URL reference as a missing idea or a missing file. Unbracketed URLs in body prose stay text, not this kind. Related: [file_reference], [link_reference].0.075

Reference labels

"../../../../packages/language/test/parsing.test.ts", "../../../../packages/language/test/parsing.test.ts:parse thanks-for-installing template", "../../../../packages/language/test/parsing.test.ts:same-line braces after a name parse as a block", "../../packages/language/test/parsing.test.ts:allows escaped closing brace in body prose", "../../packages/language/test/parsing.test.ts:backslash before @ at line start keeps it as body text", "../../packages/language/test/parsing.test.ts:does not parse a backticked file-only line range as a bracket reference", "../../packages/language/test/parsing.test.ts:does not parse unbracketed quoted paths as file references", "../../packages/language/test/parsing.test.ts:does not parse unbracketed urls as url references", "../../packages/language/test/parsing.test.ts:does not treat naked quoted path-like prose as an import reference", "../../packages/language/test/parsing.test.ts:keeps an extra tab on a later body line", "../../packages/language/test/parsing.test.ts:keeps end-of-line matching prose braces as text", "../../packages/language/test/parsing.test.ts:keeps extra indent on a later body line", "../../packages/language/test/parsing.test.ts:keeps inline braces in body prose as text", "../../packages/language/test/parsing.test.ts:keeps inline parentheses in body prose as text", "../../packages/language/test/parsing.test.ts:keeps inline prose brace pairs as text", "../../packages/language/test/parsing.test.ts:keeps later ideas after mid-line triple backticks", "../../packages/language/test/parsing.test.ts:keeps later ideas after nested @slides lists with mid-line @plan braces", "../../packages/language/test/parsing.test.ts:keeps naked quoted phrases in attribute scalar values", "../../packages/language/test/parsing.test.ts:keeps naked quoted phrases in block body text", "../../packages/language/test/parsing.test.ts:keeps naked quoted phrases in list items", "../../packages/language/test/parsing.test.ts:keeps naked quoted phrases in one-liner body after the idea name", "../../packages/language/test/parsing.test.ts:keeps naked quotes alongside bracket references on one line", "../../packages/language/test/parsing.test.ts:keeps pipe characters in body prose as text", "../../packages/language/test/parsing.test.ts:keeps single-quoted naked phrases in block body text", "../../packages/language/test/parsing.test.ts:malformed from-as import keeps later ideas parseable", "../../packages/language/test/parsing.test.ts:markdown link labels are not treated as reference prefix context", "../../packages/language/test/parsing.test.ts:parse code snippet in block idea", "../../packages/language/test/parsing.test.ts:parse dash and underscore delimited idea names", "../../packages/language/test/parsing.test.ts:parse docs.rq markdown folder link", "../../packages/language/test/parsing.test.ts:parse extension context-scope.rq module", "../../packages/language/test/parsing.test.ts:parse extension graph.rq library", "../../packages/language/test/parsing.test.ts:parse fenced code block in attribute value", "../../packages/language/test/parsing.test.ts:parse list items as one-liners and anonymous blocks", "../../packages/language/test/parsing.test.ts:parse markdown links without treating label as a reference", "../../packages/language/test/parsing.test.ts:parse mid-line triple backticks corpus without swallowing later ideas", "../../packages/language/test/parsing.test.ts:parse name-only ideas without a body", "../../packages/language/test/parsing.test.ts:parse ontology.rq ideas", "../../packages/language/test/parsing.test.ts:parse rust_port.rq keeps ideas after comment_span_align fence prose", "../../packages/language/test/parsing.test.ts:parse single-quoted import paths and idea names", "../../packages/language/test/parsing.test.ts:parse syntax-edge-cases.rq", "../../packages/language/test/parsing.test.ts:parse syntax.rq", "../../packages/language/test/parsing.test.ts:parse thanks-for-installing template", "../../packages/language/test/parsing.test.ts:parse tutorials.rq nested @slides lists without parser errors", "../../packages/language/test/parsing.test.ts:parses a large import prelude without repeated full-document brace scans", "../../packages/language/test/parsing.test.ts:parses a lone @ without a parser error and keeps later ideas", "../../packages/language/test/parsing.test.ts:parses bracketed url references", "../../packages/language/test/parsing.test.ts:parses from-import example line inside an attribute block value", "../../packages/language/test/parsing.test.ts:parses reframe requirement snippets with naked quoted UI labels", "../../packages/language/test/parsing.test.ts:parses self-contained ideas with apostrophe contractions in body prose", "../../packages/language/test/parsing.test.ts:parses top-level nameless braces without aborting later ideas", "../../packages/language/test/parsing.test.ts:parses valued attributes without a colon", "../../packages/language/test/parsing.test.ts:same-line braces after a name parse as a block", "../../packages/language/test/parsing.test.ts:still accepts optional colon before attribute values", "../../packages/language/test/parsing.test.ts:still reports a syntax error when another line is invalid", "../../packages/language/test/parsing.test.ts:treats fenced TypeScript braces as opaque for surrounding structure", "../../packages/language/test/parsing.test.ts:treats fenced rq example as opaque text", "../../packages/language/test/parsing.test.ts:treats mid-line @ as body text and line-start @ as attribute", "../../packages/language/test/parsing.test.ts:uses the first body line indent when that line is not at column 0", "../packages/language/test/parsing.test.ts:does not parse unbracketed quoted paths as file references", "../packages/language/test/parsing.test.ts:does not parse unbracketed urls as url references", "../packages/language/test/parsing.test.ts:keeps pipe characters in body prose as text", "../packages/language/test/parsing.test.ts:malformed from-as import keeps later ideas parseable", "../packages/language/test/parsing.test.ts:parse dash and underscore delimited idea names", "../packages/language/test/parsing.test.ts:parse example sub idea.rq", "../packages/language/test/parsing.test.ts:parse one-liner ideas", "../packages/language/test/parsing.test.ts:parse ontology.rq ideas", "../packages/language/test/parsing.test.ts:parse syntax.rq", "../packages/language/test/parsing.test.ts:parses bracketed url references", "../packages/language/test/parsing.test.ts:parses from-import example line inside an attribute block value", "../packages/language/test/parsing.test.ts:parses valued attributes without a colon", "../packages/language/test/parsing.test.ts:treats mid-line @ as body text and line-start @ as attribute", ../../../../packages/language/test/parsing.test.ts, ../../../../packages/language/test/parsing.test.ts:parse thanks-for-installing template, ../../../../packages/language/test/parsing.test.ts:same-line braces after a name parse as a block, ../../packages/language/test/parsing.test.ts:allows escaped closing brace in body prose, ../../packages/language/test/parsing.test.ts:backslash before @ at line start keeps it as body text, ../../packages/language/test/parsing.test.ts:does not parse a backticked file-only line range as a bracket reference, ../../packages/language/test/parsing.test.ts:does not parse unbracketed quoted paths as file references, ../../packages/language/test/parsing.test.ts:does not parse unbracketed urls as url references, ../../packages/language/test/parsing.test.ts:does not treat naked quoted path-like prose as an import reference, ../../packages/language/test/parsing.test.ts:keeps an extra tab on a later body line, ../../packages/language/test/parsing.test.ts:keeps end-of-line matching prose braces as text, ../../packages/language/test/parsing.test.ts:keeps extra indent on a later body line, ../../packages/language/test/parsing.test.ts:keeps inline braces in body prose as text, ../../packages/language/test/parsing.test.ts:keeps inline parentheses in body prose as text, ../../packages/language/test/parsing.test.ts:keeps inline prose brace pairs as text, ../../packages/language/test/parsing.test.ts:keeps later ideas after mid-line triple backticks, ../../packages/language/test/parsing.test.ts:keeps later ideas after nested @slides lists with mid-line @plan braces, ../../packages/language/test/parsing.test.ts:keeps naked quoted phrases in attribute scalar values, ../../packages/language/test/parsing.test.ts:keeps naked quoted phrases in block body text, ../../packages/language/test/parsing.test.ts:keeps naked quoted phrases in list items, ../../packages/language/test/parsing.test.ts:keeps naked quoted phrases in one-liner body after the idea name, ../../packages/language/test/parsing.test.ts:keeps naked quotes alongside bracket references on one line, ../../packages/language/test/parsing.test.ts:keeps pipe characters in body prose as text, ../../packages/language/test/parsing.test.ts:keeps single-quoted naked phrases in block body text, ../../packages/language/test/parsing.test.ts:malformed from-as import keeps later ideas parseable, ../../packages/language/test/parsing.test.ts:markdown link labels are not treated as reference prefix context, ../../packages/language/test/parsing.test.ts:parse code snippet in block idea, ../../packages/language/test/parsing.test.ts:parse dash and underscore delimited idea names, ../../packages/language/test/parsing.test.ts:parse docs.rq markdown folder link, ../../packages/language/test/parsing.test.ts:parse extension context-scope.rq module, ../../packages/language/test/parsing.test.ts:parse extension graph.rq library, ../../packages/language/test/parsing.test.ts:parse fenced code block in attribute value, ../../packages/language/test/parsing.test.ts:parse list items as one-liners and anonymous blocks, ../../packages/language/test/parsing.test.ts:parse markdown links without treating label as a reference, ../../packages/language/test/parsing.test.ts:parse mid-line triple backticks corpus without swallowing later ideas, ../../packages/language/test/parsing.test.ts:parse name-only ideas without a body, ../../packages/language/test/parsing.test.ts:parse ontology.rq ideas, ../../packages/language/test/parsing.test.ts:parse rust_port.rq keeps ideas after comment_span_align fence prose, ../../packages/language/test/parsing.test.ts:parse single-quoted import paths and idea names, ../../packages/language/test/parsing.test.ts:parse syntax-edge-cases.rq, ../../packages/language/test/parsing.test.ts:parse syntax.rq, ../../packages/language/test/parsing.test.ts:parse thanks-for-installing template, ../../packages/language/test/parsing.test.ts:parse tutorials.rq nested @slides lists without parser errors, ../../packages/language/test/parsing.test.ts:parses a large import prelude without repeated full-document brace scans, ../../packages/language/test/parsing.test.ts:parses a lone @ without a parser error and keeps later ideas, ../../packages/language/test/parsing.test.ts:parses bracketed url references, ../../packages/language/test/parsing.test.ts:parses from-import example line inside an attribute block value, ../../packages/language/test/parsing.test.ts:parses reframe requirement snippets with naked quoted UI labels, ../../packages/language/test/parsing.test.ts:parses self-contained ideas with apostrophe contractions in body prose, ../../packages/language/test/parsing.test.ts:parses top-level nameless braces without aborting later ideas, ../../packages/language/test/parsing.test.ts:parses valued attributes without a colon, ../../packages/language/test/parsing.test.ts:same-line braces after a name parse as a block, ../../packages/language/test/parsing.test.ts:still accepts optional colon before attribute values, ../../packages/language/test/parsing.test.ts:still reports a syntax error when another line is invalid, ../../packages/language/test/parsing.test.ts:treats fenced TypeScript braces as opaque for surrounding structure, ../../packages/language/test/parsing.test.ts:treats fenced rq example as opaque text, ../../packages/language/test/parsing.test.ts:treats mid-line @ as body text and line-start @ as attribute, ../../packages/language/test/parsing.test.ts:uses the first body line indent when that line is not at column 0, ../packages/language/test/parsing.test.ts:does not parse unbracketed quoted paths as file references, ../packages/language/test/parsing.test.ts:does not parse unbracketed urls as url references, ../packages/language/test/parsing.test.ts:keeps pipe characters in body prose as text, ../packages/language/test/parsing.test.ts:malformed from-as import keeps later ideas parseable, ../packages/language/test/parsing.test.ts:parse dash and underscore delimited idea names, ../packages/language/test/parsing.test.ts:parse example sub idea.rq, ../packages/language/test/parsing.test.ts:parse one-liner ideas, ../packages/language/test/parsing.test.ts:parse ontology.rq ideas, ../packages/language/test/parsing.test.ts:parse syntax.rq, ../packages/language/test/parsing.test.ts:parses bracketed url references, ../packages/language/test/parsing.test.ts:parses from-import example line inside an attribute block value, ../packages/language/test/parsing.test.ts:parses valued attributes without a colon, ../packages/language/test/parsing.test.ts:treats mid-line @ as body text and line-start @ as attribute