1.8.5 (2023-02-05)
1.8.4 (2023-01-30)
1.8.3 (2023-01-25)
1.8.2 (2023-01-25)
1.8.1 (2023-01-25)
1.8.0 (2023-01-25)
- algo, dict: add an extra set of parenthesis to std::min ... (f66d330)
- charset_filter: Update
is_extended_cjk
to compatible with Unicode 15 (946e852) - chord_composer: first key missing from raw input (33d85ad)
- chord_composer: invisible placeholder char prepended to output (0ec7a2d)
- ci: download and extract boost (200e3ec)
- ci: install Rime plugins' dependencies (7677dae)
- ci: no hardcoded boost version in ci scripts (3ae72a3)
- dict_compiler: shrink .reverse.bin file to fit after build (2af37e0)
- reverse_lookup_dictionary: writing data to overflow buffer (46e3066), closes #456
- setup: avoid glog log macros conflict with macros of Windows (24e1612)
- fix missing control paths issue (87e4c73)
- qualify std::exp after including (bc589fd), closes #462 #476
- ci: update ci script for windows (0358a21)
- dictionary: had unsorted chunks after the previous chunk ended (dd6af3d), closes #507
- editor:
back_syllable
should reopen selected words (a3fdad8) - replace bintry mirror with jfrog (a1203fc)
- api: get_state_label returns the state label for UI display (8f9e9c7), closes #447
- ci: add GitHub action ci support (56e9d2a)
- ci: add pull request ci (94bb5d5)
- ci: add tag release ci (aafe5a3)
- context: allow composing with zero input (8e2826a)
- key_binder: single select a radio group option (5e8aca2)
- key_binder: toggle the switch defined at index
toggle: '@n'
(6ca7803), closes #554 - navigator,selector: vertical navigation (d79f6b3), closes #543
- plugins: support plugin specs in slug@branch format (7d11455)
- selector: handle repeated key until release (8d93e9f)
- add windows ci job (14ee47a)
- delete selected candidate (#557) (43023e1)
- half/full-shape labels for more characters (f2c7e40), closes #594
- simplifier: can be configured to return empty comment (#541) (2368034)
1.7.3 (2021-02-11)
- memory: possibly dereferencing null pointer (1c2644d), closes #441
- plugins: buffer overflow in plugin lotem/librime-octagram (b0b435b), closes rime/squirrel#512
1.7.2 (2021-02-07)
- chord_composer: should clear raw input after committing text (79b34ab)
1.7.1 (2021-02-06)
- chord_composer: press Return key to commit raw key sequence (2b25861)
1.7.0 (2021-01-17)
- chord_composer: more safely handle the placeholder ZWSP (025d9fb)
- cmake: use full paths defined by GNUInstallDirs (bb8c263), closes #424
- opencc: update submodule to fix #425 (3fa1571)
- script_translator: always_show_comments also applies to phrases (440a97c), closes #272 #419
- table_translator: index out of bound access in string (ff7acdc)
- chareset_filter: add CJK Compatibility Ideographs in is_extended_cjk() (3cb1128), closes #305
- setup: find and load external RIME plugins as shared libs #431 (b2abd09)
1.6.1 (2020-09-21)
- rime_api.cc: dangling pointer returned from RimeGetSharedDataDir (78abaa8)
1.6.0 (2020-09-20)
- ascii_composer: do not comsume Shift key release (debc2c0)
- ascii_composer: first read ascii_composer/good_old_caps_lock from schema config (3fc56c4)
- chord_composer: commit raw input with uppercase letters (cc983d5)
- CMakeLists.txt: ensure paths in pkgconfig file are absolute (0e96e51)
- CMakeLists.txt: would not use signals v1 due to a typo (6662a28), closes #225
- custom_settings: accept "*.schema" as config id (604da0b)
- dict: issues with user db recovery (0f3d0df)
- dict_compiler: build prism with loaded syllabary when not rebuilding primary table (93fe827)
- plugins/CMakeLists.txt: avoid rime_library linking to itself via rime_plugins_deps (fe744db)
- rime_api.cc: check struct has member of non-pointer type (090dfa4)
- rime_api.cc: using unchecked fields introduced an ABI breakage (62bbead), closes /github.com/rime/librime/pull/328#pullrequestreview-335125464
- rime_test: set data directories to working directory using rime::SetupDeployer API (7c08a90)
- simplifier: opencc::DictEntry::Values() type change in opencc 1.1.0 (beae5b1), closes #367
- user_db: pointer cast error caused by multiple inheritance (2ed780b)
- use official emoji 12.0 data (#304) (75a60dc)
- api: implement capnproto api (873f648)
- api: include candidate labels in proto message (aae7a0c)
- charset_filter: support charset options with emoji (#293) (943c95b)
- charset_filter: support CJK Unified Ideographs Extension G (#393) (0a1573d)
- chord_composer: support chording with Shift keys (94cf479)
- chord_composer: use Control, Alt, Shift to input chord (f3a2ad0)
- dictionary: packs extends the dictionary with extra binary table files (930074c)
- key_binder: bind key to a key sequence (3b5dbf6), closes #301
- logging: setup min log level, log dir and set file mode to log files (90839b0)
- selector: support 4 combinations of horizontal/vertical text orientation and stacked/linear candidate list layout (c498f71)
- selector: support vertical UI (dbb35c6)
- switcher: enable schema in cases where conditions are met (217c72b)
- tools/rime_proto_console: demo for proto api (d88ef9f)
- poet: optimize for performance in making sentences (~40% faster) (0853465)
1.5.3 (2019-06-22)
- cmake, xcode.mk: find optional dependency icu, while building xcode/release-with-icu target [skip appveyor] (17a80f8)
- single_char_filter: broken in librime 1.5.2 (6948a62)
- appveyor: build variant "rime-with-plugins" for tagged commits [skip travis] (eef8c30)
- travis-ci: build variant "rime-with-plugins" for tagged commits [skip appveyor] (cf11c27)
- travis-ci: deploy artifacts for macOS to GitHub releases [skip appveyor] (3f03784)
1.5.2 (2019-06-17)
- user_dictionary, contextual_translation: fix user phrase quality; order contextual suggestions by type (69d5c32)
1.5.1 (2019-06-16)
- user_dictionary: make user phrases comparable in weight to system words (982f69d)
1.5.0 (2019-06-06)
- ci: update build script (84a1a1b)
- ci: use submodules in AppVeyor CI build script (7b515b4)
- cmake: libboost Windows XP compatibility fix (#270) (fecfe39), closes rime/weasel#337
- CMakeLists.txt: install header files in all platforms (821d563)
- CMakeLists.txt: set "-std=c++11" in CMAKE_CXX_FLAGS (5d8a836)
- config/plugins.h: memory leak caused by non-virtual destructor (316a659), closes #259
- deploy: treat schema dependencies as optional; do not report errors if missing (ff3d5e9)
- engine: schema doesn't match the one used by switcher (e41bb63), closes #269
- rime_levers_api.h: customize_bool() misused
bool
type (42bacc5) - syllabifier: enable_completion not working (2714131), closes #343
- table_translator: null pointer exception when dict entries are filtered (77438a9)
- test: compile error in unit test (7076d9e)
- travis-install.sh: working directory (97220ce)
- appveyor: install RIME_PLUGINS [skip travis] (c7ce66f)
- CMakeList.txt: add plugin build support (#257) (dfa341b)
- contextual_translation: weight and re-order phrases by context (2390da3)
- dict: specify vocabulary db name in dict settings (dcdc301)
- grammar: compare homophones/homographs in sentence (9248a6b)
- install-plugins.sh: git-clone or update plugins (70483b4)
- poet: find best sentence candidates (b3f4005)
- rime_api: get candidate list from index (c587900)
- translator: contextual suggestions in partially selected sentence (12a7501)
- translator: look at preceding text when making sentence (6ae34de)
- travis-ci: install plugins specified in envvar RIME_PLUGINS (c857639)
- dictionary: refactor DictEntryIterator and do partial sort (0258c7f)
- rime_levers_api.h: in signature of C API function
customize_bool()
, change typebool
toBool
(alias ofint
).
Impact: the changed function is not in use by any first party code, known to be in use by osfans/trime.
1.4.0 (2019-01-16)
- config: user_config should not fall back to shared data (68c8a34), closes #271
- SymlinkingPrebuiltDictionaries: remove dangling symlinks (5ad333d), closes #241
- SymlinkingPrebuiltDictionaries: remove dangling symlinks (f8e4ebf), closes #241
1.3.2 (2018-11-12)
- CMakeLists.txt: do not link binaries when building static library (99573e3)
- CMakeLists.txt: do not require boost::signals, which will be deprecated in Boost 1.69 (8a9ef3b), closes #225
- config_compiler: ambiguous operator overload with cmake option ENABLE_LOGGING=OFF (b86b647), closes #211
- config_compiler: support creating list in-place by __patch and __merge (0784eb0)
- table_translator: enable encoding uniquified commit history (74e31bc)
- language: shared user dictionary per language (Closes #184) (#214) (9f774e7)
- always_show_comments option (#220) (19cea07)
1.3.1 (2018-04-01)
- config_file_update: clean up deprecated user copy (#193) (8d8d2e6)
- thirdparty/src/leveldb: do not link to snappy library (6f6056a)
- CMakeLists.txt, build.bat: install header files (public API) (06c9e86)
- config_compiler: "/" mistaken as path separator in merged map key (#192) (831ffba), closes #190
- ConfigFileUpdate: no need to create user build if shared build is up-to-date (cafd5c4)
- SchemaUpdate: read compiled schema from shared build if there is no user build (45a04dd)
- simplifier: fix typo (9e1114e), closes #183
- user_db: unwanted implicit instantiation of UserDbFormat template (3cbc9cb), closes #188
- release tag: deprecating tag name prefix 'rime-' in favor of semver 'X.Y.Z'
- release tag: After 1.3.0 release, we'll no longer be creating tags in the format 'rime-X.Y.Z'. Downstream packagers please change automated scripts accordingly.
- config_compiler: linking failure on blocking root node of a dependency resource (ecf3397)
- table_translator not making sentence if table entry is hidden by charset filter. (77eb12e)
- appveyor.install.bat: switch to a more stable download server for libboost (bcc4d10)
- appveyor.yml: archive header files (c8b1e67)
- ascii_composer: support key binding Shift+space in ascii mode (7077389)
- build.bat: fix build errors with VS2015 build tools (ec940c6)
- calculus, recognizer: memory leak due to unchecked regex error (19ddc1e), closes #171
- chord_composer: allow editor to define BackSpace key behavior (7f41f65)
- chord_composer: letters with modifier keys should not be committed by a following enter key (aab5eb8)
- ci: call cmake under /usr/local with sudo by passing $PATH environment variable (a0e6d2f)
- cmake: fix build break for mingw (939893c)
- config: auto save modified config data; fixes #144 (2736f4b)
- config: treat "@" as map key rather than list index (a1df9c5)
- config_compiler: duplicate PendingChild dependencies happen from multiple commands on the same node (25c28f8)
- config_compiler: enforce dependency priorities (69a6f3e)
- config_compiler: null value should not overwrite a normal key in a merged tree (4ecae44)
- config_compiler: template operator overload had compile error with NDK (71817a0)
- config/build_info_plugin: referenced but unavailable resources should also be recorded (cd46f7a)
- ConfigFileUpdate: should succeed if shared copy does not exist (8a3e25c)
- custom_settings: fall back to $shared_data_dir/build when loading config (caf8ebb)
- custom_settings: load built settings from $user_data_dir/build directory (463dc09)
- deployment_tasks: symbols.yaml is no longer a build target (f920e4f)
- dict_compiler: prism should load compiled schema (c2fd0cf), closes #176
- key_event: KeySequence::repr() prefer unescaped punctuation characters (aa43e5e)
- levers: update deployment tasks for copy-free resource resolution (1f86413)
- Makefile: make install-debug; do return error code on mac (1177142)
- rime_api: use user_config_open() to access user.yaml (4e4a491)
- rime_console: not showing switcher's context (632cf4b)
- schema: create a "schema" component that opens Config by schema_id (555f990)
- simplifier: fix crash if no opencc file (091cb9d)
- simplifier: tips option for show_in_comment simplifier (e7bb757)
- uniquifier: half of the duplicate candidates remain after dedup [Closes #114] (2ab76bc)
- build.bat: customize build settings via environment variables (#178) (1678b75)
- chord_composer: accept escaped chording keys (79a32b2)
- chord_composer: support chording with function keys (48424d3)
- config: add config compiler plugin that includes default:/menu into schema (b51dda8)
- config: best effort resolution for circurlar dependencies (2e52d54)
- config: build config files if source files changed (0d79712)
- config: config compiler plugins that port legacy features to the new YAML syntax (a7d253e)
- config: config_builder saves output to $rime_user_dir/build/ (e596155)
- config: references to optional config resources, ending with "?" (14ec858)
- config: save __build_info in compiled config (45a7337)
- config: separate out config_builder and user_config components (9e9493b)
- config: support append and merge syntax (04dcf42)
- customizer: disable saving patched config files (88f5a0c)
- detect_modifications: quick test based on last write time of files (285fbcc)
- dict: no conditional compilation on arm (85b945f)
- dict: relocate binary files to $user_data_dir/build (bc66a47)
- dict: use resource resolver to find dictionary files (8ea08b3)
- add property notifier (fa7b5a5)
- resource_resolver: add class and unit test (03ee8b4)
- resource_resolver: fallback root path (02151da)
- translator: add history_translator (#115) (ae13354)
- rime_api.h: add
RIME_MODULE_LIST
,RIME_REGISTER_MODULE_GROUP
. - Makefile: add make targets
thirdparty/*
to build individual libraries. - legacy/src/legacy_module.cc: plugin module
rime-legacy
for GPL code, providing componentlegacy_userdb
for user dictionary upgrade. - src/setup.cc: define module groups
"default"
and"deployer"
, to avoid naming a list of built-bin modules inRimeTraits::modules
. - test/table_test.cc: fix random segment faults when run shuffled.
- thirdparty/src/leveldb: new dependency LevelDB, replacing Kyoto Cabinet.
- dict/level_db: userdb implementation based on LevelDB, replacing treeDb.
- dict/tree_db: moved to
legacy/src/
. - dict/user_db: refactored and modularized to ease adding implementations.
- gear/cjk_minifier: support CJK Extension E.
- gear/memory: save cached phrases as soon as the next composition begins.
- gear/recognizer: match space iff set
recognizer/use_space: true
. - gear/simplifier: catch and log OpenCC exceptions when loading.
- gear/single_char_filter: bring single character candidates to the front.
- gear/simplifier: adapt to OpenCC 1.0 API.
- thirdparty/src/opencc: update OpenCC to v1.0.2 (incompatible with v0.4).
- lever/deployment_tasks: update and rename task
user_dict_upgrade
.
- rime_api: add API functions to access complex structures in config; add API to get the raw input and cursor position, or to select a candidate.
- config: support references to list elements in key paths.
eg.
schema_list/@0/schema
is the id of the first schema in schema list. - switcher: enable folding IME options in the switcher menu.
- dict_compiler: also detect changes in essay when updating a dictionary; support updating prism without the source file of the dictionary.
- preset_vocabulary: load
essay.txt
instead ofessay.kct
. - reverse_lookup_dictionary: adopt a new file format with 50% space saving.
- table: add support for a new binary format with 20% space saving; fix alignment on ARM.
- ascii_composer: do not toggle IME states when long pressing
Shift
key; support discarding unfinished input when switching to ASCII mode. - affix_segmentor: fix issues with selecting a partial-match candidate.
- chord_composer: commit raw input composed with original key strokes.
- cjk_minifier: a filter to hide characters in CJK extension set, works
with
script_translator
. - navigator: do not use
BackSpace
to revert selecting a candidate but to edit the input after moving the cursor left or right. - punctuator: support
ascii_punct
option for switching between Chinese and Western (ASCII) punctuations. - speller: auto-select candidates by pattern matching against the code; fix issues to cooperate with punctuator.
- CMakeLists.txt: add options
ENABLE_LOGGING
andBOOST_USE_CXX11
; introduce a new dependency:libmarisa
. - cmake/FindYamlCpp.cmake: check the availability of the new (v0.5) API.
- sample: the directory containing a sample plug-in module.
- tools/rime_patch.cc: a command line tool to create patches.
- thirdparty: include source code of third-party libraries to ease building librime on Windows and Mac.
- new build dependency: compiler with C++11 support. tested with GCC 4.8.2, Apple LLVM version 5.0, MSVC 12 (2013).
- encoder: disable warnings for phrase encode failures in log output; limit the number of results in encoding a phrase with multiple solutions.
- punctuator: fixed a bug in matching nested "pairs of 'symbols'".
- speller: better support for auto-committing, allowing users of table based input schema to omit explicitly selecting candidates in many cases.
- schema_list_translator: option for static schema list order.
- table_translator: fixed the range of CJK-D in charset filter.
-
rime_api: version 1.0 breaks ABI compatiblility.
the minimum changes in code required to migrate from rime 0.9 api is to initialize
RimeTraits
with eitherRIME_STRUCT
orRIME_STRUCT_INIT
macro.while source code compatibility is largely maintained with the exception of the aforementioned
RimeTraits
structure, rime 1.0 introduces a version controlledRimeApi
structure which provides all the api functions. -
module: suppport adding modules; modularize
gears
andlevers
. -
ticket: used to instantiate compnents and to associate the instance with a name space in the configuration.
-
encoder: encode new phrases for
table_translator
andscript_translator
using different rules. -
affix_segmentor: strip optional prefix and suffix from a code segment.
-
reverse_lookup_filter: lookup candidate text for code in a specified dictonary.
-
shape: add full-shape support.
-
key_binder: switch input schemata and toggle options with hotkeys.
-
switcher: list input schemata ordered by recency; support radio options.
-
tsv: fix reading user dict snapshot files with DOS line endings.
-
entry_collector: support custom order of table columns in
*.dict.yaml
. -
CMakeLists.txt: add options
BUILD_TEST
andBUILD_SEPARATE_LIBS
.
- config: update yaml-cpp to version 0.5 (with new API); emit prettier yaml.
- deployer: introduce a work thread for ordinary background tasks.
- algo/calculus:
fuzz
calculation, to create lower quality spellings. - dict/dict_compiler: importing external table files into
*.dict.yaml
. - dict/entry_collector: support
# no comment
directive in*.dict.yaml
. - dict/table_db:
tabledb
andstabledb
to support custom phrase. - dict/user_db: implement
plain_userdb
, in plain text files. - dict/user_dictionary: recover damaged userdb in work thread.
- gear/ascii_composer: fix unexpected mode switching with Caps Lock.
- gear/editor: delete previous syllable with
Control+BackSpace
. - gear/*_translator: support multiple translator instances in a engine.
- gear/script_translator: rename
r10n_translator
toscript_translator
. - lever/user_dict_manager: create snapshots in plain userdb format.
- rime_deployer: with command line option
--compile
, dump table/prism contents into text files while compiling a dictionary.
- ascii_composer: support customizing Caps Lock behavior.
- speller: support auto-selecting unique candidates.
add options
speller/use_space
andspeller/finals
for bopomofo. - punctuator: display half-shape, full-shape labels.
support committing a phrase with a trailing space character.
support inputting special characters with mnemonics such as
/ts
. - user_dictionary: fix abnormal records introduced by a bug in merging.
- prism, table: avoid creating / loading incomplete dictionary files.
- context: clear transient options (whose names start with
_
) and properties when loading a different schema.chord_composer
sets_chord_typing
so that the input method program would know that a chord-typing schema is in use. - deployment_tasks.cc(BackupConfigFiles::Run): while synching user data, backup user created / modified YAML files.
- deployer.cc(Deployer::JoinMaintenanceThread): fix a boost-related crash.
- ascii_composer: support changing conversion mode with Caps Lock. fixed Control + letter key in temporary ascii mode. pressing Command/Super + Shift shouldn't toggle ascii mode.
- user_dictionary(UserDictionary::FetchTickCount): tick was reset to zero when I/O error is encountered, messing up order of user dict entries.
- user_dict_manager(UserDictManager::Restore): used to favor imported entries too much while merging snapshots.
- rime_deployer: manipulate user's schema list with command line options
--add-schema
,--set-active-schema
- rime_dict_manager: add command line option
--sync
- rime_api.h (RimeSyncUserData): add API function to start a data synching task in maintenance thread.
- rime_api.h (RimeSetNotificationHandler): setup a callback function to receive notifcations from librime.
- rime_api.h (RimeGetProperty, RimeSetProperty): add API functions to access session specific string properties.
- config: support subscript, assignment operators and simplified value accessors.
- user_db: optimize
user_db
for space efficiency; avoid blocking user input when the database file needs repair. - user_dictionary: add transaction support.
- memory: cancel memorizing newly committed phrases that has been
immediately erased with
BackSpace
key. - navigator: move caret left by syllable in phonetic input schemas.
- express_editor: fix problem memorizing phrases committed with return key.
- table_translator: add option
translator/enable_sentence
. - reverse_lookup_translator: a reverse lookup segment can be suffixed by a delimiter. phonetic abbreviations now come after completion results in a mixed input scenario.
- new dependency: 'google-glog'.
- CMakeLists.txt: fix x64 build.
- table_translator: add user dictionary.
- deployment_tasks: automatically build schema dependencies.
- logging: adopt google-glog.
- brise: install data files from a separate package.
- new API: accessing schema list.
- new API: enabling/disabling soft cursor in preedit string.
- chord_composer: combine multiple keys to compose a syllable at once.
- configuration: global
page_size
setting. - API: extend the API to support inline mode.
- table_translator: add option to filter candidates by character set.
- user_dictionary: automatic recovery for corrupted databases.
- user_dictionary: fixed a bug that was responsible for missing user phrases.
- rime_deployer: a utility program to prepare Rime's workspace.
- rime_dict_manager: a utility program to import/export user dictionaries.
- librime: include
brise
, a collection of preset schemata in the package. - new schema: Middle Chinese Phonetic Transcription.
- new schema: IPA input method in X-SAMPA.
- Revised API.