@@ -29,20 +29,17 @@ class UserDict: NSObject, DictProtocol {
2929 private let privateMode : CurrentValueSubject < Bool , Never >
3030 /// プライベートモード時に変換候補にユーザー辞書を無視するかどうか
3131 private let ignoreUserDictInPrivateMode : CurrentValueSubject < Bool , Never >
32- // ユーザー辞書だけでなくすべての辞書から補完候補を検索するか?
33- private let findCompletionFromAllDicts : CurrentValueSubject < Bool , Never >
3432 private var cancellables : Set < AnyCancellable > = [ ]
3533 let saveToUserDict = true
3634
3735 // MARK: NSFilePresenter
3836 let presentedItemURL : URL ?
3937 let presentedItemOperationQueue : OperationQueue = OperationQueue ( )
4038
41- init ( dicts: [ any DictProtocol ] , userDictEntries: [ String : [ Word ] ] ? = nil , privateMode: CurrentValueSubject < Bool , Never > , ignoreUserDictInPrivateMode: CurrentValueSubject < Bool , Never > , findCompletionFromAllDicts : CurrentValueSubject < Bool , Never > , dateYomis: [ DateConversion . Yomi ] , dateConversions: [ DateConversion ] ) throws {
39+ init ( dicts: [ any DictProtocol ] , userDictEntries: [ String : [ Word ] ] ? = nil , privateMode: CurrentValueSubject < Bool , Never > , ignoreUserDictInPrivateMode: CurrentValueSubject < Bool , Never > , dateYomis: [ DateConversion . Yomi ] , dateConversions: [ DateConversion ] ) throws {
4240 self . dicts = dicts
4341 self . privateMode = privateMode
4442 self . ignoreUserDictInPrivateMode = ignoreUserDictInPrivateMode
45- self . findCompletionFromAllDicts = findCompletionFromAllDicts
4643 self . dateYomis = dateYomis
4744 self . dateConversions = dateConversions
4845 dictionariesDirectoryURL = try FileManager . default. url (
@@ -365,20 +362,20 @@ class UserDict: NSObject, DictProtocol {
365362 * asyncにするかも? (skkservとかで便利そう)
366363 * AsyncStreamにするかも?
367364 */
368- func candidatesForCompletion( prefix: String ) -> [ Candidate ] {
365+ func candidatesForCompletion( prefix: String , skkservDict : SKKServDict ? , findFromAllDicts : Bool ) -> [ Candidate ] {
369366 // 1文字のときは全探索するとめちゃくちゃ量が多いので完全一致だけ探す
370367 if prefix. count == 1 {
371- return referDicts ( prefix, option: nil , skkservDict: nil , findFromAllDicts: findCompletionFromAllDicts . value )
368+ return referDicts ( prefix, option: nil , skkservDict: skkservDict , findFromAllDicts: findFromAllDicts )
372369 . map { candidate in
373370 candidate. withOriginal ( Candidate . Original ( midashi: prefix, word: candidate. word) )
374371 }
375372 }
376373 // あとでいろいろ拡張するけどひとまずfindCompletionsの結果を[Candidate]にするだけ
377374 // 別スレッドから実行したいのでひとまずskkserv以外を検索する
378- return findCompletions ( prefix: prefix) . flatMap { midashi in
375+ return findCompletionsDicts ( prefix: prefix, skkservDict : skkservDict , findFromAllDicts : findFromAllDicts ) . flatMap { midashi in
379376 // NOTE: 多すぎても役に立たないだろうと思うのでひとまず先頭100件に制限。設定項目にしてもよさそう
380377 // FIXME: Candidateの配列じゃなくて、(String, Candidate) のように見出し語と変換候補のタプルの配列を返すほうがよさそう
381- referDicts ( midashi, option: nil , skkservDict: nil , findFromAllDicts: findCompletionFromAllDicts . value )
378+ referDicts ( midashi, option: nil , skkservDict: nil , findFromAllDicts: findFromAllDicts )
382379 . prefix ( 100 )
383380 . map { candidate in
384381 candidate. withOriginal ( Candidate . Original ( midashi: midashi, word: candidate. word) )
0 commit comments