Referenced by12
Labels28

Referencing ideas

IdeaStatusTagsSummaryKatz
import_does_not_exist_errorImports show an underline error when the target file or folder does not exist. Imports also show an underline error when a named imported idea does not exist in the target file. An existing folder is not an error: [import_folder_targets]. CI: ["../../../core_analysis/check.rq".check_unresolved_imports]. [general_errors]0.151
import_folder_targetsdoneAn import path may refer to a folder. A folder is a valid import target when that path exists as a directory. Namespace import of a folder binds the alias to that folder, the same as a file. Extensionless paths still prefer a `.rq` file: [implicit_file_extension]. Related: ["../../../language/imports.rq".import_paths], [import_does_not_exist_error], ["../syntax/features-syntax.rq".file_references].0.164
remote_importsReqlan 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.0.040
sensible_alias_supportif an imported idea shares a name with an idea in the current file: When the import uses an alias, the base name may be reused locally — see ["../../../language/imports.rq".import_tokenisation].0.047
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_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
import_tokenisationif 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/language/syntax/features-syntax.rq".sensible_alias_support].0.053
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_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
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 labels

"../../../../packages/language/test/validating.test.ts", "../../../../packages/language/test/validating.test.ts:allows local idea when import uses an alias", "../../../../packages/language/test/validating.test.ts:does not report an error when an import path is an existing folder", "../../../../packages/language/test/validating.test.ts:reports duplicate when local idea shares import alias", "../../../../packages/language/test/validating.test.ts:reports duplicate when local idea shares unaliased import binding", "../../../../packages/language/test/validating.test.ts:reports duplicate when local ideaset shares a local idea name", "../../packages/language/test/validating.test.ts:allows local idea when import uses an alias", "../../packages/language/test/validating.test.ts:allows local idea when qualified import uses an alias", "../../packages/language/test/validating.test.ts:does not report an extension error for a lone @", "../../packages/language/test/validating.test.ts:reports duplicate when local idea shares unaliased import binding", "../../packages/language/test/validating.test.ts:reports duplicate when local ideaset shares a local idea name", "../../packages/language/test/validating.test.ts:reports local diagnostic for from-as mistaken import", "../../packages/language/test/validating.test.ts:reports local diagnostic for unquoted from-import", "../../packages/language/test/validating.test.ts:warns on top-level nameless braces without invalidating later ideas", ../../../../packages/language/test/validating.test.ts, ../../../../packages/language/test/validating.test.ts:allows local idea when import uses an alias, ../../../../packages/language/test/validating.test.ts:does not report an error when an import path is an existing folder, ../../../../packages/language/test/validating.test.ts:reports duplicate when local idea shares import alias, ../../../../packages/language/test/validating.test.ts:reports duplicate when local idea shares unaliased import binding, ../../../../packages/language/test/validating.test.ts:reports duplicate when local ideaset shares a local idea name, ../../packages/language/test/validating.test.ts:allows local idea when import uses an alias, ../../packages/language/test/validating.test.ts:allows local idea when qualified import uses an alias, ../../packages/language/test/validating.test.ts:does not report an extension error for a lone @, ../../packages/language/test/validating.test.ts:reports duplicate when local idea shares unaliased import binding, ../../packages/language/test/validating.test.ts:reports duplicate when local ideaset shares a local idea name, ../../packages/language/test/validating.test.ts:reports local diagnostic for from-as mistaken import, ../../packages/language/test/validating.test.ts:reports local diagnostic for unquoted from-import, ../../packages/language/test/validating.test.ts:warns on top-level nameless braces without invalidating later ideas