Skip to content

D93 — Options screen with global, project and file scopes

Decision

The options screen is a coloured frame with a help panel, and options have scopes: global ($XDG_CONFIG_HOME/tracemaker/route.conf), project (tracemaker.conf in the board's folder) and the --config file, the higher over the lower. The scope bar shows where edits go (Tab moves it); each value shows its scope; a file holds only its own scope's values. route still reads a file only when --config names it

Alternatives

Letting route load the global and project files itself; one merged file; a prompt for the path on every save

Reason

A run that silently depends on a file in the user's home directory is not reproducible from its command line (rule 2), and a second route that finds a tracemaker.conf next to a board would route differently from the same command elsewhere. The screen reads the files to show and edit them and prints the explicit command. Per-scope layers make "reset" and "which file does this value come from" well defined, and saving one scope cannot copy another's values into it (doc 02 §2.1)