keymanapp / keyman

Keyman cross platform input methods system running on Android, iOS, Linux, macOS, Windows and mobile and desktop web
https://keyman.com/
Other
395 stars 111 forks source link

feat(developer): Checks when adding layer name on "Code" panel #7850

Open dyacob opened 1 year ago

dyacob commented 1 year ago

Is your feature request related to a problem? Please describe.

In Keyman Developer, in the Touch layout interface, the Add layer feature does not permit non-Roman letters in the layer name, when letters of other scripts are used the following error message appears (see also the attached screenshot):

Layer name must contain only alphanumerics, underscore, and hyphen.

However, the user can add a temporary name, switch to the "Code" panel, and replace the temporary name with the desired non-Roman name without issue.

Non-Latin-Layer-Name Developer

Describe the solution you'd like

The JSON spec does not have the alphanumeric limitation for attribute values. I would like the feature to check validity against a JSON API, and report an error to the user as applicable.

Describe alternatives you've considered

No response

Related issues

No response

Keyman apps

Keyman version

15.0.273

Operating system

Windows 11

Device

Windows Laptop

Target application

N/A

Browser

N/A

Keyboard name

N/A

Keyboard version

N/A

Language name

N/A

Additional context

No response

mcdurdin commented 1 year ago

Technically, you've discovered a workaround for a restriction that we put in place for some reason, which I cannot currently recall. Layer names are used in places other than the JSON source, such as in the layer() statement in .kmn files, which would preclude some characters.

I think it is likely that we made the allowable character set overly restrictive. Will consider relaxing that where we can for a future update.