Commit Graph

997 Commits

Author SHA1 Message Date
ShikiSuen e499437f2c LMMgr // Lazy-reload UserPhrasesData when writing phrases.
- Make loadUserPhrasesData() more precise.
2022-12-17 15:14:22 +08:00
ShikiSuen 4d03773b1a CtlClientListMgr // Move callAlert() to CocoaExtension. 2022-12-17 15:14:22 +08:00
ShikiSuen bf4f3a22fb InputHandler // Implement Ctrl+Shift+Command+Enter feature. 2022-12-17 15:14:22 +08:00
ShikiSuen 63d56d8132 Repo // Enforce NSApp.activate() instead. 2022-12-17 15:14:22 +08:00
ShikiSuen 94105ccc9b PrefUI // Remove a button useless since this version. 2022-12-17 15:14:22 +08:00
ShikiSuen 5c4962c1c3 Repo // Update CNS data last-checked timestamp to 20221201. 2022-12-17 15:14:22 +08:00
ShikiSuen 82f7b2477a SessionCtl // Do currentLM.insertTemporaryData() when necessary. 2022-12-17 15:14:22 +08:00
ShikiSuen 5a23c63cfb SessionCtl // Apply updateUnigramData(). 2022-12-17 15:14:22 +08:00
ShikiSuen 3cc7972613 InputHandler // Add updateUnigramData(). 2022-12-17 15:14:22 +08:00
ShikiSuen d870d5ad2a InputHandler // Expose generateStateOfCandidates(). 2022-12-17 15:14:22 +08:00
ShikiSuen 326b22b35a SessionCtl // Improve the handling of isVerticalTyping(). 2022-12-17 15:14:22 +08:00
ShikiSuen 0e98eb0d2c SessionCtl // Add isServingIMEItself().
- Also monitoring activateServer() in console.
2022-12-17 15:14:22 +08:00
ShikiSuen 1d593b490f SessionCtl // Add candidatePairRightClicked(). 2022-12-17 15:14:22 +08:00
ShikiSuen dd964b3c40 SessionCtl // +isCandidateContextMenuEnabled(). 2022-12-17 15:14:22 +08:00
ShikiSuen 58bcea2507 SessionCtl // Add certain details among vCLog outputs. 2022-12-17 15:14:22 +08:00
ShikiSuen 197b6d69fd SessionCtl // Reorder contents of inputMode.didSet().
- See the updated comments for reasons.
2022-12-17 15:14:22 +08:00
ShikiSuen 5a2b93bbe2 i18n // Fix: Successful in -> Succeeded in. 2022-12-17 15:14:22 +08:00
ShikiSuen 681a704ea4 AppDelegate // Boost memory limiter to 512MB. 2022-12-17 15:14:22 +08:00
ShikiSuen 15188f0eed LMInstantiator // Stop duplicating LMCassette. 2022-12-17 15:14:22 +08:00
ShikiSuen 383a3dd658 Repo // Differentiate the colors among post-marking tooltips. 2022-12-17 15:14:22 +08:00
ShikiSuen 6ff42a8dbc InputHandler // Specify display durations for tooltips. 2022-12-17 15:14:22 +08:00
ShikiSuen 1fe0442042 SessionCtl // Bind the tooltip display duration property. 2022-12-17 15:14:22 +08:00
ShikiSuen 401b79a831 IMEState // Add tooltip duration property. 2022-12-17 15:14:22 +08:00
ShikiSuen 1f7be00263 Repo // Enforcing file naming convention. 2022-12-17 15:14:22 +08:00
ShikiSuen b8d6a828ba SessionCtl // Nil the inputHandler for inactive sessions. 2022-12-17 15:14:22 +08:00
ShikiSuen 65462f4ad0 SessionCtl // Nil the candidateUI for inactive sessions.
- We don't nil the IMKCandidates on deinit() in order to avoid EXC_BAD_ACCESS error.
2022-12-17 15:14:22 +08:00
ShikiSuen e313bda323 PrefUI // Add a UI toggle for phrase replacement mode. 2022-12-17 15:14:22 +08:00
ShikiSuen 7e57eb74c1 InputHandler // Allow committing composer / calligrapher contents.
- Requiring that the compositor is empty.
2022-12-17 15:14:22 +08:00
ShikiSuen 6f579fafd8 SessionCtl // Add isCandidateState(). 2022-12-17 15:14:22 +08:00
ShikiSuen 0b2a046885 SessionCtl // ctlCandidateCurrent -> candidateUI. 2022-12-17 15:14:22 +08:00
ShikiSuen 06e984b6f9 SessionCtl // Enforce forceComposerCleanup() if necessary. 2022-12-17 15:14:22 +08:00
ShikiSuen 850a48b883 SessionCtl // Tweak resetInputHandler(). 2022-12-17 15:14:22 +08:00
ShikiSuen 8043bd683c InputHandler // Add sansReading() to generateStateOfInputting(). 2022-12-17 15:14:22 +08:00
ShikiSuen 496264f108 InputHandler // Add isCompositorEmpty(). 2022-12-17 15:14:22 +08:00
ShikiSuen 9fa7fff61a SessionCtl // Bind shareAlphanumericalModeStatusAcrossClients(). 2022-12-17 15:14:22 +08:00
ShikiSuen e71f9ea2a3 PrefUI // Add shareAlphanumericalModeStatusAcrossClients(). 2022-12-17 15:14:22 +08:00
ShikiSuen 951cca4956 PrefMgr // Add shareAlphanumericalModeStatusAcrossClients(). 2022-12-17 15:14:22 +08:00
ShikiSuen a0aa85a672 InputHandler // Prompt if succeeded in handling a marked phrase. 2022-12-17 15:14:22 +08:00
ShikiSuen d432f36bc5 InputHandler // Stop breaking composition buffer in certain cases. 2022-12-17 15:14:22 +08:00
ShikiSuen 1057a3fe82 SessionCtl // Use an alternative way to keep IMKCandidates' visibility.
- We have no other way to solve the excessive-memory-usage problem without completely removing the instance container.
2022-12-17 15:14:22 +08:00
ShikiSuen 337cf84c8b SessionCtl // Use NSMutableOrderedSet in lieu of Swift.Set. 2022-12-17 15:14:22 +08:00
ShikiSuen fe41d16762 InputHandler // Comment fix. 2022-12-17 15:14:22 +08:00
ShikiSuen 89dd798771 SessionCtl // Check memory usage on activateServer(). 2022-12-17 15:14:22 +08:00
ShikiSuen 38713d4aa9 AppDelegate // Add checkMemoryUsage(). 2022-12-17 15:14:22 +08:00
ShikiSuen 49ba507c8d AppDelegate // Reconstruction. 2022-12-17 15:14:22 +08:00
ShikiSuen dca93cb6f0 PrefUI & PrefWindow // Stop force-unwrapping AppDelegate. 2022-12-17 15:14:22 +08:00
ShikiSuen bd9a5c6c45 SessionCtl // Move some tasks from setValue() to activateServer(). 2022-12-17 15:14:22 +08:00
ShikiSuen 11edfbddfb SessionCtl // Do clearInlineDisplay() in commitComposition(). 2022-12-17 15:14:22 +08:00
ShikiSuen 8216497382 SessionCtl // Remove duplicated commissions on deactivation. 2022-12-17 15:14:22 +08:00
ShikiSuen d475973f4d SessionCtl // Fix state correction in handle(event:). 2022-12-17 15:14:22 +08:00
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