Skip to content
Permalink
Browse files

한글 합성기 의존시 exact + prefix search

  • Loading branch information...
presto95 committed Oct 6, 2019
1 parent 14923b4 commit b9bb71de40af6769a0906231d3b5fc80bad45811
Showing with 8 additions and 7 deletions.
  1. +5 −5 OSXCore/SearchComposer.swift
  2. +3 −2 OSXCore/SearchPool.swift
@@ -296,7 +296,7 @@ extension SearchComposer {
}
}

// MARK: - SearchComposer 한자 모드 전용 메소드
// MARK: - SearchComposer 한글 합성기 의존시 전용 메소드
private extension SearchComposer {
/// 한자 입력을 위한 후보를 생성할 준비를 수행한다.
@@ -348,9 +348,9 @@ private extension SearchComposer {
candidates.append(contentsOf: exactResultCandidates)

// TODO: 중복 제거 로직 개선
exactResultCandidates.forEach {
if let index = prefixResultCandidates.firstIndex(of: $0) {
prefixResultCandidates.remove(at: index)
exactResultCandidates.forEach { // O(n)
if let index = prefixResultCandidates.firstIndex(of: $0) { // O(n)
prefixResultCandidates.remove(at: index) // O(n)
}
}
candidates.append(contentsOf: prefixResultCandidates)
@@ -362,7 +362,7 @@ private extension SearchComposer {
}
}

// MARK: - SearchComposer 이모지 모드 전용 메소드
// MARK: - SearchComposer 로마자 합성기 의존시 전용 메소드
private extension SearchComposer {
func updateEmojiCandidates() {
@@ -13,7 +13,7 @@ protocol SearchPool {
func candidates(matching: String) -> (candidates: [String], score: Int)
}

/// `HGHanjaTable`을 검색하는 클래스.
/// `HGHanjaTable`을 검색하는 풀을 나타내는 클래스.
final class HanjaTableSearchPool: SearchPool {
enum Method {
case exact
@@ -30,12 +30,13 @@ final class HanjaTableSearchPool: SearchPool {
self.method = method
}

/// 입력할 후보를 검색한다.
/// 키워드를 기준으로 입력할 후보를 검색한다.
///
/// - Parameter keyword: 검색 키워드.
///
/// - Returns: 후보 문자열과 검색 점수로 이루어진 튜플.
func candidates(matching keyword: String) -> (candidates: [String], score: Int) {
// TODO: 각 검색 방법 할당 점수
let score: Int = {
switch method {
case .exact:

0 comments on commit b9bb71d

Please sign in to comment.
You can’t perform that action at this time.