KeyHandler // Refactoring "buildAssociatePhraseStateWithKey".

This commit is contained in:
ShikiSuen 2022-04-19 13:46:03 +08:00
parent eafb41aa0c
commit e45ed48ef4
3 changed files with 16 additions and 7 deletions

View File

@ -74,6 +74,7 @@ struct BufferStatePackage
- (BOOL)ifLangModelHasUnigramsForKey:(NSString *)reading;
- (BOOL)isPhoneticReadingBufferEmpty;
- (BOOL)isPrintable:(UniChar)charCode;
- (NSArray<NSString *> *)buildAssociatePhraseArrayWithKey:(NSString *)key;
- (NSArray<NSString *> *)getCandidatesArray;
- (NSInteger)getBuilderCursorIndex;
- (NSInteger)getBuilderLength;

View File

@ -405,23 +405,29 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot";
}
// NON-SWIFTIFIABLE
- (nullable InputState *)buildAssociatePhraseStateWithKey:(NSString *)key useVerticalMode:(BOOL)useVerticalMode
- (NSArray<NSString *> *)buildAssociatePhraseArrayWithKey:(NSString *)key
{
NSMutableArray<NSString *> *array = [NSMutableArray array];
std::string cppKey = std::string(key.UTF8String);
if (_languageModel->hasAssociatedPhrasesForKey(cppKey))
{
std::vector<std::string> phrases = _languageModel->associatedPhrasesForKey(cppKey);
NSMutableArray<NSString *> *array = [NSMutableArray array];
for (auto phrase : phrases)
{
NSString *item = [[NSString alloc] initWithUTF8String:phrase.c_str()];
[array addObject:item];
}
InputStateAssociatedPhrases *associatedPhrases =
[[InputStateAssociatedPhrases alloc] initWithCandidates:array useVerticalMode:useVerticalMode];
return associatedPhrases;
}
return nil;
return array;
}
- (nullable InputState *)buildAssociatePhraseStateWithKey:(NSString *)key useVerticalMode:(BOOL)useVerticalMode
{
NSArray<NSString *> *array = [self buildAssociatePhraseArrayWithKey:key];
if (array == nil || [array count] == 0)
return nil;
else
return [[InputStateAssociatedPhrases alloc] initWithCandidates:array useVerticalMode:useVerticalMode];
}
#pragma mark - 必須用 ObjCpp 處理的部分: Mandarin

View File

@ -63,7 +63,7 @@ import Cocoa
return newState
}
// MARK: -
// MARK: -
func _buildCandidateState(
_ currentState: InputState.NotEmpty,
@ -80,6 +80,8 @@ import Cocoa
return state
}
// MARK: -
// MARK: -
func _handleMarkingState(