vscodeのcustom editorに関する記事が少なかったので日本語での資料が少ない部分を中心に解説していきます。
custom editorとは?
一応上記に説明がありますが、簡単に言うと自分で作成したeditor画面を埋め込むためのapiです。webviewを用いて作成します。(chromium)
イメージとしてはこんな感じです。
注意点としてはextention
-webview
間はweb workerのように通信を行わなければならないということです。つまり通常通りyo code
によって生成されるエントリポイントに加えて、webview用のエントリポイントが必要となります。
上記のサンプルで、src/entention.ts
に加えてmedia/
以下にjsが入っていることからも見て取れます。
実際の開発ではwebview
側のjsは別のリポジトリに分けてしまったほうがやりやすいでしょう。大きくなりそうであれば普通にwebpackやtypescriptなどを導入しても良いかと思います。
custom editorとcustom text editor
エディタは2種類あり、サンプルでは両者の実装があります。基本的にはバイナリファイルはcustom editor
、テキストファイルはcustom text editor
を使用しておけば間違いありません。custom text editor
の場合、ユーザーの判断でビルドインのテキストエディタに切り替えることも可能です。
やらなくちゃいけないこと
大きく分けると3つあって
- extentionでの
vscode.Custom(Text)EditorProvider
の実装 webview
の実装package.json
への登録
です。特にpackage.json
でcontributes.customEditors
の登録を忘れるととeditor自体起動しないので注意して下さい。
デバッグについて
webview
でのjsについてもデバッグを行うことは可能です。extentionを起動し、custom editorが読み込めたらCtrl+Shift+Alt+P
のタスク一覧からDeveloper: Open Webview Developer Tools
を開くことでデバッガを起動させることができます。ベースはchromiumなのでDeveloperツールもそのままです笑