-
Notifications
You must be signed in to change notification settings - Fork 0
Compose Tool
ananeo-tool.exe is a separate build that links neither the keyboard hook nor the drawing library. It answers questions about the compose stock and generates the layout sheet, without a running AnaNeo.
It reads the same layouts.json, config.json and compose/ files as the program, always relative to its own directory, not to the working directory.
dub build --config=tool --build=plain
Use --build=plain. Two build types will waste your time otherwise:
- The default (
debug) switches the loader's full loading log on, written to stdout before the actual output. Useful when debugging the loader itself, useless when piping the result anywhere. -
--build=releaseis broken for this configuration and must not be used. It applies the Windows subsystem and entry point meant for the GUI executable, producing a program that outputs nothing at all and exits with code 0. Measurements taken with it look like empty results rather than like a failure.
--out <file> and --html <file> write to a file and are unaffected by the first point.
ananeo-tool sheet [layout] printable layout sheet
ananeo-tool compose <subcommand>
| Subcommand | Answers |
|---|---|
origin [module] |
which file contributed what, and which sequences lost to a later one |
namespace [prefix…] [--layout <name>] |
the continuations under a keysym prefix; with --layout, which layer each sits on |
coverage |
how much of each Unicode block the stock covers |
gaps <block…> |
which characters of a block are missing |
find <char|U+XXXX> |
which sequences produce a given character |
check <file.module> |
a candidate file against the existing stock, before adding it |
diff <selection-a> <selection-b> |
two module selections against each other |
layers [layout] |
layers against the compose stock |
spiegel --layout <name> [--schwelle N] [--alle] |
duplicates between layers and the tree |
report |
several sections in one report |
gen-schrift, gen-kreis
|
regenerate the computed modules |
Common switches: --modules a,b,c to override the module selection, --out <file>, --html <file>.
find – where does this character come from?
ananeo-tool compose find U+2460
Note the syntax: U+XXXX with the plus. Without it the argument is read as a literal string and the tool reports zero hits – which looks exactly like "not in the stock" and is not.
origin – what did each module bring, and what collided?
ananeo-tool compose origin
The first columns are counts per file: new, overwritten, dual-role, rejected, removed, unparsable. Then the individual sequences that lost to a later module.
Careful when comparing against the running program's debug log: the log adds new and overwritten into a single entries figure, while origin keeps them apart. For en_US that is 4238 against 4191 – the same load, two numbers. When recording a value for an acceptance test, always note which of the two it came from.
spiegel – did a layer assignment duplicate a compose sequence?
ananeo-tool compose spiegel --layout AnNoted
Classifies each duplication as Reihe (series), Muster (pattern) or Einzelfall (isolated case) and shows only the isolated ones by default – those are the candidates for deletion under the division of labour. --alle shows all of them, --schwelle N moves the threshold.
coverage and gaps – what is missing?
ananeo-tool compose coverage
ananeo-tool compose gaps "Mathematical Alphanumeric Symbols"
Both work against Unicode 17.0.0, pinned in data/. That directory is not part of a release package – the tool is a development aid, not something an installation needs. The Unicode data is deliberately not updated automatically: a version bump would shift the coverage figures without anything having changed about the compose stock.
The tool's column headings and classifications are German – Herkunft, ueberschr., Einzelfall. It was written for working on AnaNeo rather than for distribution, and it is not part of the release package.