HEXA BLOG

プログラム

HEXA BLOGプログラム2018.1.15

拡張!

こんにちは。

シュンスケです✨

突然ですが、私はEmacs風バインドが好きです。と言うのも、なるべくキーボードから手を
離さないでコーディングしたいなぁというのが発端で、xyzzyというエディタを使って
暫くコーディングしていたところ、好きになったという次第です❤

純正のEmacsをしっかり使ったことがある訳ではなく、まして、なんでもかんでもEmacs上で
やれちゃうよ、Webページのブラウジングもしちゃうよといった使い方をしたことも無いので、
Emacs派を名乗るにはちょっとおこがましいかなという感じです🐤

さて、バインドの他にもう1つコーディングをする上で無視できないものがあります。
コードの自動補間システムです🔨
単なるシンボルの文字列補間に比べて高機能なものとして、Visual Studioのインテリセンスや、
タグファイルを使った補間があるようです。

この「Emacs風」と「自動補間」の2つを良い感じに使える環境を用意「したい」、
「しようとしている」という方はそこそこ居るのではと思います。
ここにさらに拡張性が加えられると私的には更に嬉しいです👑
という訳で、これから暫く、この事について書きたいと思います。

まず、どんな選択肢があるのか。
そもそも何の言語で何を作るのかにもよりますが、C++やC#で、ゲームエンジンを
使ったり使わなかったりで、コンシューマ系であったりモバイル辺りの開発でも使える
のが望ましいと思っています。なるべく同じ環境で多くの事が出来ると良いなと思いつつも、
Webや組み込みからは遠くて良いかなと考えたときに、思いつく選択肢は以下のような感じです。

1.Visual Studio + EmacsEmulations.vsix
2.Eclipse + Emacs系拡張
3.VS Code + Emacs系拡張
4.Sublime TextやAtomなどのエディタ + Emacs系拡張 + OmniSharp(or タグ系拡張)
5.Emacs + OmniSharp(or タグ系拡張)

現在1の環境を使っていますが、ウィンドウ分割やマーク、改行など、細かな動きにxyzzyとの
差を感じてイマイチ満足出来ない状態です⤵

という訳で、長々と前置きをしましたが、今回はVisual Studioの拡張機能開発に触れてみます。
無ければ作れば良いじゃないか。DIYですね。(2、3、4、5もどこかで試そうと思いますが)
まず感じを掴む為に、メニューに簡単な項目を足してみる程度を行ってみます。

1.環境

自宅のPCで試したので、以下の通りです。
OS:Windows10
VS:Visual Studio Community 2017(Version 15.1)

 

2.SDKのインストール

Visual Studio 2015以降は、インストール時に指定するようで、インストール済みのところに
SDKを入れる場合は、以下のような手順でした。
Visual Studio Installerを起動
Visual Studio Community 2017の「変更」をクリック
開いたウィンドウの項目「他のツールセット」の「Visual Studio 機能拡張の開発」に
チェックを入れた状態でウィンドウ右下の「変更」をクリック

 

3.ソリューションの作成

Visual Studioを起動
メニューのファイル→新規作成→プロジェクト
今回はC#で書こうと思うので、
C#→Extensibility→VSIX Project
ソリューション名は「VSIXTest」

 

4.メニューの追加

プロジェクトを右クリック→追加→新しい項目
Visual C# アイテム→Extensibility→Custom Command
ファイル名は、「CommandTest.cs」

 

5.少し修正

4で追加されたファイルを色々眺めながら調べながら、少し修正してみます。
CommandTestPackage.vsctの59行目、ButtonTextタグ内がメニュー表示名のようなので、変更
また、メニュー選択時のコールバックが
CommandTest.cs内の88行目MenuItemCallbackメソッドなので、
開くメッセージボックスのタイトルとメッセージを変更

 

6.ビルドして実行

実行すると、別のVisual Studioが起動します。
そのメニューのツールを見てみると、ありました!
「世界に挨拶」

選択すると、↓こんな感じ。

なんとなく、拡張機能開発の感じがわかりました。
次回はもう少しバインド周りに寄せていこうと思います。

では🎵

RECRUIT

大阪・東京共にスタッフを募集しています。
特にキャリア採用のプログラマー・アーティストに興味がある方は下のボタンをクリックしてください

RECRUIT SITE 

NEWS