Commit Graph

562 Commits

Author SHA1 Message Date
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