Printable idea sheet
configuration_import_roots
reqlan rq/extension/host/configuration.rq:48
Katz 0.167
`importRoots` is an optional array of alias-to-directory mappings in `.reqlan/config.json`.
Each mapping has:
- `alias` ( required non-empty string ): prefix before `/` in aliased import paths.
- `root` ( optional non-empty string ): directory for that alias.
A relative `root` resolves against the base root ( the parent of `.reqlan` ), not against the `.reqlan` directory.
An absolute path or `file://` URI is used as that alias' import-root directory directly.
When `root` is omitted for a mapping, that alias uses the workspace folder that contains the `.rq` file.
When `importRoots` is omitted, empty, or has no valid entries, the default is one mapping with alias `importRootAlias` from defaults.json and no explicit root.
When several aliases could match a path, the longest alias wins.
Invalid or unreadable JSON, and a non-array `importRoots` value, fall back to defaults ( or no loaded config for discovery, then defaults at resolve time ).
Language path forms and `@/` shorthand: import_paths and configuration_import_root_alias.
Comment references in source files use the same mappings: comment_reference_import_root_alias.
Schema: configuration_schema_file. Applying file discovery: configuration_location.
Editor completion of aliased import paths: code_completion.
- implementation
- reqlan-path-resolve.ts, file-path-rewrite.ts, reqlan-completion-provider.ts, reqlan-path-completion.ts, reqlan-comment-diagnostics.ts, comment-reference-path-context.ts, register-comment-reference-links.ts, config.schema.json, path.rs, path_resolve.rs, broken.rs, sync.rs, analysis.rs, session.rs
- tests
- config.test.ts:empty object uses default alias mapping, config.test.ts:importRoots alias only overrides the alias, config.test.ts:relative root resolves against the base root, config.test.ts:absolute filesystem root is used directly, config.test.ts:Windows drive-letter root is used as a file URI not scheme c:, config.test.ts:file URI root is used directly, config.test.ts:multiple importRoots map aliases to different roots, config.test.ts:longest alias wins when mappings overlap, config.test.ts:empty string alias entries are skipped, config.test.ts:empty string root is ignored on a mapping, config.test.ts:invalid importRoots entries are skipped, config.test.ts:unknown properties are ignored while known keys still apply, config.test.ts:invalid JSON falls back to undefined load, config.test.ts:non-object JSON falls back to undefined load, config.test.ts:non-array importRoots falls back to undefined load, config.test.ts:empty importRoots array uses default alias mapping, config.test.ts:resolveRqConfig falls back to defaults when applying JSON is invalid, config.test.ts:aliased path uses relative root from applying config, config.test.ts:aliased path uses workspace folder when root is omitted, path-resolve.test.ts:loads importRoots list from nearest base config, path-resolve.test.ts:resolves using config importRoots mapping, path-resolve.test.ts:rewrite leaves aliased paths unchanged, path-resolve.test.ts:toDirectoryUri does not parse a drive letter as a URI scheme, completion.test.ts:completes import-root alias paths, comment-reference-resolution.test.ts:creates a document link for an import-root aliased comment reference, path_resolve.rs:locate_uses_import_roots_from_applying_config, broken_references.rs:check_honours_import_roots_from_applying_config, parity.rs:import_root_config_file_refs_match_check, path.rs:resolves_default_alias_against_workspace_folder, path_resolve.rs:missing_import_roots_uses_default_alias, path_resolve.rs:relative_root_resolves_against_base
Interactive page: configuration_import_roots