Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bug(slp1_roman): Invalid virtual key sequences in stores #3314

Open
mcdurdin opened this issue Feb 3, 2025 · 1 comment
Open

bug(slp1_roman): Invalid virtual key sequences in stores #3314

mcdurdin opened this issue Feb 3, 2025 · 1 comment

Comments

@mcdurdin
Copy link
Member

mcdurdin commented Feb 3, 2025

This is not valid .kmn syntax. [...] is treated as a virtual key, so this will not be doing what you expect. In Keyman Developer 18, these are detected as invalid, because they are not valid key codes:

slp1_roman.kpj - info KM05002: Building release/s/slp1_roman/slp1_roman.kpj
slp1_roman.kmn - info KM05002: Building release/s/slp1_roman/source/slp1_roman.kmn
slp1_roman.kmn:76 - error KM0200A: Invalid token found
slp1_roman.kmn - info KM05007: release/s/slp1_roman/source/slp1_roman.kmn failed to build.
slp1_roman.kpj - info KM0500C: Project release/s/slp1_roman/slp1_roman.kpj failed to build.

Originally posted by @mcdurdin in #3298 (comment)

@LornaSIL
Copy link
Contributor

LornaSIL commented Feb 3, 2025

@Harshavardhan-Pandurangan Please note the issue above for the slp_roman` keyboard. When I approved your keyboard I only checked that your keyboard would build, and it did build in Keyman Developer 17.0 but I think Keyman Developer 18.0 is being more rigorous in checking.

So, these two store don't actually function as you are hoping:

store(vowels) U+0061 [U+0061 U+0304] U+0069 [U+0069 U+0304] U+0075 [U+0075 U+0304] [U+0072 U+0325] [U+0072 U+0325 U+0304] [U+006C U+0325] [U+006C U+0325 U+0304] U+0065 [U+0061 U+0069] U+006F [U+0061 U+0075]
store(consonants) U+006B [U+006B U+0068] U+0067 [U+0067 U+0068] U+0063 [U+0063 U+0068] U+006A [U+006A U+0068] [U+0074 U+0323] [U+0074 U+0323 U+0068] [U+0064 U+0323] [U+0064 U+0323 U+0068] U+0074 [U+0074 U+0068] U+0064 [U+0064 U+0068] U+0070 [U+0070 U+0068] U+0062 [U+0062 U+0068] U+0079 U+006C U+0076 U+0068

You would need to remove all the "grouped" ones like [U+0061 U+0304] because Keyman stores won't treat those as a unit. I can't see that removing those "grouped" ones would be detrimental to how your keyboard works, because you've written extensive rules below that seem to already produce the behavior you want.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants