diff --git a/src/rime/candidate.h b/src/rime/candidate.h index 8e60f53bbc..d184f07584 100644 --- a/src/rime/candidate.h +++ b/src/rime/candidate.h @@ -88,16 +88,17 @@ class ShadowCandidate : public Candidate { ShadowCandidate(const an& item, const string& type, const string& text = string(), - const string& comment = string()) + const string& comment = string(), + const bool inherit_comment = true) : Candidate(type, item->start(), item->end(), item->quality()), text_(text), comment_(comment), - item_(item) {} + item_(item), inherit_comment_(inherit_comment) {} const string& text() const { return text_.empty() ? item_->text() : text_; } string comment() const { - return comment_.empty() ? item_->comment() : comment_; + return inherit_comment_ && comment_.empty() ? item_->comment() : comment_; } string preedit() const { return item_->preedit(); @@ -109,6 +110,7 @@ class ShadowCandidate : public Candidate { string text_; string comment_; an item_; + bool inherit_comment_; }; class UniquifiedCandidate : public Candidate { diff --git a/src/rime/gear/simplifier.cc b/src/rime/gear/simplifier.cc index feb7f50b7d..9e233396e1 100644 --- a/src/rime/gear/simplifier.cc +++ b/src/rime/gear/simplifier.cc @@ -108,6 +108,7 @@ Simplifier::Simplifier(const Ticket& ticket) : Filter(ticket), (tips == "char") ? kTipsChar : kTipsNone; } config->GetBool(name_space_ + "/show_in_comment", &show_in_comment_); + config->GetBool(name_space_ + "/inherit_comment", &inherit_comment_); comment_formatter_.Load(config->GetList(name_space_ + "/comment_format")); config->GetBool(name_space_ + "/random", &random_); config->GetString(name_space_ + "/option_name", &option_name_); @@ -225,7 +226,8 @@ void Simplifier::PushBack(const an& original, original, "simplified", text, - tips)); + tips, + inherit_comment_)); } bool Simplifier::Convert(const an& original, diff --git a/src/rime/gear/simplifier.h b/src/rime/gear/simplifier.h index f70344e78f..5de255e299 100644 --- a/src/rime/gear/simplifier.h +++ b/src/rime/gear/simplifier.h @@ -46,6 +46,7 @@ class Simplifier : public Filter, TagMatching { string opencc_config_; set excluded_types_; bool show_in_comment_ = false; + bool inherit_comment_ = true; Projection comment_formatter_; bool random_ = false; };