diff options
author | Peng Wu <alexepico@gmail.com> | 2022-09-23 16:33:49 +0800 |
---|---|---|
committer | Peng Wu <alexepico@gmail.com> | 2022-09-23 16:33:49 +0800 |
commit | abd006be68be04509801ca5ff52d759f9d21c724 (patch) | |
tree | 2eb0a8669670ec1c7b59a4b1040dce15024ccdc4 | |
parent | 98f7e43b3bfe69f6cbcd2e7c2479c8cac503f580 (diff) | |
download | ibus-libpinyin-abd006be68be04509801ca5ff52d759f9d21c724.tar.gz |
Improve Suggestion candidates
-rw-r--r-- | src/PYPEnhancedCandidates.h | 3 | ||||
-rw-r--r-- | src/PYPSuggestionCandidates.cc | 17 | ||||
-rw-r--r-- | src/PYPSuggestionEditor.cc | 3 |
3 files changed, 18 insertions, 5 deletions
diff --git a/src/PYPEnhancedCandidates.h b/src/PYPEnhancedCandidates.h index c418434..e5bc62f 100644 --- a/src/PYPEnhancedCandidates.h +++ b/src/PYPEnhancedCandidates.h @@ -35,10 +35,11 @@ enum CandidateType { CANDIDATE_NORMAL, /* both normal candidate and user candidate */ CANDIDATE_USER, + CANDIDATE_PREDICTED_BIGRAM, + CANDIDATE_PREDICTED_PREFIX, CANDIDATE_TRADITIONAL_CHINESE, CANDIDATE_LUA_TRIGGER, CANDIDATE_LUA_CONVERTER, - CANDIDATE_SUGGESTION, CANDIDATE_CLOUD_INPUT, CANDIDATE_EMOJI, CANDIDATE_ENGLISH diff --git a/src/PYPSuggestionCandidates.cc b/src/PYPSuggestionCandidates.cc index 48fcb45..7f8aa1c 100644 --- a/src/PYPSuggestionCandidates.cc +++ b/src/PYPSuggestionCandidates.cc @@ -39,13 +39,23 @@ SuggestionCandidates::processCandidates (std::vector<EnhancedCandidate> & candid lookup_candidate_type_t type; pinyin_get_candidate_type (instance, candidate, &type); - assert (PREDICTED_CANDIDATE == type); + CandidateType candidate_type; + switch (type) { + case PREDICTED_BIGRAM_CANDIDATE: + candidate_type = CANDIDATE_PREDICTED_BIGRAM; + break; + case PREDICTED_PREFIX_CANDIDATE: + candidate_type = CANDIDATE_PREDICTED_PREFIX; + break; + default: + assert(FALSE); + } const gchar * phrase_string = NULL; pinyin_get_candidate_string (instance, candidate, &phrase_string); EnhancedCandidate enhanced; - enhanced.m_candidate_type = CANDIDATE_SUGGESTION; + enhanced.m_candidate_type = candidate_type; enhanced.m_candidate_id = i; enhanced.m_display_string = phrase_string; @@ -59,7 +69,8 @@ int SuggestionCandidates::selectCandidate (EnhancedCandidate & enhanced) { pinyin_instance_t * instance = m_editor->m_instance; - assert (CANDIDATE_SUGGESTION == enhanced.m_candidate_type); + assert (CANDIDATE_PREDICTED_BIGRAM == enhanced.m_candidate_type || + CANDIDATE_PREDICTED_PREFIX == enhanced.m_candidate_type); guint len = 0; pinyin_get_n_candidate (instance, &len); diff --git a/src/PYPSuggestionEditor.cc b/src/PYPSuggestionEditor.cc index 22e020d..f66231a 100644 --- a/src/PYPSuggestionEditor.cc +++ b/src/PYPSuggestionEditor.cc @@ -341,7 +341,8 @@ int SuggestionEditor::selectCandidateInternal (EnhancedCandidate & candidate) { switch (candidate.m_candidate_type) { - case CANDIDATE_SUGGESTION: + case CANDIDATE_PREDICTED_BIGRAM: + case CANDIDATE_PREDICTED_PREFIX: return m_suggestion_candidates.selectCandidate (candidate); case CANDIDATE_TRADITIONAL_CHINESE: |