2 # • A message code must always have the same meaning forever.
3 # • Codes may be retired or introduced in new releases. In order to avoid
4 # clashes, retired codes must not be deleted.
5 # • Codes should not themselves reflect classification, e.g. a range for parse
6 # errors and a range for each keymap component.
7 # • Codes should not be assigned sequentially because it is misleading.
8 # • Codes must be in the range 1..999. This range may be extended once every
9 # code has be assigned.
11 # See the following guidelines for futher details on good practices:
12 # https://github.com/haskellfoundation/error-message-index/blob/main/tool-developers.md#code-assignment-recommendations
14 # NOTE: Field “added: ALWAYS” means that the precise version is unknown and
15 # anterior to the introduction of the message registry. It will be replaced by
16 # the default version 1.0.0 in the generated documentation. While this is deemed
17 # good enough to avoid spelunking commit history, a more precise version would
20 # TODO: fix missing detailed description, examples, resolution
22 - id: "malformed-number-literal"
26 description: "Warn on malformed number literals"
28 xkbcommon can parse the following number literal formats:
30 - *decimal integer:* 1, 123, etc.
31 - *decimal floating-point number:* 1.23, etc.
32 - *hexadecimal integer:* prefixed with “0x”: 0x123, 0xff, 0xAB, etc.
33 - id: "unsupported-modifier-mask"
37 description: "Warn on unsupported modifier mask"
38 - id: "unrecognized-keysym"
42 description: "Warn on unrecognized keysyms"
44 xkbcommon replaces keysyms it does not recognize by the keysym `NoSymbol`.
46 You may find the list of supported keysyms in
47 `include/xkbcommon/xkbcommon-keysyms.h`.
49 - name: Unrecognized keysym “`coma`”
54 xkbcommon: WARNING: [XKB-107] de:31:20: unrecognized keysym "coma"
57 xkbcommon does not recognize the keysym “`coma`”. It is most probably
58 a typo for “<code>com<em>m</em>a</code>”.
59 See: `XKB_KEY_comma` in `include/xkbcommon/xkbcommon-keysyms.h`.
62 key <AB08> {[ coma, semicolon, periodcentered, multiply ]};
66 key <AB08> {[ comma, semicolon, periodcentered, multiply ]};
68 - id: "cannot-infer-key-type"
72 description: "Warn if no key type can be inferred"
73 - id: "unsupported-group-index"
77 description: "Warn when a group index is not supported"
79 xkbcommon supports group index in the range (1..{{XKB_MAX_GROUPS}}).
80 - id: "undefined-key-type"
84 description: "Warn if using an undefined key type"
85 - id: "non-base-group-name"
89 description: "Warn if a group name was defined for group other than the first one"
90 - id: "unsupported-shift-level"
94 description: "Warn when a shift level is not supported"
96 Shift levels are _one_-indexed. xkbcommon supports two formats of shift levels:
97 as numbers and as identifiers `LevelN`, where `N` is in the range (1..8).
98 - id: "conflicting-key-symbol"
102 description: "Warn if there are conflicting keysyms while merging keys"
103 - id: "numeric-keysym"
107 description: "Warn on numeric keysym (other than 0-9)"
109 Numeric keysyms are not human-friendly. Use the corresponding named keysym
110 or Unicode keysym, if available.
112 - name: Hexadecimal keysym `0x1001ed0`
117 xkbcommon: WARNING: [XKB-489] numeric keysym "0x1001ed0"
121 key <AE01> { [ 0x1001ed0] };
125 // Preferred form: human-friendly
126 key <AE01> { [ Ocircumflexacute ] };
128 key <AE01> { [ U1ED0 ] };
130 - id: "extra-symbols-ignored"
134 description: "TODO: add description"
135 - id: "wrong-field-type"
139 description: "Warn when a field has not the expected type"
140 - id: "unknown-char-escape-sequence"
144 description: "Warn on unknown escape sequence in string literal"
146 xkbcommon support the following escape sequences in string literals:
148 | Escape sequence | Corresponding character |
149 | --------------- | ----------------------------------- |
150 | `\b` | `U+0008` Backspace |
151 | `\t` | `U+0009` Character tabulation |
152 | `\n` | `U+000A` Line feed |
153 | `\v` | `U+000B` Vertical tabulation |
154 | `\f` | `U+000C` Form feed |
155 | `\r` | `U+000D` Carriage return |
156 | `\e` | `U+001B` Escape |
157 | `\\` | `U+005C` Backslash |
158 | `\NNN` | _Octal_ escape, from `\0` to `\777` |
159 - id: "multiple-groups-at-once"
163 description: "Warn if a key defines multiple groups at once"
164 - id: "invalid-syntax"
168 description: "The syntax is invalid and the file cannot be parsed"
169 - id: "undefined-keycode"
173 description: "TODO: add description"
174 - id: "conflicting-modmap"
178 description: "Warn if there are conflicting modmap definitions"
180 @todo detailed explanation and examples
181 - id: "conflicting-key-action"
185 description: "Warn if there are conflicting actions while merging keys"
186 - id: "conflicting-key-type"
190 description: "Warn if there are conflicting key types while merging groups"
191 - id: "conflicting-key-fields"
195 description: "Warn if there are conflicting fields while merging keys"
196 - id: "unresolved-keymap-symbol"
200 description: "Warn if using a symbol not defined in the keymap"
202 # TODO: deprecated keysym
203 # TODO: unicode keysym when named and recommended keysym exists