Releases: chewing/libchewing
v0.9.0
What's New in libchewing 0.9.0 (August 11, 2024)
-
Features
- Support two new input modes:
- Fuzzy mode - support prefix search, partial zhuyin search, toneless input.
- Simple mode - like the traditional input method on Windows 95 which does
not perform any intelligent phrasing.
- Allow space key for pagination regardless of space_is_select_key mode.
- Merge DOWN and SPACE key behavior in pagination.
- A new option to disable fullwidth toggle key.
- Workman layout support.
- Load embedded mini dictionary if system dictionaries were not found.
- Automatically load extra dictionaries found in search path
- ${CHEWING_PATH}/dictionary.d/*.dat
- Automatic snapshot selections when the curser is moved.
- Support two new input modes:
-
Developer Features
- BREAKING: Remove language_mode and character_form methods (Rust).
- BREAKING: Remove unused pinyin.tab file
- BREAKING: Remove most unused C code but keep compat C headers.
- Bump minimum supported Rust version to 1.77
- Enable ELF symbol versioning. All existing symbols are marked as version
CHEWING_0.5 and new symbols from this release are marked as CHEWING_0.9. - A new set of configuration API:
- chewing_config_has_option
- chewing_config_get_int
- chewing_config_set_int
- chewing_config_get_str
- chewing_config_set_str
- New API to get runtime library version:
- chewing_version
- chewing_version_major
- chewing_version_minor
- chewing_version_patch
- chewing_version_extra
- New API to acknowledge output buffers:
- chewing_ack
- Define version macros
- CHEWING_VERSION_MAJOR
- CHEWING_VERSION_MINOR
- CHEWING_VERSION_PATCH
-
Bug Fixes
- Separate special handling by pinyin variants (#298)
- Panic when selecting phrases backwards at the end of buffer. (introduced in
v0.8.0)
-
Dictionary
- Default dictionary updates and fixes (#331)
-
Performance
- Optimize K shortest path algorithm to handle long pre-edit buffer. This
allowed us to remove the special DP algorithm and keep only the graph search
based algorithm in conversion.
- Optimize K shortest path algorithm to handle long pre-edit buffer. This
-
Testing
- Add benchmarks for the conversion module
- Add tests for options and default values
- Add test for chewing_config_set_str
- Test chewing_config_set_str with chewing.keyboard_type
- Allow switching keyboard layout in genkeystroke
- Add test for simple engine symbol input
- Support new editor options in the fuzzer.
- Generate test cases from fuzzer input.
-
Miscellaneous Tasks
- Drop outdated ChangeLog
- Add option to turn off tests run
- Use system corrosion if available
- Regenerate chewing.h using latest cbindgen
- Include CTest and use the built-in BUILD_TESTING option
- Manage SQLite dependency with CMake
- Print status about SQLite3 module
- Remove unused test files
- Bump Corrosion to v0.5
- Fix building without using CMake presets
- Force linking chewing_version obj file
- Append
git describe
to version string for unreleased version.
-
New Contributors
- @chenrui333 made their first contribution in #560
- @wusyong made their first contribution in #582
Full Changelog: v0.8.5...v0.9.0
v0.9.0-rc.3
What's New in libchewing 0.9.0-rc.3 (July 28, 2024)
-
Bug fixes
- Add back 0.5.x compat C headers. (introduced in v0.9.0-rc.1)
- Panic when connecting symbol to symbol or symbol to phrase. (introduced in v0.9.0-rc.1)
- Panic when selecting phrases backwards at the end of buffer. (introduced in v0.8.0)
- Panic when autocommit in select mode triggered by the simple engine. (introduced in v0.9.0-rc.2)
-
Testing
- Support new editor options in the fuzzer.
- Generate test cases from fuzzer input.
-
Misc
- Append
git describe
to version string for unreleased version.
- Append
Full Changelog: v0.9.0-rc.2...v0.9.0-rc.3
v0.9.0-rc.2
What's New in libchewing 0.9.0-rc.2 (July 22, 2024)
- Features
- Revert mode switch notifications change.
- Make simple engine compatiable with Plain Zhuyin in ibus-chewing.
- Automatic snapshot selections when the curser is moved.
- Developer Features
- Define version macros
- CHEWING_VERSION_MAJOR
- CHEWING_VERSION_MINOR
- CHEWING_VERSION_PATCH
- Define version macros
Full Changelog: v0.9.0-rc.1...v0.9.0-rc.2
v0.9.0-rc.1
What's New in libchewing 0.9.0-rc.1 (July 16, 2024)
-
Features
- Support two new input modes:
- Fuzzy mode - support prefix search, partial zhuyin search, toneless input.
- Simple mode - like the traditional input method on Windows 95 which does
not perform any intelligent phrasing.
- Allow space key for pagination regardless of space_is_select_key mode.
- Merge DOWN and SPACE key behavior in pagination.
- A new option to disable fullwidth toggle key.
- Workman layout support.
- Load embedded mini dictionary if system dictionaries were not found.
- Show notification about mode switches triggered by input.
- Automatically load extra dictionaries found in search path
- ${CHEWING_PATH}/dictionary.d/*.dat
- Support two new input modes:
-
Developer Features
- BREAKING: Remove language_mode and character_form methods
- BREAKING: Remove unused pinyin.tab file
- BREAKING: Remove most unused C code
- Bump minimum supported Rust version to 1.77
- Enable ELF symbol versioning. All existing symbols are marked as version
CHEWING_0.5 and new symbols from this release are marked as CHEWING_0.9. - A new set of configuration API:
- chewing_config_has_option
- chewing_config_get_int
- chewing_config_set_int
- chewing_config_get_str
- chewing_config_set_str
- New API to get runtime library version:
- chewing_version
- chewing_version_major
- chewing_version_minor
- chewing_version_patch
- chewing_version_extra
- New API to acknowledge output buffers:
- chewing_ack
-
Bug Fixes
- Separate special handling by pinyin variants (#298)
-
Dictionary
- Default dictionary updates and fixes (#331)
-
Performance
- Optimize K shortest path algorithm to handle long pre-edit buffer. This
allowed us to remove the special DP algorithm and keep only the graph search
based algorithm in conversion.
- Optimize K shortest path algorithm to handle long pre-edit buffer. This
-
Testing
- Add benchmarks for the conversion module
- Add tests for options and default values
- Add test for chewing_config_set_str
- Test chewing_config_set_str with chewing.keyboard_type
- Allow switching keyboard layout in genkeystroke
- Add test for simple engine symbol input
-
Miscellaneous Tasks
- Drop outdated ChangeLog
- Add option to turn off tests run
- Use system corrosion if available
- Regenerate chewing.h using latest cbindgen
- Include CTest and use the built-in BUILD_TESTING option
- Manage SQLite dependency with CMake
- Print status about SQLite3 module
- Remove unused test files
- Bump Corrosion to v0.5
- Fix building without using CMake presets
- Force linking chewing_version obj file
-
New Contributors
- @chenrui333 made their first contribution in #560
- @wusyong made their first contribution in #582
Full Changelog: v0.8.5...v0.9.0-rc.1
v0.8.5
What's New in libchewing 0.8.5 (July 8, 2024)
-
Changed
- Bump default Corrosion version to v0.5
-
Bug fixed
Full Changelog: v0.8.4...v0.8.5
v0.8.4
What's New in libchewing 0.8.4 (Jun 1, 2024)
- Bug fixed
- Config options were incorrectly reset after certain operations. (introduced in v0.8.0)
- Incorrect mapping for KB_DVORAK and KB_DVORAK_HSU layouts. (introduced in v0.8.0)
- Installation failure if build with testing off. (introduced in v0.8.3)
Full Changelog: v0.8.3...v0.8.4
v0.8.3
What's New in libchewing 0.8.3 (May 25, 2024)
-
Changed
- Simplified build options on the Windows platform.
- Enabled CTest BUILD_TESTING option to disable tests.
- Default uses system Corrosion if available.
-
Bug fixed
- Fix more wrong Hsu (許氏) keyboard fuzz conversion (ㄍㄧ to ㄐㄧ and ㄍㄩ to ㄐㄩ) (introduced in v0.8.0)
Full Changelog: v0.8.2...v0.8.3
v0.8.2
What's New in libchewing 0.8.2 (May 21, 2024)
- Bug fixed
- Wrong Hsu (許氏) keyboard fuzz conversion (ㄍㄧ to ㄐㄧ and ㄍㄩ to ㄐㄩ) (introduced in v0.8.0)
- Wrong symbol map location when building as a CMake submodule.
Full Changelog: v0.8.1...v0.8.2
v0.8.1
What's New in libchewing 0.8.1 (May 15, 2024)
- Buf fixed
- Fail to build on aarch64 due to type mismatch. (introduced in v0.8.0)
Full Changelog: v0.8.0...v0.8.1
v0.8.0
What's New in libchewing 0.8.0 (May 14, 2024)
BREAKING CHANGE
New dictionary format is not compatible with old tools. Existing user dictionary
will be automatically backed up and migrated however old tools might not be able
to manipulate the dictionary directly.
The chewing-editor
program can still be used to edit user dictionaries. In
this release we also introduced a new chewing-cli
tool to inspect/dump/build
user dictionaries. See chewing-cli(1)
for more details.
This version also closed/fixed many issues. Find the complete list of closed
issues here: https://github.com/chewing/libchewing/milestone/7?closed=1
-
Added
- A new command line tool
chewing-cli
is included in this release. It can
create or inspect dictionary files. - Reintroduce DictionaryMut as a separate trait.
- A new command line tool
-
Changed
- CMake default preset switched to build with rust.
- CMake minimum required version bumped to 3.24.0.
- System dictionary and user dictionary file now uses platform standard paths.
See https://docs.rs/chewing/latest/chewing/path/fn.data_dir.html for
details. - Improved TrieBufDictionary::from ergonomics.
- Rename DictEntries to Entries.
- Ensure all fallible API returns Error.
- Improved algorithm so using Tab key to find alternative phrasing is more
responsive. - Easy symbol input now accepts arbitrary long "symbols". (rust)
- Removed duplicated symbols "●" and "○" from symbols input.
-
Buf fixed
- chewing_cand_CheckDone result was reversed in capi (introduced in v0.7.0)
- Correctly ignore instead of absorb keys when the pre-edit buffer is empty.
(introduced in v0.6.0) - Reset pagination page number when searching for next candidate range.
(introduced in v0.7.0) - chewing_bopomofo_String_static did not return key sequence for pinyin input
mode. (introduced in v0.6.0) - Different chewing_*_static() functions were using one shared global buffer.
(introduced in v0.6.0) - Special symbol selection missed a couple symbols that was in C version.
(introduced in v0.7.0) - Panics when a new selection replaces more than one existing selections.
(introduced in v0.7.0) - Selection created from alternative bopomofo was not considered in
conversion. (introduced in v0.6.0)
-
Removed
- HashMap implemented Dictionary was removed.
-
Documentation
- Clarify the accepted value of
chewing_handle_Default
method.
- Clarify the accepted value of
Full Changelog: v0.7.0...v0.8.0