Referenced by 9
Labels 2

Referencing ideas

IdeaStatusTagsSummary
import_does_not_exist_error Imports show an underline error when the target file does not exist. Imports also show an underline error when a named imported idea does not exist in the target file. [general_errors]
remote_imports Reqlan files should support importing requirements from remote urls. Remote import syntax should follow import " https: / / company. com / reqs / style. rq " as styleguide. The extension should resolve, cache, and validate remote imports. Barrel imports should be recommended for token efficiency when many symbols are needed from one remote file.
file_references A file reference should act as a link in the editor. If the target file is empty or has a parse error, the link should remain available and clickable, but should show a warning underline. Implemented by ["../../../packages/language/src/reqlan-file-link-resolver.ts"], ["../../../packages/language/src/reqlan-document-link-provider.ts"], ["../../../packages/language/src/reqlan-definition-provider.ts"], and ["../../../packages/language/src/reqlan-validator.ts"].
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. Autoformatting should be supported for. rq files.
import_error_recovery A 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].
import_keywords The 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.
import_tokenisation if an import is given an alias, then the base name is still available as a variable name and should not cause a conflict. Only the alias binds in the importing file; the imported idea's base name may be reused for a local idea. e. g. The same rule applies to qualified imports with `as`. Unaliased imports still bind the idea name and conflict with a local idea of that name. Related: ["../extension/syntax/features-syntax.rq".sensible_alias_support].
file_suffix Reqlan requirement documents use the . rq file suffix .
no_name_idea_safe_warning done A 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].

Reference labels

../../../packages/language/src/reqlan-validator.ts, ../../packages/language/src/reqlan-validator.ts