Visual Studio CodeやVisual Studioは、拡張機能で便利な機能を追加できます。
Market Place便利。
あまりむやみに追加すると動作が重くなるのですが、便利なものを使わない手はないので必要なものを入れています。*1
ここではVisual Studio 2017で私が入れている便利拡張をまとめておきます。
Extensions一覧
それぞれの拡張
Visual Studio IntelliCode - Preview
2018/12/17追記
インテリセンス、コード補完と呼ばれるコード支援機能をさらに支援します。
https://marketplace.visualstudio.com/items?itemName=VisualStudioExptTeam.VSIntelliCode
公式曰く...。
IntelliCode は、使用する可能性が高いものを入力候補一覧の最上位に配置することによって時間を節約できます。 IntelliCode の推奨は、星の獲得数が 100 を上回る、GitHub 上の何千ものオープン ソース プロジェクトに基づいています。 コードのコンテキストを結合すると、入力候補一覧が調整されて共通のプラクティスのレベルが上がります。 IntelliCode はステートメント入力候補に限定されていません。 シグネチャ ヘルプも、コンテキストに合わせて最も可能性が高いオーバーロードを推奨します。 このプレビュー リリースでは、C# を使用している場合、IntelliCode にご使用のコードからパターンを学習させることができるため、独自のユーティリティ クラスやドメイン固有のライブラリ呼び出しなど、オープンソース ドメインにない型の推奨を行うことができます。 詳しくは、以下をご覧ください。
VS2017では、自分のプロジェクトで認識させるので自分の手癖や共有コードの癖が出ます。
たとえば、Unity + UniRxでSubjectOnNext(T)は良く書くところですが、これがトップに来てくれる当りめっちゃ嬉しいです。(他にもありますが分かりやすいでしょう)
追記ここまで
Build Vision
最高というより空気、これなしのビルドは考えられないぐらいには必須拡張と化しています。使ってないビルドはもう考えられません。
ビルドが可視化されてなかったことに気付かされた時の絶望たるや。

これだけMarket Placeに出ていませんが、発行のために動いてくれているので心待ちにしたりフィードバックをどんどん返しましょう。
発行までのPre-releaseはVSIXGalleryで取得できます。
http://vsixgallery.com/extension/837c3c3b-8382-4839-9c9a-807b758a929f/
Git Diff Margin
Git使ってますよね? ソースコードがgit上とどのような変更があったか気になりませんか?エディタ上で変更点が可視化されます。変更があれば視覚上で追えてgit操作前にgitで何を変更するか分かる、最高です。
https://marketplace.visualstudio.com/items?itemName=LaurentKempe.GitDiffMargin
未保存が黄色、追加行が緑、変更が青、削除が赤で表示されています。削除内容も赤い三角から見えます。

Open on GitHub
ソースコードがGitHub上でどのurl? 選択行はurlで何行目? そんなちょっとした、しかしチームでソース共有時に手間を減らしてくれます。
いまだに使っていますが、そろそろ標準であってもいいのでは..。
http://neue.cc/2015/01/14_503.html
https://marketplace.visualstudio.com/items?itemName=neuecc.OpenonGitHub
例えば行を選択した状態で、ブランチなりmasterを選ぶと?

url上ですでに選択されています。便利! (微妙にいつも一行ずれます。)

SwitchStartupProject for VS 2017
Start up Projectって設定面倒じゃないですか?右クリック嫌いだし目に見えてていいと思っています。

この拡張を使うとツールバーからStart up Projectを確認、設定できます。ビルド同様ここにあった方が楽です。
便利じゃないですか?

他にもmulti-project startupとして、複数プロジェクトの同時起動も簡単に設定できます。
VSColorOutput
Visual StudioなぜかデフォルトではOutput (出力) Windowに表示された文字の色を設定できません。エラーなら赤にしたいとかありませんかねぇ?
そんなときにこの拡張をいれると幸せになります。
https://marketplace.visualstudio.com/items?itemName=MikeWard-AnnArbor.VSColorOutput
例えば正常ビルド

例えばエラーが分かりやすくなります。

簡単ですが設定もあります。


Custom Document Well
すべては縦タブです。
https://marketplace.visualstudio.com/items?itemName=VisualStudioProductTeam.CustomDocumentWell

Open UserSecrets
ASP.NET Coreでは、プロジェクト名を右クリックするとMange User Secrets (ユーザーシークレットの管理) メニューが出て、ローカル開発用secrets.jsonをVSで編集しやすくします。
しかし、.NET Core Consoleではこの機能がなく、せっかくMicrosoft.Extensions.Configuration.UserSecrets nugetをいれてUser Secretsを取り扱えるようにしても、VSであつかうのに困ります。
この拡張を使うとそんな苦しみがなくなります。
https://marketplace.visualstudio.com/items?itemName=guitarrapc.OpenUserSecrets
BlackSpace
末尾の余計なスペースをハイライト表示してくれます。設定で保存時に自動的に消すこともできるので便利便利。
https://marketplace.visualstudio.com/items?itemName=vs-publisher-1248728.BlackSpace
GitHub上で余計なスペース見かけると嫌になる人へおすすめ。Hard Tab / Soft Tabが見やすくなるというのもあったり。

LetMeEdit
VS2017では、新csprojフォーマットにおいてVS標準でcsprojの編集メニューが追加されたのでLetMeEditは不要です。ただし旧csprojではunloadなしの編集はサポートされていないのでLetMeEditがいいでしょう。

LetMeEditを使うと、プロジェクトファイルをunloadすることなく編集できるようになります。
VS2015まではEditProjという拡張を使っていましたが、2017対応していません。そんな人はLetMeEditがそのままの使い心地を提供します。
https://marketplace.visualstudio.com/items?itemName=JasonRai.LetMeEdit
unloadって手間だとわかります。ソースや.csprojの変更時に必ずreloadしないと整合性おかしくなりやすいので注意です。(自動的に聞かれます)


PowerMode
楽しいは正義。ただし画面が大きかったりパーティクルを多くすると重いです。
https://marketplace.visualstudio.com/items?itemName=LiamMorrow.PowerMode
画面のゆれを止めたりするとカクツキがへって快適に楽しくなります。わたしはこんな設定。

VS Codeでみんな大好きアレのインスパイアですね。
Fix Mixed Tab
私はソフトタブを使うのですが、まれに直接ファイル編集したときや何かのインポートで入ったファイルはハードタブだったりします。この混在ファイルに対して、untabify (ソフトタブ) かtabify(ハードタブ) を一括適用できる拡張です。
https://marketplace.visualstudio.com/items?itemName=VisualStudioProductTeam.FixMixedTabs

SlowCheetah
以前記事にしたようなことをするには必須のパッケージです。なんというか便利極まりないです。ただ、シンプルなプロジェクト構成ならいらないかな?
http://tech.guitarrapc.com/entry/2015/09/11/152828
https://marketplace.visualstudio.com/items?itemName=vscps.SlowCheetah-XMLTransforms
2018/12/17追記
ASP.NET Coreで紹介されたDIによるコンフィグ構成がサポートされたことで、ビルド時のConfiguration Transformはもう不要な感じもあります。ということで以前よりおススメさげました。(4 -> 2)
追記ここまで
Open Command Line
cmdを開いたり、パスコピーだったりできます。便利。
https://marketplace.visualstudio.com/items?itemName=MadsKristensen.OpenCommandLine
ちなみにこいつのOpen Project Fileはunloadをするので嫌いです。

使わなくなった拡張
以前、https://marketplace.visualstudio.com/items?itemName=VisualStudioProductTeam.ProductivityPowerPack2017を挙げていましたが、VS2017から機能は個別にパッケージ提供されています。そのため、Productivity Power Tool自体は使っておらず個別の機能をインストールしています。
利用している個別パッケージはリストに書いてある、Custom Document Well、Fix Mixed Tabsです。
Productivity Power Tools 2017
様々な「使う機能」が集約されています。
- Visual Studioでタブの位置を横に持っていきたい
- タブの色をプロジェクトごとに変更する
- 空白行をぺちゃんこにしたい
- スクロールマップとソースコードの位置を合わせたい
- Ctrl + Clickで定義をピーク表示
- などなど
何気にVisual Studio Market Place上のいくつかのMicrosoftパッケージはこれに統合されています。

一番うれしいのがHard TabとSoft Tab*2 が混じった時の統一ポップアップです。私はSoft Tab好きなのでUntabifyですねぇ。

まとめ
様々な拡張があります。なにげにVS2015とVS2017で引き継がれていない拡張も多いです。いい機会なので見直してだいぶん減らしました。
ReSharperも実は辞めました。Ctrl + TがVS2017だとCtrl + 1, Ctrl + Tなんですね、今知りました。
*1:VS2017から起動に時間がかかるようになる原因のパッケージを教えてくれたりします。
*2:https://stackoverflow.com/questions/26350689/what-are-hard-and-soft-tabs
