summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeng Wu <alexepico@gmail.com>2022-09-26 12:21:15 +0800
committerPeng Wu <alexepico@gmail.com>2022-09-26 12:21:15 +0800
commitb43c17a148e467e7177ee03f146269c7e8de6032 (patch)
treed9066ac4fff902c7dbf70a2960c22c4c4dded320
parente856577e1d77719d6001db79f3149e1f537d0aaf (diff)
downloadibus-libpinyin-b43c17a148e467e7177ee03f146269c7e8de6032.tar.gz
Improve longer candidates
-rw-r--r--src/PYPCloudCandidates.cc4
-rw-r--r--src/PYPEmojiCandidates.cc4
-rw-r--r--src/PYPEnglishCandidates.cc4
-rw-r--r--src/PYPLibPinyinCandidates.cc3
-rw-r--r--src/PYPLuaTriggerCandidates.cc4
5 files changed, 14 insertions, 5 deletions
diff --git a/src/PYPCloudCandidates.cc b/src/PYPCloudCandidates.cc
index 901e431..871b87a 100644
--- a/src/PYPCloudCandidates.cc
+++ b/src/PYPCloudCandidates.cc
@@ -410,7 +410,9 @@ CloudCandidates::processCandidates (std::vector<EnhancedCandidate> & candidates)
/* search the first non-ngram candidate position */
for (pos = candidates.begin (); pos != candidates.end (); ++pos) {
- if (CANDIDATE_NBEST_MATCH != pos->m_candidate_type)
+ if (CANDIDATE_NBEST_MATCH != pos->m_candidate_type &&
+ CANDIDATE_LONGER != pos->m_candidate_type &&
+ CANDIDATE_LONGER_USER != pos->m_candidate_type)
break;
m_candidate_cache.insert (pos->m_display_string);
}
diff --git a/src/PYPEmojiCandidates.cc b/src/PYPEmojiCandidates.cc
index 6587e59..d424a77 100644
--- a/src/PYPEmojiCandidates.cc
+++ b/src/PYPEmojiCandidates.cc
@@ -71,7 +71,9 @@ EmojiCandidates::processCandidates (std::vector<EnhancedCandidate> & candidates)
std::vector<EnhancedCandidate>::iterator pos;
for (pos = candidates.begin (); pos != candidates.end (); ++pos) {
- if (CANDIDATE_NBEST_MATCH != pos->m_candidate_type)
+ if (CANDIDATE_NBEST_MATCH != pos->m_candidate_type &&
+ CANDIDATE_LONGER != pos->m_candidate_type &&
+ CANDIDATE_LONGER_USER != pos->m_candidate_type)
break;
}
diff --git a/src/PYPEnglishCandidates.cc b/src/PYPEnglishCandidates.cc
index a914fed..0da60a9 100644
--- a/src/PYPEnglishCandidates.cc
+++ b/src/PYPEnglishCandidates.cc
@@ -51,7 +51,9 @@ EnglishCandidates::processCandidates (std::vector<EnhancedCandidate> & candidate
std::vector<EnhancedCandidate>::iterator pos;
for (pos = candidates.begin (); pos != candidates.end (); ++pos) {
- if (CANDIDATE_NBEST_MATCH != pos->m_candidate_type)
+ if (CANDIDATE_NBEST_MATCH != pos->m_candidate_type &&
+ CANDIDATE_LONGER != pos->m_candidate_type &&
+ CANDIDATE_LONGER_USER != pos->m_candidate_type)
break;
}
diff --git a/src/PYPLibPinyinCandidates.cc b/src/PYPLibPinyinCandidates.cc
index 3c9fe71..6fdfb49 100644
--- a/src/PYPLibPinyinCandidates.cc
+++ b/src/PYPLibPinyinCandidates.cc
@@ -125,7 +125,8 @@ LibPinyinCandidates::selectCandidate (EnhancedCandidate & enhanced)
return SELECT_CANDIDATE_COMMIT;
}
- if (CANDIDATE_LONGER == enhanced.m_candidate_type) {
+ if (CANDIDATE_LONGER == enhanced.m_candidate_type ||
+ CANDIDATE_LONGER_USER == enhanced.m_candidate_type) {
/* because longer candidate
starts from the beginning of user input. */
pinyin_choose_candidate (instance, 0, candidate);
diff --git a/src/PYPLuaTriggerCandidates.cc b/src/PYPLuaTriggerCandidates.cc
index da866d8..f57314c 100644
--- a/src/PYPLuaTriggerCandidates.cc
+++ b/src/PYPLuaTriggerCandidates.cc
@@ -50,7 +50,9 @@ LuaTriggerCandidates::processCandidates (std::vector<EnhancedCandidate> & candid
std::vector<EnhancedCandidate>::iterator pos;
for (pos = candidates.begin (); pos != candidates.end (); ++pos) {
- if (CANDIDATE_NBEST_MATCH != pos->m_candidate_type)
+ if (CANDIDATE_NBEST_MATCH != pos->m_candidate_type &&
+ CANDIDATE_LONGER != pos->m_candidate_type &&
+ CANDIDATE_LONGER_USER != pos->m_candidate_type)
break;
}