Fixes Vietnamese Telex input bugs #378
Draft
naoNao89 wants to merge 4 commits intoFossifyOrg:mainfrom
Draft
Conversation
- Created comprehensive test suite for Vietnamese Telex transformations - Added JUnit dependency to build.gradle.kts for testing support - Tests cover: basic transformations, case sensitivity, multi-char patterns, edge cases - 13 tests total: 10 passing, 3 failing (documenting known bugs) - Failing tests identify bugs in the transformation logic: * 'ow' → 'ơ' pattern not working * Case-insensitive 'W' handling broken * Multi-character 'ww' patterns need fixing - Tests will pass once transformation logic is corrected
- Remove unused applyRulesCaseInsensitive function - Add newline at end of file
- Change iteration from backwards to forward (longest-match-first) - Add case-insensitive matching for Telex rules - Add case preservation (Aw→Ă, aw→ă, Ow→Ơ, ow→ơ) - Add Vietnamese chars (ă, ư, ơ) to keyboard popups - Fix test helpers to use case-insensitive matching - Add missing 'ww→ư' rule to test suite - Add 4 new tests for case preservation verification
- Implement escape logic for double character sequences (ww → w) - Add escape detection before transformation in SimpleKeyboardIME.kt - Fix test assertion argument order for JUnit 4 compatibility All 19 Vietnamese Telex tests passing.
edf61bf to
7e01db8
Compare
Contributor
|
We have made an implementation for Telex and VNI input that might be useful here. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes: #138
Bugs fixed:
aw→aưinstead ofă(checkedw→ưbeforeaw→ă)ow→oưinstead ofơ(same issue)uw→uưinstead ofư(same issue)Aw→ăinstead ofĂ(no case preservation)w(missing escape sequences)Root cause was the loop checking shortest patterns first. Fixed by changing
word.indices.reversed()toword.indicesfor longest-match-first. Added case preservation, escape sequences (ww→w), and ă/ư/ơ to popups.and 19 tests added