Commit Graph

446 Commits

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