連載
» 2018年02月27日 05時00分 公開

Dev Basics/Keyword:Power Commands for Visual Studio

Power CommandsはVSのIDEをより便利に、より使いやすいものにしてくれる機能を詰め合わせた拡張機能だ。

[かわさきしんじ,Insider.NET編集部]
「Dev Basics/Keyword」のインデックス

連載目次

 Power Commands for Visual Studio(以下、Power Commands)は、Visual Studio(以下、VS)のIDEにさまざまな機能を追加する拡張機能。以前はProductivity Power Toolsに含まれていた。VSの[拡張機能と更新プログラム]ダイアログなどからインストール可能。

[拡張機能と更新プログラム]ダイアログからPower Commandsをインストールしているところ [拡張機能と更新プログラム]ダイアログからPower Commandsをインストールしているところ

Power Commandsに含まれている機能

 Power Commandsには以下のような機能が含まれている(一部)。多くのものはソリューションエクスプローラーのコンテキストメニューで対応する項目(ソリューション/プロジェクト/個々の項目)を右クリックしたときに表示されるコンテキストメニューから利用する。本稿ではそのうちの幾つかを紹介する。

  • Format document on save:ファイル保存時に、タブ/スペースなどの書式設定を行うようにする(デフォルトで無効)
  • Remove and Sort Usings on save:ファイル保存時に、不要なusing宣言を取り除き、残ったものを並べ替えるようにする(デフォルトで無効)
  • Clear All Panes:「[出力]ウィンドウの全てのペーン([デバッグ][ビルド]など)に表示されている出力結果を一度にまとめてクリアできる」ボタンを追加
  • Copy Path:ソリューションエクスプローラー内で「選択したソリューション/プロジェクト/フォルダ/ファイルのパスをコピー」する
  • Email CodeSnippet:エディタ画面で「エディタ内で選択したコード部分を利用して電子メールを作成」する
  • Insert Guid Attribute:エディタ画面で「現在カーソルがあるクラスに対して、Guid属性を付加」する
  • Collapse Projects:ソリューションエクスプローラー内で「選択した個々のプロジェクト、あるいはソリューションに含まれる全てのプロジェクトを折りたたんで表示」する
  • Copy/Paste Class:ソリューションエクスプローラー内で「選択したクラスをコピー&ペースト」する(1ファイルで複数のクラスを定義していると表示されないようだ)
  • Copy/Paste References:ソリューションエクスプローラー内で「あるプロジェクトで参照しているアセンブリやプロジェクトの内容をコピー/ペースト」する
  • Copy As Project Reference:ソリューションエクスプローラー内で「選択したプロジェクトをプロジェクト参照としてコピー&ペースト」する
  • Edit Project File:ソリューションエクスプローラーから一度の操作で「現在選択しているプロジェクトのプロジェクトファイル(.csprojなど)を編集」する
  • Open Containing Folder:ソリューションエクスプローラーから「選択した項目(ファイル)を含んでいるフォルダを開く」のに利用
  • Open Command Prompt:ソリューションエクスプローラーから「選択した項目を含んでいるフォルダをカレントディレクトリとしてコマンドプロンプトを開く」のに利用
  • Remove and Sort Usings:ソリューションエクスプローラーから「選択したソリューション/プロジェクトに対して、不要なusing宣言を取り除き、残ったものの並べ替え」を行う
  • Clear Recent File List:VSの[ファイル]メニューの[最近使ったファイル]項目で「最近使用したファイルの一覧から指定したファイルを選択的にクリア」できるようにする
  • Clear Recent Project List:VSの[ファイル]メニューの[最近使ったプロジェクトとソリューション]項目で「最近使用したプロジェクトとソリューションの一覧から指定したものを選択的にクリア」できるようにする
  • Recently Closed Documents:VSの[ファイル]メニューから「最近閉じたファイルを再び開きカーソル位置を復帰」できるようにする

 この他にも幾つかの機能がVS MarketplaceのPower Commands紹介ページには掲載されているが、筆者がVS 2017で動作を確認したものだけを上では列挙してある。興味ある方は前述のページを参照してほしい。

 Power Commandsが提供する機能の多くは、標準状態のVSでもマウスを何度かクリックすれば行えるものだが、それをより簡単な手順で行えるようにし、VSをより使いやすいものにしてくれる。

 例えば、何らかの事情でプロジェクトファイル(.csprojファイル)を編集したくなったとしよう。これを行うには幾つかの方法がある。

  • VS以外のエディタでプロジェクトファイルを開いて編集、保存し、プロジェクトを再度読み込む
  • ソリューションエクスプローラーで該当プロジェクトをアンロードしてから、そのプロジェクトを右クリックして、コンテキストメニューから[編集 XXX.csproj]などを選択し、VS内でプロジェクトファイルを編集、保存した後にプロジェクトを再度読み込む

 前者の場合、Windowsエクスプローラーでプロジェクトフォルダを開いて(そのためには、ソリューションエクスプローラーでプロジェクトを右クリックして、コンテキストメニューから[エクスプローラーでフォルダーを開く]を選択する必要があるだろう)、エディタでプロジェクトファイルを開いて……という面倒くさい操作が必要になる。

 後者の場合、ソリューションエクスプローラーでまずプロジェクトをアンロードしてから、プロジェクトファイルの編集に進むことになるが、これにはソリューションエクスプローラーでの操作(プロジェクトを右クリックして、コンテキストメニューから該当する項目を選択)が2回必要になる。

 Power Commandsには「Edit Project File」機能があり、これを利用すると、後者の「プロジェクトをアンロードしてから、プロジェクトファイルの編集に進む」手順を一度の操作で行える。実際にはソリューションエクスプローラーでプロジェクトファイルを編集したいプロジェクトを右クリックし、コンテキストメニューから[Power Commands]−[Edit Project File]を選択するだけだ。

「Edit Project File」機能を利用して、一度の操作でプロジェクトファイルを編集 「Edit Project File」機能を利用して、一度の操作でプロジェクトファイルを編集

 編集後にプロジェクトを再読み込みしなければならないのは同じだし、省略できるのはほんの一手間ではあるが、あるとうれしい機能といえる。

 また、ソリューションにクラスライブラリプロジェクトがある場合、そのクラスライブラリプロジェクトへの参照を、別プロジェクトに追加するには、[参照マネージャー]ダイアログを表示して、そこから該当のクラスライブラリプロジェクトを選択するという手順を取るのが一般的だ。

皆さんおなじみの[参照マネージャー] 皆さんおなじみの[参照マネージャー]

 そのためには、ソリューションエクスプローラーで参照元のプロジェクトの[参照]ノードを右クリックして、コンテキストメニューから[参照の追加]を選択し……といった面倒な手順を踏む必要がある。

 これに対して、Power Commandsの「Copy As Project Reference」機能を使うと、プロジェクト参照の追加をソリューションエクスプローラー内部で完結させられる。

参照先のプロジェクトを右クリックして、コンテキストメニューから[Power Commands]−[Copy As Project Reference]を選択
参照先のプロジェクトを右クリックして、コンテキストメニューから[Power Commands]−[Copy As Project Reference]を選択
参照元のプロジェクトの[参照]ノードを右クリックして、コンテキストメニューから[Paste Reference]を選択すれば、プロジェクト参照の追加が完了する
参照元のプロジェクトの[参照]ノードを右クリックして、コンテキストメニューから[Paste Reference]を選択すれば、プロジェクト参照の追加が完了する

「Copy As Project Reference」機能を利用したプロジェクト参照の追加


 とても簡単な操作でプロジェクト参照を追加できるのだが、筆者が試したところでは.NET StandardベースのPCL(ポータブルクラスライブラリ)については[Copy As Project Reference]がコンテキストメニューに表示されなかったのが惜しまれる点といえる。

 読者の中には「何でこんなものが?」と不思議に思うものもあるかもしれない。例えば、「Open Containing Folder」機能がそうだ。ソリューションエクスプローラーでいろいろと項目を右クリックしてみると分かるが、実はWindowsエクスプローラーを表示するためのメニュー項目が表示されるのは、ソリューションやプロジェクト、プロパティなどのノードを右クリックしたときだけとなっている。そのため、取りあえず目に付いた項目(C#ソースファイルなど)を右クリックするだけでも、Windowsエクスプローラーを開けるようにしたのが、この機能といえる。

 これまでに見てきたように、Power Commandsが提供する機能の多くは、ソリューションエクスプローラーにあるさまざまな項目を右クリックしたときに表示されるコンテキストメニューに含まれるようになっている。幾つかの機能は[Power Commands]項目にまとめられているが、直接アクセスできると便利なものについてはコンテキストメニューにそのまま機能が表示されるようになっているようだ。

 それ以外にも、[ファイル]メニューを拡張するものや、有効化することでソースコードの書式設定を自動的に行ってくれるもの、エディタから利用するものなどがある。実際の動作については、実際にPower Commandsをインストールして確認していただきたい。

 また、多くの機能はデフォルトで有効化されているが、「Format document on save」など、明示的に有効化しなければならないものもある。各機能の有効/無効は[オプション]ダイアログの[Productivity Power Tools]以下で設定できる(冒頭で述べたように、Power Commandsは以前にはProductivity Power Toolsに含まれていたため)。

Power Commandsが提供する各機能の有効/無効を設定する画面 Power Commandsが提供する各機能の有効/無効を設定する画面


 Power CommandsはVSのIDEをより便利に、より使いやすいものにしてくれる機能を詰め合わせた拡張機能だ。VSのIDEを利用する際に「面倒くさいな」と思うことがあれば、ぜひともインストールして使ってみよう。日々の作業がより簡単に行えるようになるかもしれない。

「Dev Basics/Keyword」のインデックス

Dev Basics/Keyword

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。