ShikiSuen
d3fc057409
SessionCtl // Use newer resetInputHandler() in setValue().
2022-12-17 15:14:22 +08:00
ShikiSuen
ef06f7d039
SessionCtl // Remove UserDefaults.standard.synchronize().
2022-12-17 15:14:22 +08:00
ShikiSuen
45fc44eaf7
SessionCtl // Optimize resetInputHandler().
2022-12-17 15:14:22 +08:00
ShikiSuen
e3b16e9661
SessionCtl // Introduce forceCleanup() to resetInputHandler().
2022-12-17 15:14:22 +08:00
ShikiSuen
8f7d452a1d
SessionCtl // GCD the init() and IMK-related methods.
2022-12-17 15:14:22 +08:00
ShikiSuen
bd0fe1bacc
SessionCtl // Disable setMarkedText() on activateServer().
2022-12-17 15:14:22 +08:00
ShikiSuen
af218e9e7c
SessionCtl // Optimize setValue(), init(), and inputMode().
2022-12-17 15:14:22 +08:00
ShikiSuen
c9c2ab9064
SessionCtl // Mitigate .ofEmpty() state on activateServer().
...
- We don't handle it. We set it.
2022-12-17 15:14:22 +08:00
ShikiSuen
f57238f380
SessionCtl // Revamp setKeyLayout().
2022-12-17 15:14:22 +08:00
ShikiSuen
9fc54412cc
SessionCtl // Remove useless setKeyLayout() in menu.
...
- I forgot to remove this during vChewing 1.5.x~1.8.x.
2022-12-17 15:14:22 +08:00
ShikiSuen
4d213f569b
SessionCtl // Disable setMarkedText() on deactivateServer().
2022-12-17 15:14:22 +08:00
ShikiSuen
b203e46398
SessionCtl // Typo fix.
2022-12-17 15:14:22 +08:00
ShikiSuen
f984e3f521
CNS // Update date check tag to 20221004.
2022-12-17 15:14:22 +08:00
ShikiSuen
3c88b810bc
SwiftExtension // Add String.charDescriptions: [String], etc. ( #249 )
...
* SwiftExtension // Add String.charDescriptions: [String].
* SwiftExtension // Including certain SwiftUI extensions.
2022-12-17 15:14:21 +08:00
ShikiSuen
f8c722ce8e
InputHandler // Remove useless delegate.switchState(state). ( #248 )
2022-12-17 15:14:21 +08:00
ShikiSuen
8239a6502c
Menuicon // Use more-distinguishable alternatives. ( #230 )
2022-12-17 15:14:21 +08:00
ShikiSuen
1f2a14d856
SessionCtl // Hide previous candidate window before reinitiation. ( #246 )
2022-12-17 15:14:21 +08:00
ShikiSuen
5c537d3f16
InputHandler // Also allow opt+punct to reverse-flip candidates.
2022-12-17 15:14:21 +08:00
ShikiSuen
8b20b76689
InputHandler // Console log if alternative symbol menu is empty.
2022-12-17 15:14:21 +08:00
ShikiSuen
7fd63a1707
Manual // Typo fix, etc.
2022-12-17 15:14:21 +08:00
ShikiSuen
27063a6430
InputHandler // Fix a conversion error in handleCtrlCommandEnter().
2022-12-17 15:14:21 +08:00
ShikiSuen
5ae6fc9841
InputHandler // Again let Shift+Space commit FW space when ofEmpty().
2022-12-17 15:14:21 +08:00
ShikiSuen
47ab4867b1
Repo // Remove the useless .ofNotEmpty() state.
2022-12-17 15:14:21 +08:00
ShikiSuen
d8762d78a0
i18n // Unify the translation of "keyboard shortcuts".
2022-12-17 15:14:21 +08:00
ShikiSuen
2a320ee095
InputHandler // Correct the handling of tone1, etc. ( #217 )
2022-12-17 14:55:56 +08:00
ShikiSuen
cf2cefa754
PrefWindow // MandarinParser -> KeyboardParser. ( #216 )
2022-12-17 14:55:56 +08:00
ShikiSuen
a21e2c812c
Repo // Disabling pinyin-phonabet conversion in cassette mode. ( #215 )
...
- Also fix the separator conversion in handleCtrlCommandEnter().
2022-12-17 14:55:56 +08:00
ShikiSuen
6170743ed1
PrefUI // Localization fix.
2022-12-17 14:55:56 +08:00
ShikiSuen
ba3e1a99a5
Repo // Clear calligrapher together on resetInputHandler() ( #210 )
2022-12-17 14:55:56 +08:00
ShikiSuen
7c4f141286
InputHandler // Improve conditioning of triggering candidate window. ( #209 )
2022-12-17 14:55:56 +08:00
ShikiSuen
064b2fbe7d
InputHandler // Fix wrong conditioning of composeReading(), etc. ( #206 )
...
- Stop calling candidate window when the compositor is empty.
- Stop handling the simple input case of the intonation "tone1".
2022-12-17 14:55:56 +08:00
ShikiSuen
39834b3ec8
InputHandler // Show actual character text in debug console. ( #203 )
2022-12-17 14:55:56 +08:00
ShikiSuen
1e178e948f
Repo // Stop committing raw dynamic keylayout chars. ( #202 )
2022-12-17 14:55:56 +08:00
ShikiSuen
ae49ee81f3
SessionCtl // Optimize commission in resetInputHandler(). ( #199 )
2022-12-17 14:55:56 +08:00
ShikiSuen
5465fe16d2
InputHandler // Ensure commission of existing contents in certain cases. ( #198 )
...
- This fixes #194 and #195 .
2022-12-17 14:55:56 +08:00
ShikiSuen
d8442acec8
InputHandler // Remove newlines from generateStateOfInputting().
2022-12-17 14:54:50 +08:00
ShikiSuen
a4fac74c37
IMEStateData // Remove unwanted new lines in displayedText.
2022-12-17 14:54:50 +08:00
ShikiSuen
6fce25ed2c
SessionCtl // Stop committing unwanted newlines.
2022-12-17 14:54:50 +08:00
ShikiSuen
e35a5b246f
SessionCtl // Trim newlines among lookup results.
2022-12-17 14:54:50 +08:00
ShikiSuen
d9258192f5
Prefs // Add "AutoCombineLongestPossibleCassetteKey".
2022-12-17 14:54:50 +08:00
ShikiSuen
177100ba2c
InputHandler // Clear calligrapher if it is overflown.
2022-12-17 14:54:50 +08:00
ShikiSuen
c88c8bda64
LMCassette // Generate wildcard table even if wildcardKey is missing.
2022-12-17 14:54:49 +08:00
ShikiSuen
e47d5749e9
InputHandler // Let cassette mode respond to possible final key.
2022-12-17 14:54:49 +08:00
ShikiSuen
03236671af
SessionCtl // Sort lookup results according to their candidate amounts.
2022-12-17 14:54:49 +08:00
ShikiSuen
b8de232c3f
InputHandler // Handle results returned by compositor.insertKey().
2022-12-17 14:54:49 +08:00
ShikiSuen
11d2ce635d
SessionCtl // Attempt to do annotations with IMKCandidates.
2022-12-17 14:54:49 +08:00
ShikiSuen
5fbc2fb728
TDKCandidates // UI accommodation with long reverse-lookup results.
...
- Use array to handle reverse-lookup UI representation.
- Remove SessionCtl.annotate().
2022-12-17 14:54:49 +08:00
ShikiSuen
714632e1c8
SessionCtl // Stable-sort the lookup results.
2022-12-17 14:54:49 +08:00
ShikiSuen
7a4aa38df5
PrefUI // Simplify the usage of .help() backports.
2022-12-17 14:54:49 +08:00
ShikiSuen
d263719e64
Repo // Change the buzz() trigger with certain NSAlert instances.
2022-12-17 14:54:49 +08:00
ShikiSuen
3ca7410316
Repo // Stop using didSet in cassettePath property.
...
- It doesn't work in some cases.
2022-12-17 14:54:49 +08:00
ShikiSuen
f94ecf5fda
Repo // Implementing reverse-lookup, requiring macOS 10.15 and later.
...
- Prefs & PrefUI // Add reverse-lookup toggle.
2022-12-17 14:54:49 +08:00
ShikiSuen
6e67a5edc8
AppDelegate // Again always load cassette data on startup.
2022-12-17 14:54:49 +08:00
ShikiSuen
9e857b80d4
Repo // Turn currentLM and currentUOM into dynamic var.
2022-12-17 14:54:49 +08:00
ShikiSuen
60b3fcf625
PrefMgr // Remove redundant LMMgr.loadCassetteData().
2022-12-17 14:54:49 +08:00
ShikiSuen
78af4b72c2
SessionCtl // Add comments regarding upstream issue 346 and UPR347.
2022-12-17 14:54:49 +08:00
ShikiSuen
d35b958f16
SessionCtl // Disable reloading on hotkey-toggling cassette mode.
...
- ... unless it is not loaded.
2022-12-17 14:54:49 +08:00
ShikiSuen
d5fbcf5e2c
Repo // Comment updates.
2022-12-17 14:54:49 +08:00
ShikiSuen
234819030c
Repo // Fix informativeText localization when cassette path error.
2022-12-17 14:54:49 +08:00
ShikiSuen
baaa563c45
AppDelegate // Only load cassette on startup if it is enabled.
2022-12-17 14:54:49 +08:00
ShikiSuen
c5263bac1c
PrefMgr // Change default candidate font size back to 16.
2022-12-17 14:54:49 +08:00
ShikiSuen
9220c7f846
InputHandler // Implement wildcard key support.
...
- Let wildcard key function as the end key.
- Warns about incorrect wildcard key inputs.
2022-12-17 14:54:49 +08:00
ShikiSuen
4e124e6aac
Repo // Let tooltip window auto-disappear after given seconds.
2022-12-17 14:54:49 +08:00
ShikiSuen
751824feef
Repo // Better handling with tooltip colors.
2022-12-17 14:54:49 +08:00
ShikiSuen
6060cc4fbf
SessionCtl // Clear tooltip when necessary.
2022-12-17 14:54:49 +08:00
ShikiSuen
d1bd34ee43
SessionCtl // Show non-empty tooltip on .ofEmpty() state.
2022-12-17 14:54:49 +08:00
ShikiSuen
27061754d6
PrefUI & PrefWindow // Allow CIN2 & VCIN files to be selected.
2022-12-17 14:54:49 +08:00
ShikiSuen
dfcb99eebe
InputHandler // Force ASCII raw output in cassette mode.
2022-12-17 14:54:49 +08:00
ShikiSuen
f0866a816c
PrefUI & PrefWindow // Japanese localization fix.
2022-12-17 14:54:49 +08:00
ShikiSuen
b59b8d5345
LMMgr // Fix malfunctioned loadCassetteData().
2022-12-17 14:54:49 +08:00
ShikiSuen
da68e12ff3
CCBridge // Add vertical ellipse symbol conversion.
2022-12-17 14:54:49 +08:00
ShikiSuen
4a7d165ab6
PrefUI & PrefWindow // Add settings regarding cassette mode.
2022-12-17 14:54:49 +08:00
ShikiSuen
c0ef70fe0d
InputHandler // Implement stroke composition support.
2022-12-17 14:54:49 +08:00
ShikiSuen
23e02b9132
SessionCtl // Prompt cassette mode in TDK candidate window.
2022-12-17 14:54:49 +08:00
ShikiSuen
0b8a61d1ad
CheatSheet // Add hotkey descriptions regarding CIN cassette mode.
2022-12-17 14:54:49 +08:00
ShikiSuen
10695d6e63
SessionCtl // Add menu item for toggling cassette mode, etc.
2022-12-17 14:54:49 +08:00
ShikiSuen
49f9a3c995
SessionCtl // Force ABC layout if needed when Cassette mode is ON.
2022-12-17 14:54:49 +08:00
ShikiSuen
f2c5a5297a
Repo // LMMgr.loadCassetteData() when necessary.
2022-12-17 14:54:49 +08:00
ShikiSuen
1174a08360
LMMgr // Connecting properties regarding Cassette module.
2022-12-17 14:54:49 +08:00
ShikiSuen
c3757e2ac3
SessionCtl // Sync cassette mode status when necessary.
2022-12-17 14:54:49 +08:00
ShikiSuen
8e03fb2469
CCBridge // Add cassetteConvert().
2022-12-17 14:54:49 +08:00
ShikiSuen
8b8ebbf14f
Prefs // Add properties regarding Cassette module.
2022-12-17 14:54:49 +08:00
ShikiSuen
57d9c3f5e1
SessionCtl // Comment update.
2022-12-17 14:54:49 +08:00
ShikiSuen
9a3ecba927
PrefUI // Reload user lang models on enabling the monitor.
2022-12-17 14:54:49 +08:00
ShikiSuen
fa32d8ac93
Repo // Implementing macOS System Preferences pane.
2022-12-17 14:54:49 +08:00
ShikiSuen
a9c02f9904
Tekkon // hasToneMarker() -> hasIntonation().
2022-12-17 14:54:49 +08:00
ShikiSuen
77f071eef5
Repo // Preferences -> SSPreferences.
2022-12-17 14:54:49 +08:00
ShikiSuen
88b0726448
SessionCtl // Stop switching to certain states if not prompted to.
2022-12-17 14:54:49 +08:00
ShikiSuen
29b89518c0
InputHandler // Simplify the arrow handling in handleInput().
2022-12-17 14:54:48 +08:00
ShikiSuen
272bfef227
SessionCtl // Fix a conditioning in candidatePairSelected().
2022-12-17 14:54:48 +08:00
ShikiSuen
19b0b138f2
InputHandler // Further simplification, etc.
...
- Removing certain useless cases of delegate.switchState(IMEState.ofEmpty()) right after ofCommitting().
- Divide handleComposition() for future purposes.
2022-12-17 14:54:48 +08:00
ShikiSuen
4860b52306
InputHandler // Simplifying inline rotation method.
2022-12-17 14:54:48 +08:00
ShikiSuen
2cf53d5c6a
SessionCtl // Optimize handlings of Committing() state.
2022-12-17 14:54:48 +08:00
ShikiSuen
70e0044179
InputHandler // Simplify CapsLock input handling.
2022-12-17 14:54:48 +08:00
ShikiSuen
1324e0a077
Repo // selectedCandidateIndex -> highlightedIndex.
2022-12-17 14:54:48 +08:00
ShikiSuen
b6b647d822
InputHandler // Simplify handleCandidate().
2022-12-17 14:54:48 +08:00
ShikiSuen
96fe170a8d
InputHandler // Remove ineffective ThinkPad-specific key support.
2022-12-17 14:54:48 +08:00
ShikiSuen
e8e67a1f5f
InputHandler // Simplifying aftermaths.
2022-12-17 14:54:48 +08:00
ShikiSuen
0a0f02861b
InputHandler // Remove errorCallback().
2022-12-17 14:54:48 +08:00
ShikiSuen
581122720d
InputHandler // Remove state parameter.
2022-12-17 14:54:48 +08:00
ShikiSuen
36a83f25a2
InputHandler // Remove stateCallback().
2022-12-17 14:54:48 +08:00
ShikiSuen
4522921a0f
InputHandler // Simplify handleInput().
2022-12-17 14:54:48 +08:00
ShikiSuen
d9cf938b29
Repo // Introducing InputHandlerProtocol.
2022-12-17 14:54:48 +08:00
ShikiSuen
6e94cbea55
Repo // Moving input handling instructions to InputHandler.
2022-12-17 14:54:48 +08:00
ShikiSuen
5832136e05
Repo // Implementing set() for NSWindowController.
2022-12-17 14:54:48 +08:00
ShikiSuen
0926e345a4
ClientMgr // Allow multiple selection.
2022-12-17 14:54:48 +08:00
ShikiSuen
4b08607608
PrefUI & PrefWindow // Disable multiple selection.
2022-12-17 14:54:48 +08:00
ShikiSuen
595304a0b8
LMMgr // Format tweaks.
...
- Use "Self." when necessary.
2022-12-17 14:54:48 +08:00
ShikiSuen
c7c7769024
Bump version to 2.8.8 GM Build 2880.
2022-12-17 14:54:48 +08:00
ShikiSuen
70f47407f9
UpdateSputnik // Use shared instance; Fix wrong key name.
2022-12-17 14:54:48 +08:00
ShikiSuen
794cca4e98
AppDelegate // Format change, removing "currentAlertType".
2022-12-17 14:54:48 +08:00
ShikiSuen
939162e08a
Repo // NSApplication.shared -> NSApp.
2022-12-17 14:54:48 +08:00
ShikiSuen
08148779e5
PrefUI // Use uppercase Hungary naming convention.
2022-12-17 14:54:48 +08:00
ShikiSuen
9ae2797fca
Repo // Change how NSWindow shared instances are handled.
2022-12-17 14:54:48 +08:00
ShikiSuen
7c1dce393d
AboutWindow // Also embed upstream license.
2022-12-17 14:54:48 +08:00
ShikiSuen
66fb90d8d5
AboutWindow // Update copyright information.
2022-12-17 14:54:48 +08:00
ShikiSuen
4a5182ccf3
Repo // Update copyright format.
2022-12-17 14:54:48 +08:00
ShikiSuen
82a4a0e1bc
Repo // Pull symbol menu default data out of the package.
2022-12-17 14:54:48 +08:00
ShikiSuen
6168cc32d0
Repo // Massive nomenclature changes, etc.
2022-12-17 14:54:48 +08:00
ShikiSuen
458e7fa613
SessionCtl // Simplify handle(state).
2022-12-17 14:54:48 +08:00
ShikiSuen
1e8b0af44b
SessionCtl // Again let IME works right after rebooting itself.
2022-12-17 14:54:48 +08:00
ShikiSuen
0956e043fd
SessionCtl // Add (Bool)replaceCurrent to handle(event).
2022-12-17 14:54:48 +08:00
ShikiSuen
0d79e83777
SessionCtl // Track and handle deactivated states correctly.
2022-12-17 14:54:48 +08:00
ShikiSuen
81feeb341c
IMKCandidates // Upgrade visible().
2022-12-17 14:54:48 +08:00
ShikiSuen
970174117e
SessionCtl // Remove unnecessary nil setters for ctlCandidateCurrent.
2022-12-17 14:54:48 +08:00
ShikiSuen
072ecdf907
CtlCandidateDelegate // Remove useless "AnyObject".
2022-12-17 14:54:48 +08:00
ShikiSuen
d4ba4dbdcf
SessionCtl // Fix incorrect "deactivated" states.
2022-12-17 14:54:48 +08:00
ShikiSuen
c95a55dc60
SessionCtl // Publicization.
2022-12-17 14:54:48 +08:00
ShikiSuen
b43d4b8993
SessionCtl // Add warning comments towards handle(state).
2022-12-17 14:54:48 +08:00
ShikiSuen
a144e20304
SessionCtl // Make PCB, tooltip, and candidate window instances dynamic.
2022-12-17 14:54:48 +08:00
ShikiSuen
940e9b6d85
SessionCtl // Also debug-print the client when state changes.
2022-12-17 14:54:48 +08:00
ShikiSuen
1f9abfafe5
SessionCtl // Handle empty state when activating server.
2022-12-17 14:54:48 +08:00
ShikiSuen
55c469bf31
KeyHandler // Deprecating CFStringTransform(), etc.
2022-12-17 14:54:48 +08:00
ShikiSuen
2cd43f8a69
PrefWindow // Description updates.
2022-12-17 14:54:48 +08:00
ShikiSuen
e09813704d
PrefUI // Update certain descriptions and terms.
2022-12-17 14:54:48 +08:00
ShikiSuen
65f8bc2eff
PrefUI // Add quick setup buttons for keyLayouts.
2022-12-17 14:54:48 +08:00
ShikiSuen
ae776fb12d
PrefUI // Remove limitations regarding choices of keyboard layouts.
2022-12-17 14:54:48 +08:00
ShikiSuen
d0c704f9bf
SessionCtl // Disable special keyLayout for candidate Window.
2022-12-17 14:54:48 +08:00
ShikiSuen
70e0269bf3
SessionCtl // Disable special keyboard layout for Caps Lock mode.
2022-12-17 14:54:48 +08:00
ShikiSuen
05994872ca
SessionCtl // Force keyLayout translation when typing phonabets.
2022-12-17 14:54:48 +08:00
ShikiSuen
123d6111bc
SessionCtl // Force half-width in alphanumerical keyboard.
2022-12-17 14:54:48 +08:00
ShikiSuen
165727f43d
SessionCtl // Translate Apple dynamic keylayouts in new way.
2022-12-17 14:54:48 +08:00
ShikiSuen
4edbe4d85c
TDKCandidates // Only show 1 column for vertical typing.
2022-12-17 14:54:48 +08:00
ShikiSuen
4c44cf09c9
SessionCtl // Remove useless delegate symbols.
2022-12-17 14:54:48 +08:00
ShikiSuen
4676c995ce
Repo // Fix selection key errors of vertical IMKCandidates.
2022-12-17 14:54:48 +08:00
ShikiSuen
ec35ebf24b
Repo // Refuse ineffective candidate key events.
2022-12-17 14:54:48 +08:00
ShikiSuen
b510ee5c1e
KeyHandler // Stop generating candidate states with emply container.
2022-12-17 14:54:48 +08:00
ShikiSuen
1dfebd7b44
Repo // Remove useless symbols regarding candidate windows.
2022-12-17 14:54:48 +08:00
ShikiSuen
0abc362576
Repo // Deprecating Zonble's method of handling selection key errors.
...
- Also adding the ability of detecting non-printable chars.
2022-12-17 14:54:48 +08:00
ShikiSuen
80e578600c
PrefMgr // Add LINE to IMKTextInputIncapable list.
2022-12-17 14:54:48 +08:00
ShikiSuen
6eb77a1b6f
ClientMgr // Tweak NSAlert sheet size.
2022-12-17 14:54:48 +08:00
ShikiSuen
32d35ad911
SessionCtl // Revamp certain client()-related operations.
2022-12-17 14:54:48 +08:00
ShikiSuen
f4a786904e
TDKCandidates // Refactor for simplicity.
2022-12-17 14:54:47 +08:00
ShikiSuen
e71f46f2f5
Repo // Typo fix: Emac -> Emacs.
2022-12-17 14:54:47 +08:00
ShikiSuen
d620a1899d
SessionCtl // Disable recent new Caps Lock features for macOS 11 and earlier.
2022-12-17 14:54:47 +08:00
ShikiSuen
110d945d40
SessionCtl // Always sync ASCIIMode state from CapsLock state.
2022-12-17 14:54:47 +08:00
ShikiSuen
757f166d4b
PrefWindow // Fix a wrong binding in XIB.
2022-12-17 14:54:47 +08:00
ShikiSuen
2c80f5fdf0
PrefMgr // Fix a default setting for macOS 10.14 and earlier.
2022-12-17 14:54:47 +08:00
ShikiSuen
bf4712a1de
SessionCtl // Use alphanumerical keyboard for candidate window.
...
- 2.8.6 Special FIx: Stop stucking while typing in Xcode.
2022-12-17 14:54:47 +08:00
ShikiSuen
f7f722d557
KeyHandler // Comment update.
2022-12-17 14:54:47 +08:00
ShikiSuen
646ca310c6
Repo // Updating bleachSpecifiedSuggestions() to add batch processing.
2022-12-17 14:54:47 +08:00
ShikiSuen
bf6bc90238
SessionCtl_Menu // Update certain menu item namings.
2022-12-17 14:54:47 +08:00
ShikiSuen
844fd5b8d9
Repo // Let L-Shift toggle become effective immediately.
2022-12-17 14:54:47 +08:00
ShikiSuen
d872a6b443
Repo // Remove nerfed phrases from UOM database.
2022-12-17 14:54:47 +08:00
ShikiSuen
5e263e7398
KeyHandler // Update certain comments.
2022-12-17 14:54:47 +08:00
ShikiSuen
c3d3d95a1f
Manuals && FAQ // Update for vChewing 2.8.0 and onwards.
2022-12-17 14:54:47 +08:00
ShikiSuen
d5e01b5adf
Repo // Enable TDKCandidateBackports for macOS 10.15-11.
2022-12-17 14:54:47 +08:00
ShikiSuen
cb81da6581
Repo // Clang-format.
2022-12-17 14:49:05 +08:00
ShikiSuen
50bddf2f83
KeyHandler // Fix a behavior issue with TDKCandidates.
2022-12-17 14:49:05 +08:00
ShikiSuen
b286f23c69
SessionCtl // Use GCD for Caps Lock processing.
2022-12-17 14:49:05 +08:00
ShikiSuen
030a8cb776
CtlCandidateTDK // Vertical candidate layout support, etc.
...
- SP2: Fix a color scheme mistake in bright mode.
2022-12-17 14:49:05 +08:00
ShikiSuen
8fd236a065
Repo // Removing page button toggle.
2022-12-17 14:49:05 +08:00
ShikiSuen
0def927690
Repo // Allow turning off CapsLock notifications, etc.
2022-12-17 14:49:05 +08:00
ShikiSuen
227d0fb1bc
Repo // Require that minimum candidate key count is 6, etc.
...
- SP2 Fix: Shared // Add missing dependency.
2022-12-17 14:49:05 +08:00
ShikiSuen
373dc93139
Repo // Update CNS Data tag.
2022-12-17 14:49:05 +08:00
ShikiSuen
c9b42ca9a5
Prefs // Update settings regarding candidate window, etc.
2022-12-17 14:49:05 +08:00
ShikiSuen
738ecc0a8f
PrefWindow // Disable Voltaire-related settings.
2022-12-17 14:49:05 +08:00
ShikiSuen
cef1a2a3f5
CtlCandidateTDK // DIfferentiate page flipping and row flipping.
2022-12-17 14:49:05 +08:00
ShikiSuen
b38938de54
CtlCandidateTDK // Performance boost.
2022-12-17 14:49:05 +08:00
ShikiSuen
eadae22dbb
Repo // Introducing CtlCandidateTDK (horizontal).
2022-12-17 14:49:05 +08:00
ShikiSuen
e6429e2639
i18n // Remove redundant contents.
2022-12-17 14:49:05 +08:00
ShikiSuen
88d4e56f2f
KeyHandler // Add additional notes regarding CapsLock handling.
2022-12-17 14:49:05 +08:00
ShikiSuen
1bba520f01
PrefUI // Fix certain terms according to recent changes.
2022-12-17 14:49:05 +08:00
ShikiSuen
df1a531c6c
i18n // Fix the localization key name according to recent changes.
2022-12-17 14:49:05 +08:00
ShikiSuen
f75bafdd01
SessionCtl // Add caps lock notification support, etc.
2022-12-17 14:49:05 +08:00
ShikiSuen
8d541ddde0
Repo // App Icon Update - 2022 Fall.
2022-12-17 14:49:05 +08:00
ShikiSuen
3c5b82750b
PrefUI // Tweak contentMaxHeight.
2022-12-17 14:49:05 +08:00
ShikiSuen
b8ddfcabbf
SessionCtl // Remove useless delegate symbols, etc.
2022-12-17 14:49:05 +08:00
ShikiSuen
216fe6e1ba
Repo // "ctlInputMethod" -> "SessionCtl".
2022-12-17 14:49:05 +08:00
ShikiSuen
5815a49359
Repo // Simplify certain naming methods.
2022-12-17 14:49:05 +08:00
ShikiSuen
e9137b9e53
CtlCandidate(s) // Refactor with partial packaging.
...
- The CtlCandidateIMK is not package-able due to its utilization of bridging-header. There is no workaround available at this moment.
2022-12-17 14:49:05 +08:00
ShikiSuen
0041c3d669
KeyHandler // Remove unnecessary comments.
2022-12-17 14:49:05 +08:00
ShikiSuen
690df020bd
IMKCandidates // Reorganization.
2022-12-17 14:49:05 +08:00
ShikiSuen
0ce0604c16
IMKCandidates // Move its key handling process to ctlIME.
2022-12-17 14:49:05 +08:00
ShikiSuen
7c3d90dc80
LMI // Introducing hasKeyValuePairFor(), using it in LMMgr.
2022-12-17 14:49:05 +08:00
ShikiSuen
dbd7dc92a1
PCB // Pack PopupCompositionBuffer into Swift package.
2022-12-17 14:49:05 +08:00
ShikiSuen
1648152b24
Repo // Move IMEState-related protocols to Shared package.
2022-12-17 14:49:05 +08:00
ShikiSuen
cab7eb28f7
IMEState // Make certain data components directly accessible.
2022-12-17 14:49:05 +08:00
ShikiSuen
abec924d16
TooltipUI // Pack ctlTooltip into a package.
2022-12-17 14:49:05 +08:00
ShikiSuen
a5874a1cfd
ctlIME // Update notifications for toggling alphanumerical modes.
2022-12-17 14:49:05 +08:00
ShikiSuen
1f5481a8d4
NotifierUI // Refactor into a standalone package.
2022-12-17 14:49:05 +08:00
ShikiSuen
d8fb9aee1d
ICB // Utilizing NSAttributedString.length.
2022-12-17 14:49:05 +08:00
ShikiSuen
827e7e4735
ctlIME // Simplify isASCIIMode toggling.
2022-12-17 14:49:05 +08:00
ShikiSuen
e577135079
ctlIME // Omit event input if isASCIIMode.
2022-12-17 14:49:05 +08:00
ShikiSuen
a026c39425
PrefWindow // Apply NSGridView.
2022-12-17 14:49:05 +08:00
ShikiSuen
ff0c082754
Main // Simplify the processing of the connection name.
2022-12-17 14:49:04 +08:00
ShikiSuen
7d05bcf1ff
PrefMgr // Split its extension to a standalone file.
2022-12-17 14:49:04 +08:00
ShikiSuen
0477c6e2da
PrefUI // +onlyLoadFactoryLangModelsIfNeeded.
2022-12-17 14:49:04 +08:00
ShikiSuen
b747dd063e
PrefWindow // +onlyLoadFactoryLangModelsIfNeeded.
2022-12-17 14:49:04 +08:00
ShikiSuen
50396a42c6
Prefs // +onlyLoadFactoryLangModelsIfNeeded.
2022-12-17 14:49:04 +08:00
ShikiSuen
e1648fc1a7
PrefMgr // Remove unnecessary GCD.
2022-12-17 14:49:04 +08:00
ShikiSuen
d5ce4f29ad
LMMgr // Also use GCD in loadDataModels() per input mode.
2022-12-17 14:49:04 +08:00
ShikiSuen
2a22117bad
LMMgr // Use GCD in loadDataModelsOnAppDelegate().
2022-12-17 14:49:04 +08:00
ShikiSuen
f80c13331d
Repo // Pack InputMode typedefs into Shared package.
2022-12-17 14:49:04 +08:00
ShikiSuen
a4a37feb16
LMMgr // Use GCD in saveUserOverrideModelData().
2022-12-17 14:49:04 +08:00
ShikiSuen
cf025b2b52
NotifierUI // Redefine how a notifier gets triggered.
...
- The previous approach is not compatible with Grand Central Dispatch.
2022-12-17 14:49:04 +08:00
ShikiSuen
03d4099894
KeyHandler // Use PrefMgrProtocol delegate to handle UserDefaults.
2022-12-17 14:49:04 +08:00
ShikiSuen
9d077a9d49
Repo // Massive refactor & renovation.
...
- This commit is a massive refactor update towards the current vChewing codebase, modernizing the entire project structure.
- Put things into packages to boost compile speed.
- Also: IMKCandidates // macOS 10.13 High Sierra compatibility.
- ctlIME // Remove duplicated setValue().
2022-12-17 14:49:04 +08:00
ShikiSuen
498ddcc153
Starting from vChewing 2.6.2 SP3.
2022-12-17 14:32:15 +08:00
ShikiSuen
ce6e8453e7
Removing everything.
2022-12-17 14:23:03 +08:00
ShikiSuen
12abcd02a9
Replacing data to libvchewing-data (v3.1.1); Requiring >= macOS 10.13.
...
- The data replacement is to make sure it is allowed to be hosted in GitLab China and Gitee.
- Xcode 14 does not support targets earlier than macOS 10.13.
2022-12-17 14:20:50 +08:00
zonble
8de659f50b
Adds an example for a symbol table in tree structure.
2022-12-17 14:03:10 +08:00
Lukhnos Liu
ddbe363134
Bump version to 2.2.2
2022-02-20 08:34:07 -08:00
Lukhnos Liu
ea477d6c5b
Fix cpplint
2022-02-20 08:11:12 -08:00
Lukhnos Liu
e892628492
Remove all the "inFoo" in-param style
...
We don't use out-params in Gramambular, but even for them the best
practices have been converging on using "T& param" for required output
param and "T* param" for optional output param. At any rate the prefix
was never necessary, and hence the removal.
2022-02-20 08:11:11 -08:00
Lukhnos Liu
26ad5fd5ea
Move dumpDOT to Grid.cpp
2022-02-20 08:11:10 -08:00
Lukhnos Liu
13609f41f5
Remove all the "using namespace" usage
2022-02-20 08:11:09 -08:00
Lukhnos Liu
d3302ef70a
Reformat Gramambular with clang-format
2022-02-20 08:11:08 -08:00
Lukhnos Liu
d4d8d14004
Import the test code from Formosana
2022-02-20 08:11:07 -08:00
Lukhnos Liu
305c874003
Supply a CMake project and a trivial unit test
2022-02-20 08:11:03 -08:00
Lukhnos Liu
dc6ef93d72
Remove the "using namespace" usage in McBopomofo
2022-02-19 10:00:28 -08:00
Lukhnos Liu
2091c1dc7d
Format ObjC code with clang-format, WebKit style
2022-02-19 08:26:28 -08:00
Lukhnos Liu
ca2f4bf8fd
Delete the dead tistool.m
2022-02-19 08:26:08 -08:00
Lukhnos Liu
ea2e76e107
Handle [A-Z] if input state is not empty ( #292 )
...
This fixes the regression, first introduced in 2.2, from 2.0.x behavior.
2022-02-16 00:15:40 -08:00
Lukhnos Liu
4aaef97296
Remove the Terminal.app workaround
...
It was needed in the early days of McBopomofo, but is no longer so.
2022-02-14 21:07:24 -08:00
Lukhnos Liu
d9e1417fa1
Bump version to 2.2.1
2022-02-14 19:50:01 -08:00
Lukhnos Liu
b4704ff7e4
Merge pull request #289 from zonble/master
...
Fixes an Swift type conversion issue which happens while typing in Terminal app
2022-02-14 19:48:44 -08:00
zonble
e85a33ce15
Fixes an Swift type conversion issue which happens while typing in Terminal app.
...
Fixes #288 .
2022-02-15 10:57:06 +08:00
Lukhnos Liu
a00d34241d
Bump to version 2.2
2022-02-14 00:40:55 -08:00
Lukhnos Liu
0697d8b233
Fix path bugs in ArchiveUtil
2022-02-14 00:39:40 -08:00
Lukhnos Liu
39a9330969
Typo fix
2022-02-13 22:49:51 -08:00
Lukhnos Liu
c2f45c2060
Make the half-width punctuations toggle work again
2022-02-13 19:22:45 -08:00
Lukhnos Liu
5d6659ef19
Rename associated-phrases.cin to associated-phrases.txt
...
Since the file doesn't really contain any .cin directives.
2022-02-13 19:16:37 -08:00
Lukhnos Liu
ec98acc0b6
UI strings copyediting
2022-02-13 19:02:06 -08:00
Lukhnos Liu
02a475197d
Move the Preferences menu item to the last group
...
So that it's closer to Check for Updates and About McBopomofo.
2022-02-13 18:40:46 -08:00
Lukhnos Liu
21fe0af085
Credits.rtf copyediting
2022-02-13 18:36:51 -08:00
Weizhong Yang a.k.a zonble
6122eeee15
Merge pull request #283 from lukhnos/bopomofo-refactoring
...
Bopomofo refactoring
2022-02-14 02:04:18 +08:00
zonble
b5d9ce60bf
Prevents the override model to remember symbols with scode -8 or lower.
2022-02-14 01:38:26 +08:00
Lukhnos Liu
a55c0a4b60
Remove the absolute order format
...
The "absolute order" is a compact representation, originally a
historical carry-over from VanillaInput (2004). Modern input methods
no longer need such a compact form. It is therefore now removed.
2022-02-13 09:21:58 -08:00
Lukhnos Liu
502e8f1ea9
Remove an unused Romanization scheme
2022-02-13 09:21:44 -08:00
zonble
4d94bb0cd2
Automatically uses vertical candidate list if there is a long candidate.
2022-02-14 01:01:03 +08:00
zonble
83184229e6
Hides the function that using Ctrl+Enter to output BPMF readings.
2022-02-13 23:05:59 +08:00
zonble
11caa62b5d
Prevents the user override model to store symbols.
2022-02-13 22:57:13 +08:00
zonble
f32689eede
Adds symbols.
2022-02-13 22:40:44 +08:00
zonble
08b92ae53b
Fixes a typo.
2022-02-04 21:39:31 +08:00
zonble
dc24de2ccb
Notifies the users not to add duplicated phrases.
2022-02-04 05:46:31 +08:00
zonble
472b149020
Adds tests.
2022-02-04 05:19:25 +08:00
zonble
ccfb97e7c5
Fixes the bug that the state was not reset if marking range is zero.
2022-02-04 04:33:49 +08:00
zonble
bfa272ac65
Minor fix on the function to move cursor after selection.
2022-02-04 00:09:44 +08:00
zonble
9ade7d16a9
Adds an setting to move the cursor after selecting a candidate.
...
The setting only works when "SelectPhraseAfterCursorAsCandidate" is also
on. When a user use the mode, it is very possible that he or she has
already something in the input buffer and go back to choose a candidate.
When he or she completes selection, the user may want to go back to the
end and continue inputting. The setting is a time saver.
2022-02-04 00:03:16 +08:00
zonble
2880394812
Fixes a minor bug on handling backspace key.
2022-02-03 01:49:41 +08:00
Lukhnos Liu
c18f497a55
Use backward-compatible Swift in certain places
...
Older Swift compiler does not allow declaring certain variables that
have the same names with those outside of their scope, even though the
scoping rules should allow them. This makes the code buildable with
Xcode 12.4 again.
2022-02-02 09:32:02 -08:00
zonble
a567ad0e65
Updates copyright info.
2022-02-03 01:20:35 +08:00
zonble
ff9664c7f1
Fixes a typo.
2022-02-03 01:10:51 +08:00
zonble
d4173bd931
Bug fixes on the marking state.
...
When the length of the range become to 0, the controller should go back
to inputting state.
2022-02-03 01:07:54 +08:00
zonble
e9707b5427
Merge branch 'master' of github.com:openvanilla/McBopomofo
2022-02-03 00:06:03 +08:00
zonble
b5220cbfe3
Add tests.
2022-02-03 00:02:23 +08:00
Lukhnos Liu
68732e6b15
Merge pull request #271 from zonble/dev/tests
...
Adds unit test cases for the key handler
2022-02-02 07:52:10 -08:00
zonble
f39b4fa0bc
Moves the Swift StringUtils class to a Swift package.
2022-02-02 22:47:15 +08:00
zonble
56ced2dd0f
Adds test cases.
2022-02-02 21:25:51 +08:00
zonble
44ecf223d7
Adds test cases.
2022-02-02 21:10:26 +08:00
zonble
cac954a00b
Updates test cases.
2022-02-02 20:29:23 +08:00
zonble
5849478fe5
Removes the dependency on OpenVanilla.
2022-02-02 18:07:41 +08:00
zonble
4743889e2f
Removes the usage of OVUTF8Helper in the key handler.
2022-02-02 17:58:45 +08:00
Weizhong Yang a.k.a zonble
8e1e3d184b
Merge pull request #269 from lukhnos/mandarin-refactoring
...
Refactor the Bopomofo syllable library for better thread safety
2022-02-02 17:57:14 +08:00
Lukhnos Liu
55971131f0
Expand tests
2022-02-01 18:41:24 -08:00
Lukhnos Liu
f591a4668c
Use thread-safe init for keyboard layouts
2022-02-01 18:41:20 -08:00
Lukhnos Liu
44f6167a38
Use C++ UTF-8 literals and remove MSVC escapes
2022-02-01 18:41:14 -08:00
Lukhnos Liu
385fd34476
Rename member variables
2022-02-01 18:41:09 -08:00
Lukhnos Liu
2f567cddc2
Use constexpr for Bopomofo Components
2022-02-01 18:41:02 -08:00
Lukhnos Liu
f4a0f2fe93
Update copyright headers and include guard
2022-02-01 18:40:56 -08:00
Lukhnos Liu
a455aef587
Fix most cpplint warnings
2022-02-01 18:40:50 -08:00
Lukhnos Liu
f0222c023d
Use default copy/move ctors and assignment ops
2022-02-01 18:40:43 -08:00
Lukhnos Liu
aa27cbbb02
Remove the "using namespace std;" usage
2022-02-01 18:40:39 -08:00
Lukhnos Liu
71b69cae50
Reformat with clang-format
2022-02-01 18:40:33 -08:00
Lukhnos Liu
4ebe1a1a11
Remove OpenVanilla dependencies
...
This removes one overengineered method from BopomofoSyllable and
rewrites a helper using a simpler UTF-8 heuristics.
Also adds the CMake project file and a unit test suite.
2022-02-01 18:40:18 -08:00
zonble
49f998ad5d
Adds tests.
2022-02-02 07:24:47 +08:00
zonble
9c8d740fc6
Adds tests.
2022-02-02 07:24:47 +08:00
zonble
118a1243de
Removes unused lines.
2022-02-02 06:02:44 +08:00
zonble
bd291be340
Removes a log.
2022-02-02 01:33:22 +08:00
zonble
cbdbfa2518
Prevents the key handler to see reserved keys like page up/down as BPMF keys.
2022-02-02 01:31:53 +08:00
zonble
5afc5defdd
Shows a tooltip when then cursor in a phrase whose length and count of readings do not match.
...
McBopomofo allows users to input pheases with a different length of the
characters and Bopomofo readings, for example, users can input ∴ with ㄙㄨㄛˇ-ㄧˇ.
When the cursor if between ㄙㄨㄛˇ and ㄧˇ, the users have no clue where
the cursor exactly is. The tooltip is to tell the users the cursor is
now betwen ㄙㄨㄛˇ and ㄧˇ.
2022-02-02 01:04:49 +08:00
zonble
82dbed7815
Fixes a crash on adding user phrases.
2022-02-01 08:41:36 +08:00
zonble
347560e36b
Disables adding phrases with shift-arraw keys when the length of the composing buffer and readings do not match.
2022-02-01 08:11:09 +08:00
zonble
74509ce3cb
Corrects the selection range while using Shift + Arrow keys to add new phrases.
2022-02-01 06:18:40 +08:00
zonble
536c9d1fc7
Adds some punctuations using control key.
...
It allows users ever use Microsoft Bopomofo to input punctuations using
keys like ctrl + comma.
2022-02-01 02:32:55 +08:00
zonble
8573332879
Removes unused localization.
2022-01-31 23:42:02 +08:00
zonble
169d03ab9b
Minor changes on the associated phrases.
...
1. Removes the tooltip on the candidate window to make the exprience
looks like OpenVanilla.
2. Adds a Shift key symbol on the key label.
2022-01-31 14:16:16 +08:00
zonble
2ebc789030
Implements the associated phrases function.
...
Since we use states manage the input flow in McBopomofo, implementing this function becomes easy. What I did is to create a new state, Associated Phrases state, and let the key handler to emit such a state just after emitting a Committing state.
When the input method controller is under Associated Phrase state, it shows the candidate window with a tooltip, and only accept candidate keys with the shift key. The key handler uses the characters without modifiers in an NSEvent object to find if there is any matching candidate label, so I added a new member "inputTextIgnoringModifiers" to KeyHandlerInput.
I use KeyValueBlobReader to read the associated phrases. I use the cin file from OpenVanilla project but removed the head and tail of the file to pass KeyValueBlobReader's validation.
2022-01-31 13:23:49 +08:00
Lukhnos Liu
2dd398f6ca
Merge pull request #264 from zonble/dev/fseventstream
...
Loads the user phrases just after the files are changes.
2022-01-30 13:37:17 -08:00
zonble
3851f91d6c
Fixes the bug that Shift+Space did not commit current composing buffer.
2022-01-31 04:47:45 +08:00
zonble
1c339c622e
Loads the user phrases just after the files are changes.
...
The revision uses a FSEventStream to monitor the change of the folder
that stores user phrases.
2022-01-31 04:29:53 +08:00
zonble
c59560dba2
Fixes the behavior to use ESC to clear the input buffer area.
2022-01-30 20:37:05 +08:00
zonble
8ba4b9dfdf
Prevents loading data models repeatedly.
2022-01-30 20:27:33 +08:00
zonble
fe67daceee
Modifies the interface of LanguageModelManager to note that some methods are for testing only.
2022-01-30 20:18:43 +08:00
zonble
ae9b524caa
Updates the descriptions of the states.
2022-01-30 09:28:26 +08:00
zonble
4681465a68
Fixes a typo.
2022-01-30 08:53:59 +08:00
zonble
5ba7365cd3
Fixes typos.
2022-01-30 08:26:32 +08:00
zonble
8a05e4d6f7
Makes variables in LanguageModelManager static.
2022-01-30 08:18:45 +08:00
zonble
5e19e70c70
Fixes a typo.
2022-01-30 08:07:34 +08:00
zonble
2c0a12f43f
Lazy loads language models.
2022-01-30 08:06:22 +08:00
zonble
c3d953c618
Converts input mode into a typed enum.
2022-01-30 08:06:22 +08:00
zonble
0b1975bfeb
Converts test cases to Swift.
2022-01-30 08:06:22 +08:00
zonble
bce641608b
Updates the copyright title and the README file.
2022-01-30 08:06:22 +08:00
zonble
4c358c1c1d
Converts InputMethodController to Swift.
2022-01-30 08:06:22 +08:00
zonble
485925634a
Adds unit tests for the key handler.
2022-01-28 20:43:43 +08:00
zonble
bb4550b9da
Notifies if half-size punctuation is on or off.
2022-01-28 19:37:38 +08:00
zonble
220696a70d
Adds a hotkey to toggle half/full width punctuation.
2022-01-28 19:30:43 +08:00
zonble
464a54f98a
Also uses the backspace key to cancel candidate in smart BPMF mode.
...
Going and Chewing also use backspace to do this.
2022-01-28 19:23:55 +08:00
zonble
c3304bc5f7
Allows users to input letters when candidate window is open in plain BPMF mode.
2022-01-28 19:10:01 +08:00
zonble
43eef1fc1f
Suppresses a log.
2022-01-28 18:56:51 +08:00
zonble
618065b881
Fixes the state from handling enter in plain BPMF mode.
2022-01-28 18:55:58 +08:00
zonble
439bb99ef5
Removes logs.
2022-01-28 17:53:32 +08:00
zonble
75dc93a2ce
Fixes the position of the tooltip.
2022-01-28 17:04:07 +08:00
zonble
ee521b6ee2
Fixes the behavior of the delete and backspace key.
2022-01-28 16:59:28 +08:00
zonble
9612aa6ba0
Code clean-up.
2022-01-28 16:51:25 +08:00
zonble
b13da10ec0
Code clean-up.
2022-01-28 16:16:52 +08:00
zonble
0bc9468ba2
Splits Input Method controller into two classes.
2022-01-28 15:02:00 +08:00
zonble
dd803b6c31
Removes logs and add copyright information.
2022-01-28 04:40:53 +08:00
zonble
056ffeabfd
Tunes the interface.
2022-01-28 04:04:44 +08:00
zonble
7ee955a55c
Cleans-up KeyHandlerInput.
2022-01-28 03:24:06 +08:00
zonble
87702f76c5
Cleans-up the interface.
2022-01-28 03:18:10 +08:00
zonble
e17d06fd2a
Fixes the cursor index when choosing candidates.
2022-01-28 01:58:25 +08:00
zonble
9351d877ba
Fixes the issue on presenting the candidate window.
2022-01-28 01:44:50 +08:00
zonble
fc0c077193
Fixes the bug on handling arrow keys.
2022-01-28 01:35:15 +08:00
zonble
2bbaa4a793
Fixes NSCoding exceptions.
2022-01-28 00:23:31 +08:00
zonble
56c393cefa
Prevents using global state as possible.
2022-01-27 23:19:27 +08:00
zonble
1ad9e23918
Refactors the input controller.
2022-01-27 22:54:53 +08:00
zonble
6fe2fc59f3
Moves the way to render attributed string to the states.
2022-01-24 21:47:24 +08:00
zonble
82a916c433
Adds a new file KeyHandler.swift to start to break input controller to testable modules.
2022-01-24 17:46:34 +08:00
zonble
177cba5d56
[WIP] Starts to extract input states from the input controller.
2022-01-24 02:13:18 +08:00
zonble
6f254bf75d
Updates copyright information.
2022-01-22 11:24:22 +08:00
zonble
3bba134e2f
Adds Credits.rtf.
2022-01-22 00:34:48 +08:00
zonble
8717625d2e
Adds a missing line back to the installer.
2022-01-22 00:07:07 +08:00
zonble
bfb66cb080
Converts the installer to Swift.
2022-01-22 00:01:21 +08:00
zonble
5fe1c28ae7
Converts main to Swift.
2022-01-21 19:17:36 +08:00
Lukhnos Liu
957b66a96b
Bump to version 2.0.1
2022-01-20 15:37:31 -08:00
Lukhnos Liu
6c76b2cae0
Delete a duplicate key in McBopomofo-Info.plist
2022-01-20 15:36:33 -08:00
zonble
cb05937478
Fixes the order of the keyboard layouts.
...
Fixes #250 .
2022-01-20 14:20:10 +08:00
Lukhnos Liu
25c50e67a4
Bump to version 2.0
2022-01-19 10:05:48 -08:00
Lukhnos Liu
42c4441d05
Introduce a Swift class to the Installer
...
This is so that the Installer will be built with the correct Swift
settings, especially those that instruct the Xcode to package the Swift
runtime libraries. This is needed because the Installer now depends on
InputSourceHelper, which is written in Swift. Without this, the app
would not be packaged with the Swift runtime libraries, which caused
the installer to be unusable on older but supported macOS versions.
2022-01-19 10:05:38 -08:00
Lukhnos Liu
29df72b79f
Bump to version 2.0-alpha
2022-01-18 23:31:07 -08:00
Lukhnos Liu
8c692e6c3b
Update copyright years
2022-01-18 23:28:08 -08:00
Lukhnos Liu
202b1fa058
Also make PhraseReplacementMap more tolerant
...
This also clarifies the test expectations and how parsing errors are
handled.
2022-01-18 22:46:26 -08:00
Weizhong Yang a.k.a zonble
9bc3536630
Merge branch 'master' into more-tolerant-userphraseslm
2022-01-19 14:01:23 +08:00
Weizhong Yang a.k.a zonble
04d2ff5a4d
Merge pull request #244 from lukhnos/custom-data-templates
...
Writes templates the first time custom data is used
2022-01-19 13:31:15 +08:00
Weizhong Yang a.k.a zonble
777994edcc
Merge pull request #245 from lukhnos/update-copyright-headers
...
Update copyright headers (fixes #213 )
2022-01-19 13:29:23 +08:00
Lukhnos Liu
c8f65580bb
Make UserPhrasesLM more tolerant
...
This lets UserPhrasesLM consumes as much user data as possible before
bailing. This makes it more tolerant to data errors and will not fail
entirely just because the user has one faulty line in a data file.
Also removes FastFM from the benchmarking suite.
This also runs the CMake-based C++ tests as part of the GitHub CI.
2022-01-18 16:20:25 -08:00
Lukhnos Liu
75f321f088
Update copyright headers ( fixes #213 )
2022-01-18 14:21:55 -08:00
Lukhnos Liu
61f55670fb
Write templates the first time custom data is used
...
Now that we allow comments in the custom data files, this change writes
localized templates as well as basic instructions. Links to McBopomofo
User's Manual are also provided.
2022-01-18 13:42:45 -08:00
zonble
7e2d3df5ba
Prevents users from adding custom phrases with more than 6 characters.
...
Also fixes typos.
2022-01-19 00:49:50 +08:00
zonble
d2c039c42d
Notifies the users it is not suggested to add phrase when model is converted.
2022-01-18 22:19:25 +08:00
zonble
aa9c31ffcf
Fixes the location of the tooltip.
2022-01-18 22:04:09 +08:00
zonble
0d80d28e0e
Formats Swift code.
2022-01-18 21:16:07 +08:00
zonble
dd1310d40a
Makes version update testable.
2022-01-18 18:39:21 +08:00
zonble
29813f93e5
Adds test cases.
2022-01-18 17:05:51 +08:00
zonble
e9b1a8ad4a
Removes unused comments.
2022-01-17 00:55:36 +08:00
zonble
a75c7b7086
Allows users to type Latin letters while using shift + letter keys.
...
Fixes issue #162 .
2022-01-17 00:48:29 +08:00
zonble
8249c612ff
Adds a validator for candidate keys in the preference window.
2022-01-16 23:33:35 +08:00
zonble
4ec4eed562
Removes unused files.
2022-01-16 15:15:41 +08:00
zonble
5ff6f378e6
Fixes a bug on selecting the candidate keys in the preference UI.
2022-01-16 15:14:49 +08:00
zonble
c4259c4c4e
Updates comments and fixes a typo.
2022-01-16 15:04:20 +08:00
zonble
4e56f350e8
Fixes a wrong API call.
2022-01-16 15:04:20 +08:00
zonble
5c0a14deeb
Refactors the function to filter and transform unigrams in McBopomofoLM.
2022-01-16 15:04:20 +08:00
zonble
b627e8e3b6
Adds an option to let users to choose Chinse conversion style.
...
Option 0: converts the output.
Option 1: converts the models.
2022-01-16 15:04:20 +08:00
zonble
b348a05735
Filters duplicated unigram values properly.
2022-01-16 15:04:18 +08:00
Lukhnos Liu
d064f420e4
Use a parseless phrase db to speed up LM loading
...
We take advantage of the fact that no one is able to modify the phrase
databases shipped with the binary (guranteed by macOS's integrity check
for notarized apps), and we can simply pre-sort the phrases in the
database files.
With this change, we can speed up McBopomofo's language model loading
during the app initialization by about 500-800x on a 2018 Intel MacBook
Pro. The LM loading used to take 300-400 ms, but now it's done within a
sub-millisecond range (0.5-0.6 ms). Microbenchmarking shows that
ParselessLM is about 16000x faster than FastLM. We amortize the latency
during the query time, and even by deferring the parsing, ParselessLM is
only ~1.5x slower than FastLM, and both LM classes serve queries unedr 6
microseconds (that's 0.006 ms), which means the tradeoff only
contributes to neglible overall latency.
This PR requires some small changes to the phrase db cooking scripts.
Python 3 is now used and the (value, reading, score) tuples are
rearranged to (reading, value, score) and sorted by reading ("key"). A
header is added to the phrase databases to call out the fact that these
are pre-sorted.
clang-format is used to apply WebKit C++ style to the new code. This
also applies to KeyValueBlobReader that was added recently.
Microbenchmark result below:
```
---------------------------------------------------------------------
Benchmark Time CPU Iterations
---------------------------------------------------------------------
BM_ParselessLMOpenClose 17710 ns 17199 ns 33422
BM_FastLMOpenClose 376520248 ns 367526500 ns 2
BM_ParselessLMFindUnigrams 5967 ns 5899 ns 113729
BM_FastLMFindUnigrams 2268 ns 2265 ns 307038
```
2022-01-15 16:15:02 -08:00
zonble
136ac34f22
Introduces in-place phrase replacement.
...
Since we have implemented the functions to add and exlcude phrases, the
commit allows users to use a table to change the output of a phrase
without changing its BPMF reading and score, when the "phrase replacement"
mode is on.
It could help users to switch a specific input scenario and the ordinary
one. For example, if a user wants to work on financial Chinese numbers
like 壹、貳、參, he or she may want the characters to have higher score
as the normal numbers like 一、二、三. The commit can let the users to
temporarily replace 一、二、三 to 壹、貳、參 by just turn on "phrase
replacement" mode and prepare a custom table.
The conversion is not done on the output phase like how we do
Traditional/Simplified Chinese conversion. What the phrase replacement
table does is to slightly modify the language model. The replacement
takes place on walking the nodes and candidates list.
A user can enable the mode and edit the table from the input menu. Since
the function is quite advanced, the menu items are hidden until the user
holds the option key.
The table is a plain text file. Each line contains a "from" and "to".
For example
```
一 壹
```
However, if the user also want all other phrase contain 一 to become 壹,
all of the phrases have to be built into the table
```
一百 壹佰
一千 壹仟
一萬 壹萬
一百萬 壹百萬
```
2022-01-15 06:23:09 +08:00
zonble
7edf011e42
Fixes a typo.
2022-01-14 22:36:58 +08:00
zonble
5ce581e0c6
Brings back VXHanConvert.
2022-01-14 22:15:17 +08:00
zonble
7a5cb635e9
Fixes the bugs in the preferences like typos.
2022-01-14 20:31:39 +08:00
zonble
aa325f73aa
Fixes the typo for the enum of McBopomofo keys.
2022-01-14 20:18:45 +08:00
zonble
95648caa0c
Simplifies the code to build the input menu.
2022-01-14 19:55:08 +08:00
zonble
d11daacbd2
Refactors the keyboard layout enum.
2022-01-14 19:47:53 +08:00
zonble
83354f7c48
Adds icons for keyboard layouts in preference.
2022-01-14 19:37:48 +08:00
zonble
9faed2153f
Uses property wrappers to manage preferences.
2022-01-14 18:06:26 +08:00
Lukhnos Liu
c698c61432
Merge pull request #220 from lukhnos/custom-phrase-reader
...
Use a more tolerant parser for user phrases
2022-01-13 23:43:35 -08:00
Lukhnos Liu
d6cc5479f6
Use a more tolerant parser for user phrases
...
A generic key-value blob reader, KeyValueBlobReader, is implemented to
allow more flexibility in user-editable files. For example, this allows
comments in the file, as well as tolerating leading or trailing spaces,
tabs, or even Windows CR LF line endings.
Unit tests are supplied for KeyValueBlobReader although they are not
part of the Xcode project. A separate CMakeLists.txt is provided.
UserPhrasesLM is refactored to use KeyValueBlobReader. A small stylistic
change is appiled to reduce "using namespace" uses, but otherwise no
major style changes were applied to UserPhrasesLM.
Please note that McBopomofo's user phrase LM uses the value in a
key-value pair as the reading, and the key as the actual "value". We
don't plan to change that order so that we don't have to migrate data.
std::string_view is used to allow efficient reference to char buffers
and interop with std::string (and so no c_str() is needed). C++17 is now
enabled for the project to enable the use of std::string_view.
Copyright headers are added to McBopomofoLM and UserPhrasesLM.
2022-01-13 23:27:31 -08:00
zonble
fcdd59dd6b
Wraps OpenCCBridge into a SPM package.
2022-01-14 00:57:41 +08:00
zonble
e01eb46c9f
Wraps InputSourceHelper to a SPM package.
2022-01-14 00:43:21 +08:00
zonble
d4772ffa99
Adds notifier UI to notify user Chinese conversion on/off.
2022-01-13 23:38:56 +08:00
zonble
a7e38b5b2d
Fine-tunes tooltip UI.
2022-01-13 22:00:29 +08:00
zonble
366453820d
Adds a tiny tooltop for shift-left/right selections.
2022-01-13 21:47:52 +08:00
zonble
4c1781d970
Renames half-size to half-width.
2022-01-13 19:59:49 +08:00
zonble
9cd2306313
Adds emacs-style hotkeys.
2022-01-13 19:57:08 +08:00
zonble
232a944953
Implements half-size punctuations.
2022-01-13 17:07:22 +08:00
zonble
d590d748f8
Adds UserPhrasesLM for user phrases.
...
Since there is no probability information for users' custom phrases,
they should be stored in a format differs from data.txt. Using the same
format and FastLM to parse user phrases just because of laziness but it
is not the right way.
The pull request adds a new language model class to parse user phrases.
It also update the input method controller to adopt the new user phrase
format.
2022-01-12 16:53:51 +08:00
zonble
f1e56a7e01
Lets McBopomofoLM to accept NULL as the parameter in loadUserPhrases.
2022-01-12 13:17:41 +08:00
zonble
84fc2f068b
Removes unused code and fixes a typo.
2022-01-12 13:16:10 +08:00
zonble
abdf97f652
Adds McBopomofoLM as the facade of three language models.
...
- main language model
- user phrases
- user excluded phrases
2022-01-12 12:26:24 +08:00