バグ報告
プラグインの開発でCodeMirrorの自動補完(https://codemirror.net/demo/complete.html)を実装しています。
補完候補のメニューを表示した後、上下の矢印キーで選択を切り替えようとすると、メニューが閉じてしまい候補が選択できません。
利用環境
- Platform: macOS
- Platform version: Catalina 10.15.3
- App Version: 4.6.0
再現方法
- サンプルコードをクローン
git clone https://github.com/seachicken/example-inkdrop-hint.git
cd example-inkdrop-hint
ipm link --dev
- InkdropをReload
- Noteの任意の行で、Ctrl+Spaceを押す(「a, b」の補完候補が表示される)
- 上下の矢印キーを押す
craftzdog
(Takuya Matsuyama)
2
Seitoさん
こんにちは、プラグインの開発ありがとうございます!
アプリの仕様上、キー操作はすべてコマンドで定義して、keymaps.json
でバインドする必要があります。
それがユーザによるカスタマイズを可能にします。
例えばvimプラグインは以下のように全てのキー操作をコマンドで定義して紐付けています:
同様に、補完候補の選択操作キーもコマンド化する必要があります。
つまり、editor.cm.setOption('extraKeys', ...)
は使わないでください。
関連ドキュメント:
例(vimプラグインから抜粋):
import { CompositeDisposable, Disposable } from 'event-kit'
const disposables = new CompositeDisposable()
const editor = inkdrop.getActiveEditor()
const { cm } = editor
const wrapper = cm.getWrapperElement()
const handlers = {
'your_plugin:show-hint': () => // ...
}
disposables.add(inkdrop.commands.add(wrapper, handlers))
なるほど、コマンドを定義するんですね!
ユーザのカスタマイズ性についても理解できました、ありがとうございます 
1 Like