- *decimal integer:* 1, 123, etc.
- *decimal floating-point number:* 1.23, etc.
- *hexadecimal integer:* prefixed with “0x”: 0x123, 0xff, 0xAB, etc.
+- id: "conflicting-key-type-preserve-entries"
+ code: 43
+ added: ALWAYS
+ type: warning
+ description: "Conflicting “preserve” entries in a key type"
- id: "unsupported-modifier-mask"
code: 60
added: ALWAYS
type: error
description: "Warn on unsupported modifier mask"
+- id: "expected-array-entry"
+ code: 77
+ added: ALWAYS
+ type: error
+ description: "Expected an array entry, but the index is missing"
+- id: "illegal-keycode-alias"
+ code: 101
+ added: ALWAYS
+ type: warning
+ description: "Illegal keycode alias with the name of a real key"
- id: "unrecognized-keysym"
code: 107
added: ALWAYS
```c
key <AB08> {[ comma, semicolon, periodcentered, multiply ]};
```
+- id: "undeclared-virtual-modifier"
+ code: 123
+ added: ALWAYS
+ type: error
+ description: "A virtual modifier is used before being declared"
+- id: "wrong-statement-type"
+ code: 150
+ added: ALWAYS
+ type: error
+ description: "The type of the statement is not allowed in the context"
+- id: "unsupported-geometry-section"
+ code: 172
+ added: ALWAYS
+ type: warning
+ description: "Geometry sections are not supported"
- id: "cannot-infer-key-type"
code: 183
added: ALWAYS
type: warning
description: "Warn if no key type can be inferred"
+- id: "invalid-escape-sequence"
+ code: 193
+ added: ALWAYS
+ type: warning
+ description: "Invalid escape sequence in a string"
+- id: "illegal-key-type-preserve-result"
+ code: 195
+ added: ALWAYS
+ type: warning
+ description: "The result of a key type “preserve” entry must be a subset of its input modifiers."
+- id: "invalid-include-statement"
+ code: 203
+ added: ALWAYS
+ type: error
+ description: "Syntax error in the include statement"
+- id: "invalid-modmap-entry"
+ code: 206
+ added: ALWAYS
+ type: error
+ description: "A modmap entry is invalid"
- id: "unsupported-group-index"
code: 237
added: ALWAYS
description: "Warn when a group index is not supported"
details: |
xkbcommon supports group index in the range (1..{{XKB_MAX_GROUPS}}).
+- id: "conflicting-key-type-level-names"
+ code: 239
+ added: ALWAYS
+ type: warning
+ description: "The name of a key type level is defined multiple times."
+- id: "invalid-set-default-statement"
+ code: 254
+ added: ALWAYS
+ type: error
+ description: "Invalid statement setting default values"
+- id: "conflicting-key-type-map-entry"
+ code: 266
+ added: ALWAYS
+ type: warning
+ description: "Conflicting “map” entries in type definition"
- id: "undefined-key-type"
code: 286
added: ALWAYS
details: |
Shift levels are _one_-indexed. xkbcommon supports two formats of shift levels:
as numbers and as identifiers `LevelN`, where `N` is in the range (1..8).
+- id: "included-file-not-found"
+ code: 338
+ added: ALWAYS
+ type: error
+ description: "Could not find a file used in an include statement"
+- id: "unknown-operator"
+ code: 345
+ added: ALWAYS
+ type: error
+ description: "Use of an operator that is unknown and thus unsupported"
+- id: "duplicate-entry"
+ code: 378
+ added: ALWAYS
+ type: warning
+ description: "An entry is duplicated and will be ignored"
+- id: "conflicting-key-type-definitions"
+ code: 407
+ added: ALWAYS
+ type: warning
+ description: "Conflicting definitions of a key type"
+ details: |
+ The given key type is defined multiple times, but only one definition is kept.
+- id: "wrong-scope"
+ code: 428
+ added: ALWAYS
+ type: error
+ description: "A statement is in a wrong scope and should be moved"
+- id: "missing-default-section"
+ code: 433
+ added: ALWAYS
+ type: warning
+ description: "Missing default section in included file"
+ details: |
+ When using an include statement, the included file may contains multiple sections.
+ The include statement may specify the name of the section to include, or leave it
+ unspecified. In the latter case, the included file must then define a *default* section.
+ The present warning is shown when no default section is defined.
+
+ To solve this, either fix the include statement by specifying the exact section to
+ include, or declare a default section in the included file.
- id: "conflicting-key-symbol"
code: 461
added: ALWAYS
type: warning
description: "Warn if there are conflicting keysyms while merging keys"
+- id: "invalid-operation"
+ code: 478
+ added: ALWAYS
+ type: error
+ description: "The operation is invalid in the context"
- id: "numeric-keysym"
code: 489
added: 1.6.0
added: ALWAYS
type: warning
description: "TODO: add description"
+- id: "conflicting-key-name"
+ code: 523
+ added: ALWAYS
+ type: warning
+ description: "Conflicting definitions of a key name or alias"
+- id: "allocation-error"
+ code: 550
+ added: ALWAYS
+ type: error
+ description: "Cannot allocate memory"
- id: "wrong-field-type"
code: 578
added: ALWAYS
type: error
description: "Warn when a field has not the expected type"
+- id: "invalid-real-modifier"
+ code: 623
+ added: ALWAYS
+ type: error
+ description: "Invalid _real_ modifier"
- id: "unknown-char-escape-sequence"
code: 645
added: ALWAYS
| `\e` | `U+001B` Escape |
| `\\` | `U+005C` Backslash |
| `\NNN` | _Octal_ escape, from `\0` to `\777` |
+- id: "invalid-included-file"
+ code: 661
+ added: ALWAYS
+ type: error
+ description: "The target file of an include statement could not be processed"
- id: "multiple-groups-at-once"
code: 700
added: ALWAYS
type: warning
description: "Warn if a key defines multiple groups at once"
+- id: "unsupported-symbols-field"
+ code: 711
+ added: ALWAYS
+ type: warning
+ description: "A legacy X11 symbol field is not supported"
- id: "invalid-syntax"
code: 769
added: ALWAYS
code: 770
added: ALWAYS
type: warning
- description: "TODO: add description"
+ description: "Reference to an undefined keycode"
+- id: "invalid-expression-type"
+ code: 784
+ added: ALWAYS
+ type: error
+ description: "An expression has not the expected type"
+- id: "invalid-value"
+ code: 796
+ added: ALWAYS
+ type: error
+ description: "A value is invalid and will be ignored"
- id: "conflicting-modmap"
code: 800
added: ALWAYS
description: "Warn if there are conflicting modmap definitions"
details: |
@todo detailed explanation and examples
+- id: "unknown-field"
+ code: 812
+ added: ALWAYS
+ type: error
+ description: "A field is unknown and will be ignored"
- id: "conflicting-key-action"
code: 883
added: ALWAYS
type: warning
description: "Warn if there are conflicting actions while merging keys"
-- id: "conflicting-key-type"
+- id: "conflicting-key-type-merging-groups"
code: 893
added: ALWAYS
type: warning
description: "Warn if there are conflicting key types while merging groups"
+- id: "conflicting-key-symbols-entry"
+ code: 901
+ added: ALWAYS
+ type: error
+ description: "Conflicting symbols entry for a key"
+- id: "missing-symbols-group-name-index"
+ code: 903
+ added: ALWAYS
+ type: warning
+ description: "Missing group index in a group name entry"
- id: "conflicting-key-fields"
code: 935
added: ALWAYS
type: warning
description: "Warn if there are conflicting fields while merging keys"
+- id: "invalid-identifier"
+ code: 949
+ added: ALWAYS
+ type: error
+ description: "An identifier is used but is not built-in"
- id: "unresolved-keymap-symbol"
code: 965
added: ALWAYS
type: warning
description: "Warn if using a symbol not defined in the keymap"
+- id: "undeclared-modifiers-in-key-type"
+ code: 971
+ added: ALWAYS
+ type: warning
+ description: "Some modifiers used in a key type “map” or “preserve” entry are not declared"
+ details: |
+ The modifiers used in `map` or `preserve` entries should be declared using the entry
+ `modifiers` in the key type.
# TODO: deprecated keysym
# TODO: unicode keysym when named and recommended keysym exists