キーを押してデフォルトの設定にしておきます。`code`これでテンプレートが生成が完了します。いうウィンドウが開かれます。いうタイトルのコマンドがすでに実装されています。いうタイトルのコマンドがサジェストに表示されると思います。このコマンドの実装を覗いてみます。すると中段あたり下記のように書かれています。コマンドが登録されています。呼び出された際に実行される処理となっています。開き、先ほどと同じ手順で実行してみてください。変わっているのが確認できると思います。駆使してコマンドを実装していきます。いくつか紹介しておきます。ウィンドウを扱う名前空間です。オブジェクトを保持しています。オブジェクトは、カーソルの位置や選択範囲などの編集状況を管理しています。いうところのバッファーのようなものです。オブジェクトにアタッチされています。オブジェクトは、ファイル名や行数などのドキュメントに関する情報を管理しています。オブジェクトにアタッチされる場合があります。同じドキュメントを複数のタブで開いている場合がこれに該当します。オブジェクトの配列です。マルチカーソルに対応しているため、配列となっています。オブジェクトは、カーソルの位置や選択範囲を管理しています。プロパティはカーソルの位置を表しています。間が選択範囲となります。一致している状態で表現されています。コマンドを扱う名前空間です。関数を使用すると、組み込みのコマンドなどの他のコマンドを呼び出すことができます。できることを紹介しつつ、どのように実装をしたのかを紹介していきます。編集して他のキーに割り当てるようにしてください。キーを押している場合と同様に選択しながらカーソル移動されるようになります。キーなどの他のキーに割り当ててください。キーに振り替えています。デフォルトで提供しているカーソル移動系のキーにはすべて対応していますが、人によってはデフォルト以外の別のキーにカーソル移動系のコマンドを割り当てているかもしれません。いる場合には選択系のコマンドを実行させるようにすることができます。いる場合にはページ選択をさせることができます。いる状態が継続されます。コマンドを使用します。抜けるようになります。追加していることに注意してください。}]同様のマナーで、他のコマンドに対するサポートも提供することができます。どのように実装したのかを紹介していきます。モードにとてもよく似ています。場合は、入力モードでキーをタイプすると文字が入力され、ノーマルモードでキーをタイプするとコマンドが実行されます。今回の場合は、通常モードでカーソルを移動すると通常通りにカーソルが移動し、選択モードでカーソルを移動すると選択しながらカーソルが移動するという具合です。サンプルはありませんでした)。側で何をするべきなのかが見えてきます。選択モードにいるかどうかの状態を保持すること。選択モードに入るコマンドと選択モードを抜けるコマンドを提供すること。選択モードにいるかどうかを外部から参照できるようにすること。選択モードにいるかどうかの状態を保持するまず、選択モードにいるかどうかをなんらかのオブジェクトにて保持しなくてはなりません。いう名前のクラスのオブジェクトに保持しています。クラスのオブジェクトのフィールドで保持するように実装をしました。}}選択モードに入るコマンドと選択モードを抜けるコマンドを提供する続いて、選択モードに入るコマンドと選択モードを抜けるコマンドを実装します。クラスの方に、保持している状態を切り替えるメソッドを追加します。方にこれらのメソッドを呼び出すコマンドを実装します。一部を抜粋すると下記のようになります。);}選択モードにいるかどうかを外部から参照できるようにする最後に、選択モードにいるかどうかを外部から参照できるようにします。いうコンテキストをセットします。条件などで参照することができます。これ以外にも、マルチカーソルの対応やタブごとに状態を分離する処理などが必要となりますが、根幹の実装はこれだけになります。簡単に、オリジナルモードを実装することができることができました。エレガントなコーディング体験を得られるようになりました。例としてオリジナルモードの実装方法を紹介しました。オリジナルモードが実装できるようになると、ステートレスなコマンドだけではなく、ステートフルなコマンドも実装できるようになり、実装できる機能の幅が広がります。非常に応用の効くものとなっているので、試してみてはいかがでしょうか。宣伝Supershipグループではプロダクト開発やサービス開発に関わる人材を絶賛募集しております。ご興味がある方は以下リンクよりご確認ください。採用サイト是非ともよろしくお願いいたします。