拡張Scrapbox入力補完の開始・終了条件を決める
リンクサジェストの開始/終了条件を参考にする
開始
開始
1. 各種拡張Scrapbox入力補完の補完開始条件に一致する
e.g. external-completionの場合は、カーソルが[/]の中にいる
2. 次のいずれか
カーソル行の文字列が変化した
検出方法
/icons/fail.iconMutationObserverで行を監視する
不十分
記法がむき出しになっただけでDOMが変化してしまう
対策
DOMの変更と、実際の文字列の変更の両方をチェックする
もしくは、行の更新日時から判定する
カーソルの座標変化を監視する
.cursorの属性を監視すればいい
編集していない状態でcursorを[/]の外に動かしたときに、補完が終了したと判断することができる
候補確定時の文字列挿入を誤検出しないように工夫する必要がある
文字列挿入後の文字列を予め計算して保持しておけばいいか
補完開始キーを押した
e.g. <C-Space>
終了
以下のいずれか
各種入力補完の補完開始条件から外れた
補完終了キーを押した
e.g. <Esc>
補完候補を確定した
以上の機能をexternal-completion-3/completionObserverに切り出した
#2021-03-08 06:14:24
#2021-02-22