reqlanOverviewIdeasFilesCode filesClustersAttributesGraphPrint
Ideas/configuration_location

Idea detail

configuration_location

reqlan rq/extension/configuration.rq:3

block

Summary

An optional `.reqlan/config.json` may appear under a base's `.reqlan` directory.
For a given `.rq` file, the applying base is the nearest ancestor directory that owns a `.reqlan` folder.
The applying config is that base's `.reqlan/config.json` when present.
If the owning base has no `config.json`, or no owning base is found, defaults from configuration_import_roots apply.
A child base does not inherit a parent base's config.
Implemented by reqlan-path-resolve.ts.

Jump to outbound references

Jump to inbound references

Navigation

Source file

reqlan rq/extension/configuration.rq

community 10

community cluster

configuration.rq

file cluster

reqlan rq/extension

folder cluster

status: Not present

status cluster

tag: Not present

tag cluster

Printable page

Static print-friendly idea sheet.

Attributes

KeyValue
tests config.test.ts:returns undefined when no config exists, config.test.ts:loads config from the owning base .reqlan, config.test.ts:loads config from an ancestor base, config.test.ts:nearest base config wins over farther ones, config.test.ts:owning base without config does not inherit parent, config.test.ts:resolveRqConfig uses defaults when no applying file exists, path-resolve.test.ts:loads importRoots list from nearest base config

Browse all attributes

Ancestor context

configuration_import_roots

`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 `@` 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: ["../language/imports.rq".import_paths] and ["../language/imports.rq".configuration_import_root_alias]. Schema: [configuration_schema_file]. Applying file discovery: [configuration_location]. Editor completion of aliased import paths: ["./syntax/features-syntax.rq".code_completion].

configuration_schema_file

The machine-readable JSON Schema for `.reqlan/config.json` is ["../../packages/extension/schemas/config.schema.json"]. The extension contributes that schema for `**/.reqlan/config.json` via `jsonValidation` in ["../../packages/extension/package.json"]. `.reqlan/config.json` is a JSON object. Unknown properties are not part of the schema and are ignored when loading.

Outbound references

KindIdeaPathSnippet
file_reference ../../packages/analytical/src/core/application-memory.ts packages/analytical/src/core/application-memory.ts —
file_reference ../../packages/analytical/src/core/base-discovery.ts packages/analytical/src/core/base-discovery.ts —
file_reference ../../packages/analytical/src/core/create-base.ts packages/analytical/src/core/create-base.ts —
file_reference ../../packages/analytical/src/core/rqignore.ts packages/analytical/src/core/rqignore.ts —
file_reference ../../packages/analytical/src/index-store/workspace-index.ts packages/analytical/src/index-store/workspace-index.ts —
file_reference ../../packages/analytical/test/base-discovery.test.ts:skips node_modules and does not treat .reqlan as a walkable base root packages/analytical/test/base-discovery.test.ts:skips node_modules and does not treat .reqlan as a walkable base root —
file_reference ../../packages/analytical/test/create-base.test.ts:seeds .reqlan/.rqignore when creating a new base packages/analytical/test/create-base.test.ts:seeds .reqlan/.rqignore when creating a new base —
file_reference ../../packages/analytical/test/rqignore.test.ts packages/analytical/test/rqignore.test.ts —
file_reference ../../packages/analytical/test/workspace-index.test.ts:skips .rq files under rqignore patterns packages/analytical/test/workspace-index.test.ts:skips .rq files under rqignore patterns —
file_reference ../../packages/extension/package.json packages/extension/package.json —
file_reference ../../packages/extension/schemas/config.schema.json packages/extension/schemas/config.schema.json —
file_reference ../../packages/language/src/file-path-rewrite.ts packages/language/src/file-path-rewrite.ts —
file_reference ../../packages/language/src/reqlan-completion-provider.ts packages/language/src/reqlan-completion-provider.ts —
file_reference ../../packages/language/src/reqlan-path-completion.ts packages/language/src/reqlan-path-completion.ts —
file_reference ../../packages/language/src/reqlan-path-resolve.ts packages/language/src/reqlan-path-resolve.ts reqlan-path-resolve.ts
file_reference ../../packages/language/test/completion.test.ts:completes import-root alias paths packages/language/test/completion.test.ts:completes import-root alias paths —
file_reference ../../packages/language/test/config.test.ts:absolute filesystem root is used directly packages/language/test/config.test.ts:absolute filesystem root is used directly —
file_reference ../../packages/language/test/config.test.ts:aliased path uses relative root from applying config packages/language/test/config.test.ts:aliased path uses relative root from applying config —
file_reference ../../packages/language/test/config.test.ts:aliased path uses workspace folder when root is omitted packages/language/test/config.test.ts:aliased path uses workspace folder when root is omitted —
file_reference ../../packages/language/test/config.test.ts:empty importRoots array uses default alias mapping packages/language/test/config.test.ts:empty importRoots array uses default alias mapping —
file_reference ../../packages/language/test/config.test.ts:empty object uses default alias mapping packages/language/test/config.test.ts:empty object uses default alias mapping —
file_reference ../../packages/language/test/config.test.ts:empty string alias entries are skipped packages/language/test/config.test.ts:empty string alias entries are skipped —
file_reference ../../packages/language/test/config.test.ts:empty string root is ignored on a mapping packages/language/test/config.test.ts:empty string root is ignored on a mapping —
file_reference ../../packages/language/test/config.test.ts:file URI root is used directly packages/language/test/config.test.ts:file URI root is used directly —
file_reference ../../packages/language/test/config.test.ts:importRoots alias only overrides the alias packages/language/test/config.test.ts:importRoots alias only overrides the alias —
file_reference ../../packages/language/test/config.test.ts:invalid JSON falls back to undefined load packages/language/test/config.test.ts:invalid JSON falls back to undefined load —
file_reference ../../packages/language/test/config.test.ts:invalid importRoots entries are skipped packages/language/test/config.test.ts:invalid importRoots entries are skipped —
file_reference ../../packages/language/test/config.test.ts:loads config from an ancestor base packages/language/test/config.test.ts:loads config from an ancestor base config.test.ts:loads config from an ancestor base
file_reference ../../packages/language/test/config.test.ts:loads config from the owning base .reqlan packages/language/test/config.test.ts:loads config from the owning base .reqlan config.test.ts:loads config from the owning base .reqlan
file_reference ../../packages/language/test/config.test.ts:longest alias wins when mappings overlap packages/language/test/config.test.ts:longest alias wins when mappings overlap —
file_reference ../../packages/language/test/config.test.ts:multiple importRoots map aliases to different roots packages/language/test/config.test.ts:multiple importRoots map aliases to different roots —
file_reference ../../packages/language/test/config.test.ts:nearest base config wins over farther ones packages/language/test/config.test.ts:nearest base config wins over farther ones config.test.ts:nearest base config wins over farther ones
file_reference ../../packages/language/test/config.test.ts:non-array importRoots falls back to undefined load packages/language/test/config.test.ts:non-array importRoots falls back to undefined load —
file_reference ../../packages/language/test/config.test.ts:non-object JSON falls back to undefined load packages/language/test/config.test.ts:non-object JSON falls back to undefined load —
file_reference ../../packages/language/test/config.test.ts:owning base without config does not inherit parent packages/language/test/config.test.ts:owning base without config does not inherit parent config.test.ts:owning base without config does not inherit parent
file_reference ../../packages/language/test/config.test.ts:relative root resolves against the base root packages/language/test/config.test.ts:relative root resolves against the base root —
file_reference ../../packages/language/test/config.test.ts:resolveRqConfig falls back to defaults when applying JSON is invalid packages/language/test/config.test.ts:resolveRqConfig falls back to defaults when applying JSON is invalid —
file_reference ../../packages/language/test/config.test.ts:resolveRqConfig uses defaults when no applying file exists packages/language/test/config.test.ts:resolveRqConfig uses defaults when no applying file exists config.test.ts:resolveRqConfig uses defaults when no applying file exists
file_reference ../../packages/language/test/config.test.ts:returns undefined when no config exists packages/language/test/config.test.ts:returns undefined when no config exists config.test.ts:returns undefined when no config exists
file_reference ../../packages/language/test/config.test.ts:schema file documents importRoots mappings packages/language/test/config.test.ts:schema file documents importRoots mappings —
file_reference ../../packages/language/test/config.test.ts:unknown properties are ignored while known keys still apply packages/language/test/config.test.ts:unknown properties are ignored while known keys still apply —
file_reference ../../packages/language/test/path-resolve.test.ts:loads importRoots list from nearest base config packages/language/test/path-resolve.test.ts:loads importRoots list from nearest base config path-resolve.test.ts:loads importRoots list from nearest base config
file_reference ../../packages/language/test/path-resolve.test.ts:resolves using config importRoots mapping packages/language/test/path-resolve.test.ts:resolves using config importRoots mapping —
file_reference ../../packages/language/test/path-resolve.test.ts:rewrite leaves aliased paths unchanged packages/language/test/path-resolve.test.ts:rewrite leaves aliased paths unchanged —
file_reference @/bases/base.rq reqlan rq/extension/@/bases/base.rq —
references configuration_import_roots reqlan rq/extension/configuration.rq configuration_import_roots

Inbound references

KindIdeaPathSnippet
references configuration_import_roots reqlan rq/extension/configuration.rq configuration_location
references configuration_rqignore reqlan rq/extension/configuration.rq configuration_location

Unresolved references

KindIdeaPathSnippet
None

Local graph

Initialising graph…