$shibayu36->blog;

クラスター株式会社のソフトウェアエンジニアです。エンジニアリングや読書などについて書いています。

「Visual Studio Code実践ガイド」を読んだ

最近コードを書く時はもっぱらVSCodeを使っていて、拡張とかも書いてみたいなと思い始めていたので、基本知識を付けるために「Visual Studio Code実践ガイド」読んだ。VSCode使い始めたばかりの人には基本的な概念や、便利拡張紹介、簡単なカスタマイズ、拡張開発など網羅的に学べて良い本だと思った。

個人的には特に拡張周りが非常に参考になった。拡張周りは公式ドキュメントを読んでたときにイマイチよく分からないなとなっていたが、この本を読んで開発から公開まで一通り学べたのはありがたかった。テキスト編集、スニペット、リント、カラーテーマそれぞれの拡張の実装サンプルもあるのも今後開発するときの指針になりそうだった。

読書ノート

  • 検索結果のファイル名をマウスオーバー -> xアイコンをクリックでそのファイルが一時的に検索結果から外れる。必要ないファイルを外した後に全て置換で残ったファイルのみ置換できる 733
  • パラメータを含むコマンドを設定する 2231
    • 例) editorScrollにパラメータを与えることで、ページの半分をスクロールする、みたいなことができる
  • 便利そうな拡張 2342
    • Code Spell Checker
    • Visual Studio IntelliCode
    • Path Intelisense
    • Auto Close Tag
    • Bracket Pair Colorizer 2
  • VSCodeを拡張できるAPIが用意された(限られた)箇所をコントリビューションポイントと呼ぶ 4070
    • 例: コマンドに関するもの: commands/menus/keybindings
    • 拡張を書く時は、このコントリビューションポイントをpackage.jsonで指定する
  • package.json中でコントリビューションポイントを指定する 4141
    • contributes
    • activationEvents
  • テキスト編集、スニペット、リント、カラーテーマの拡張のサンプルがあって参考になる 4218
  • 拡張機能は ~/.vscode/extenstionsに置くだけでVSCodeに読み込まれるようになる。手元で確認したいときに便利
$ cd ~/.vscode/extensions
$ git clone https://github.com/74th/vscode-book-markdown-goplay.git
$ cd vscode-book-markdown-goplay
$ npm install
$ npm run compile
  • 拡張機能を公開する前のチェック事項 5093
    • プログラムチェック
      • 外部ファイル参照をするならMac/windows/linuxいずれでも動くようにpathモジュールをつかってるか
      • VSIXファイルを直接インストールしても動作するか
    • Gitにリリースバージョンを示すタグは付けたか
    • .vscodeignoreファイルを適切に作成し、公開してはならないファイルを取り除いたか
    • LICENSEは作ったか
  • 拡張の公開方法 5152
    • vsce packageでvsixを作って、code —install-extension hoge.vsix で手元からインストールできる