diff options
| author | Jules Aguillon | 2025-12-13 15:58:34 +0100 |
|---|---|---|
| committer | GitHub | 2025-12-13 15:58:34 +0100 |
| commit | 08ebf8fabc860fb66d586aade838483dda86b5b0 (patch) | |
| tree | 1b13c55dded53ca8f2515ff58779f442d876bf54 /srcs/juloo.keyboard2/KeyValue.java | |
| parent | 0ad03c6dea515f577c195304a24fac65bae5d272 (diff) | |
| download | unexpected-keyboard-08ebf8fabc860fb66d586aade838483dda86b5b0.tar.gz unexpected-keyboard-08ebf8fabc860fb66d586aade838483dda86b5b0.zip | |
Fix parsing of escaped characters in macros (#1126)
* refactor: Better printing for KeyValue in tests
* Fix parsing of escaped characters in macros
The parsing code was bugged with custom macros like `symbol:\abc` and
`symbol:\\abc`.
Diffstat (limited to 'srcs/juloo.keyboard2/KeyValue.java')
| -rw-r--r-- | srcs/juloo.keyboard2/KeyValue.java | 33 |
1 files changed, 29 insertions, 4 deletions
diff --git a/srcs/juloo.keyboard2/KeyValue.java b/srcs/juloo.keyboard2/KeyValue.java index df0ef9d..d0c1fc7 100644 --- a/srcs/juloo.keyboard2/KeyValue.java +++ b/srcs/juloo.keyboard2/KeyValue.java @@ -312,8 +312,11 @@ public final class KeyValue implements Comparable<KeyValue> public String toString() { - int value = _code & VALUE_BITS; - return "[KeyValue " + getKind().toString() + "+" + getFlags() + "+" + value + " \"" + getString() + "\"]"; + StringBuilder b = new StringBuilder() + .append(getKind().name()).append(":").append(getString()); + if (_payload instanceof Describe) + b.append(":").append(((Describe)_payload).describe()); + return b.toString(); } private KeyValue(Comparable p, int kind, int value, int flags) @@ -817,7 +820,14 @@ public final class KeyValue implements Comparable<KeyValue> throw new RuntimeException("Assertion failure"); } - public static enum Slider + public static interface Describe + { + /** Describe the payload content, without the symbol. + Used for printing in tests. */ + public String describe(); + } + + public static enum Slider implements Describe { Cursor_left(0xE008), Cursor_right(0xE006), @@ -835,9 +845,12 @@ public final class KeyValue implements Comparable<KeyValue> @Override public String toString() { return symbol; } + + @Override + public String describe() { return name(); } }; - public static final class Macro implements Comparable<Macro> + public static final class Macro implements Comparable<Macro>, Describe { public final KeyValue[] keys; private final String _symbol; @@ -848,9 +861,21 @@ public final class KeyValue implements Comparable<KeyValue> _symbol = sym_; } + @Override public String toString() { return _symbol; } @Override + public String describe() + { + StringBuilder b = new StringBuilder(); + if (keys.length > 0) + b.append(keys[0].toString()); + for (int i = 1; i < keys.length; i++) + b.append(",").append(keys[i].toString()); + return b.toString(); + } + + @Override public int compareTo(Macro snd) { int d = keys.length - snd.keys.length; |
