Skip to content

Commit

Permalink
fix #104 使用enter键选词则不自动添加空格
Browse files Browse the repository at this point in the history
  • Loading branch information
dongyuwei committed Sep 14, 2022
1 parent 343a118 commit 31a2839
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 2 deletions.
6 changes: 5 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
5. 支持按拼音来输出对应英文。如输入`suanfa`,输入法会候选词中会显示 `algorithm`
6. 支持按英文单词的模糊音来输入。 如输入 `cerrage` 或者 `kerrage` 可以得到 `courage` 候选词,也可以输入 `aosome` 或者 `ausome` 来得到 `awesome` 候选词。
7. 按键盘右侧`shift` 键可以在智能英语输入模式与传统英语输入模式间切换。
8. 选词方式:数字键 1~9 及 `Enter` 回车键和 `Space` 空格键均可选词提交。默认会自动附加一个空格在单词后面,可以在配置页面关闭自动附加空格功能。
8. 选词方式:数字键 1~9 及 `Enter` 回车键和 `Space` 空格键均可选词提交。`Space` 空格键选词默认会自动附加一个空格在单词后面,可以在配置页面关闭自动附加空格功能`Enter` 回车键选词则不会附加空格

# 下载与安装

Expand Down Expand Up @@ -105,6 +105,10 @@ make install ## we can use marisa-build marisa-lookup marisa-reverse-lookup mari
6. [MDCDamerauLevenshtein](https://github.com/modocache/MDCDamerauLevenshtein),配合 talisman 的 phonex 算法,在音似词中按 Damerau Levenshtein 编辑距离筛选最接近的候选词。
7. [鼠鬚管 squirrel 输入法](https://github.com/rime/squirrel) 哈利路亚输入法安装包 pkg 的制作 copy/参考了 squirrel 的实现。

## 贡献代码

提交 PR 之前请执行 `sh format-code.sh` 格式化代码。

## 问题反馈,意见和建议

请提交问题单到 https://github.com/dongyuwei/hallelujahIM/issues
Expand Down
22 changes: 21 additions & 1 deletion src/InputController.mm
Original file line number Diff line number Diff line change
Expand Up @@ -81,14 +81,22 @@ - (BOOL)onKeyEvent:(NSEvent *)event client:(id)sender {
return NO;
}

if (keyCode == KEY_RETURN || keyCode == KEY_SPACE) {
if (keyCode == KEY_SPACE) {
if (hasBufferedText) {
[self commitComposition:sender];
return YES;
}
return NO;
}

if (keyCode == KEY_RETURN) {
if (hasBufferedText) {
[self commitCompositionWithEnter:sender];
return YES;
}
return NO;
}

if (keyCode == KEY_ESC) {
[self cancelComposition];
[sender insertText:@""];
Expand Down Expand Up @@ -208,6 +216,18 @@ - (void)commitComposition:(id)sender {
[self reset];
}

- (void)commitCompositionWithEnter:(id)sender {
NSString *text = [self composedBuffer];

if (text == nil || [text length] == 0) {
text = [self originalBuffer];
}

[sender insertText:text replacementRange:NSMakeRange(NSNotFound, NSNotFound)];

[self reset];
}

- (void)reset {
[self setComposedBuffer:@""];
[self setOriginalBuffer:@""];
Expand Down

0 comments on commit 31a2839

Please sign in to comment.