#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 作成