|
22 | 22 | - Added try-catch protection in `clearExpiredAndGetHistory()` |
23 | 23 | - Entries truncated for display only; full content preserved for paste |
24 | 24 |
|
25 | | -### Issue #72: Auto-Capitalize "I" Words |
| 25 | +### Issue #72: Auto-Capitalize "I" Words + Proper Noun Support |
26 | 26 | - ✅ Implemented: Automatically capitalize "I" and contractions (a16a95f5) |
27 | 27 | - **Feature**: Auto-capitalizes "i", "i'm", "i'll", "i'd", "i've" when typing or swiping |
28 | 28 | - **Implementation**: |
29 | 29 | - Added `AUTOCAPITALIZE_I_WORDS` default and `autocapitalize_i_words` setting |
30 | 30 | - Added `capitalizeIWord()` helper in SuggestionHandler |
31 | 31 | - Applied in: prediction transforms, suggestion selection, word completion |
32 | 32 | - **Works independently**: Capitalizes even if autocorrect is disabled |
| 33 | +- ✅ Fixed: Autocorrect now preserves capitalization (29dd10e6) |
| 34 | + - "Teh" → "The" (not "the"), "TEH" → "THE" |
| 35 | + - Added `preserveCapitalization()` helper |
| 36 | +- ✅ Fixed: Proper noun case preserved in user dictionary (05050b47) |
| 37 | + - **Root cause**: `loadCustomAndUserWords()` lowercased all words for dictionary lookup |
| 38 | + - **Fix**: Added `userWordOriginalCase` map in WordPredictor to track original case |
| 39 | + - When user adds "Boston", stored as "Boston", predicted as "Boston" |
| 40 | + - Added `applyUserWordCase()` and `applyUserWordCaseToList()` helpers |
| 41 | + - Applied to prediction output in `predictWordsWithContext()` |
33 | 42 |
|
34 | 43 | ### Code Review (v1.2.5 → HEAD) |
35 | 44 | - Reviewed 39 changed Kotlin files, 3000+ lines added |
|
0 commit comments