You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Is your feature request related to a problem? Please describe.
I was moving a longpress key and cut (rather than copied) the id field from the existing location to the new longpress key, then neglected to delete the old longpress key. When I tried compiling I got:
manga_ajami.kmn - info KM05002: Building manga_ajami.kmn
manga_ajami.kmn - warn KM02099: A key on layer "default" has no identifier.
manga_ajami.kmn - info KM05010: The build failed because option "treat warnings as errors" is enabled and there are one or more warnings.
manga_ajami.kmn - info KM05007: manga_ajami.kmn failed to build.
I switched to "Code" view to see if I could identify the problem. When I tried to switch back to "Design" view I got: manga_ajami.keyman-touch-layout - error KM04000: Exception ETouchLayoutValidate reading JSON data: Validation failure: Member id is required
I eventually found the problem by deleting information from the .keyman-touch-layout file until Developer would load the file.
Describe the solution you'd like
It'd be super nice if that warning could tell me what row number had the problem and even count the key items on the row!
Could the IDE give some visual indication (red border or background on the ID field, perhaps?) when the ID is missing or invalid? That might be annoying in practice, though.
Comment from @mcdurdin:
Unfortunately, the JSON parser and validator doesn't give us much detail (an XPath would be nice!)
Describe alternatives you've considered
Manual search through the .keyman-touch-layout file. (But I didn't find it when I tried this and had to resort to deleting layers, rows and keys until Developer loaded the file.)
If the JSON were always written out with the "id" first, followed by the "text", it might have been easier to spot. I know it's a dictionary/map and order doesn't matter, but a consistent order of keys does make a visual comparison easier.
Related issues
No response
Keyman apps
Keyman for Android
Keyman for iPhone and iPad
Keyman for Linux
Keyman for macOS
Keyman for Windows
Keyman Developer
KeymanWeb
Other - give details at bottom of form
Keyman version
17.0.330
Operating system
Windows 11
Device
No response
Target application
No response
Browser
No response
Keyboard name
No response
Keyboard version
No response
Language name
No response
Additional context
No response
The text was updated successfully, but these errors were encountered:
…t compiler
All messages that reference keys in the touch layout will now give the
row+column index of the key with the issue (and longpress/flick/multitap
index as well if relevant).
Fixes: #12505
Is your feature request related to a problem? Please describe.
I was moving a longpress key and cut (rather than copied) the id field from the existing location to the new longpress key, then neglected to delete the old longpress key. When I tried compiling I got:
I switched to "Code" view to see if I could identify the problem. When I tried to switch back to "Design" view I got:
manga_ajami.keyman-touch-layout - error KM04000: Exception ETouchLayoutValidate reading JSON data: Validation failure: Member id is required
I eventually found the problem by deleting information from the .keyman-touch-layout file until Developer would load the file.
Describe the solution you'd like
It'd be super nice if that warning could tell me what row number had the problem and even count the key items on the row!
Could the IDE give some visual indication (red border or background on the ID field, perhaps?) when the ID is missing or invalid? That might be annoying in practice, though.
Comment from @mcdurdin:
Unfortunately, the JSON parser and validator doesn't give us much detail (an XPath would be nice!)
Describe alternatives you've considered
Manual search through the .keyman-touch-layout file. (But I didn't find it when I tried this and had to resort to deleting layers, rows and keys until Developer loaded the file.)
If the JSON were always written out with the "id" first, followed by the "text", it might have been easier to spot. I know it's a dictionary/map and order doesn't matter, but a consistent order of keys does make a visual comparison easier.
Related issues
No response
Keyman apps
Keyman version
17.0.330
Operating system
Windows 11
Device
No response
Target application
No response
Browser
No response
Keyboard name
No response
Keyboard version
No response
Language name
No response
Additional context
No response
The text was updated successfully, but these errors were encountered: