#VariousComplements https://github.com/tadashi-aikawa/obsidian-various-complements-plugin/issues/24 ## 概要 - これができれば `Overwrite duplicated existed phrase`は不要になるはず.. ## まずは英語から ### `onTrigger` - start - `aa ii bb`の`a`部分 - end - 現在のカーソル - query - `aa ii bb`のような複数単語を原文のママ送る ### `getSuggestion` 変更不要。その先で以下のように複数のsuggestionsを取得してマージしてる。 - `bb`にマッチする候補 - `ii bb`にマッチする候補 - `aa ii bb`にマッチする候補 ### `selectSuggestion` `editor.replaceRange`が肝。 - endは気にしなくていい - startは==候補がいくつの単語の組み合わせにヒットしたか==を元に決めなければならない - `ii bb`にマッチしたのであればstartは`i`の位置 - `word`に含めるのはアリ. `matchedAlias`のように - `xxxOffset` を `debounceGetSuggestions`で付与してあげるのはありかも - `maxNumberOfSuggestions`で数が制限されたあとだから負荷も軽い ### queryをどう解析すればいいか `aa ii bb`について、以下のような感じにしたい。 ```json [ {word: "aa ii bb", offset: 0}, {word: "ii bb", offset: 3}, {word: "bb", offset: 6}, ] ``` - `Tokenizer.recursiveTokenize`で実装 - `overwriteDuplicatedExistedPhrase`も消した --- **💽Change log** - #2022/01/15 作成