Documentation
¶
Overview ¶
Package logicalnames centralizes conversion between logical names and file paths, as well as parent derivation for the Code from Spec spec tree.
Spec ref: ROOT/tech_design/internal/logical_names § "Intent"
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func HasParent ¶
HasParent determines whether a logical name has a parent node. Returns (hasParent, ok) where ok indicates whether the input is a valid logical name.
Spec ref: ROOT/tech_design/internal/logical_names § "HasParent"
Rules:
- ROOT → (false, true) — no parent
- ROOT/<path> → (true, true) — has parent
- TEST → (true, true) — parent is ROOT
- TEST/<path> → (true, true) — parent is ROOT/<path>
- TEST/<path>(<name>) → (true, true) — parent is ROOT/<path>
- EXTERNAL/<name> → (false, true) — no parent
- EXTERNAL (bare) → (false, false) — invalid
- "" or anything else → (false, false) — invalid
func ParentLogicalName ¶
ParentLogicalName derives the parent's logical name from a node's logical name. Returns (parent, true) on success, or ("", false) if the node has no parent. Only call after confirming HasParent returns true.
Spec ref: ROOT/tech_design/internal/logical_names § "ParentLogicalName"
Rules:
- ROOT/<path> → strip last segment; if one segment remains, parent is ROOT
- TEST → ROOT
- TEST/<path> → ROOT/<path>
- TEST/<path>(<name>) → ROOT/<path>
func PathFromLogicalName ¶
PathFromLogicalName resolves a logical name to a file path relative to the project root. Returns (path, true) on success or ("", false) if the input does not match any known pattern.
Spec ref: ROOT/tech_design/internal/logical_names § "PathFromLogicalName"
Resolution rules:
- ROOT → code-from-spec/spec/_node.md
- ROOT/<path> → code-from-spec/spec/<path>/_node.md
- TEST → code-from-spec/spec/default.test.md
- TEST/<path> → code-from-spec/spec/<path>/default.test.md
- TEST/<path>(<name>) → code-from-spec/spec/<path>/<name>.test.md
- EXTERNAL/<name> → code-from-spec/external/<name>/_external.md
Types ¶
This section is empty.