C#エディタ
なにはともあれ、スクリーンショットをごらんください。
左がバニラ、右が拡張後です。
- SemanticColorizer
- Viasfora
2つのVisualStudio拡張でVisualStudioをカラフルにできます。
ただカラフルになって楽しむだけでなく、
セマンティックに色分けをすることで、コードの理解にも一役かってくれます。
呼び出す時にしばしば間違う
ローカル変数・フィールド・プロパティ
普通のメソッド・静的メソッド・拡張メソッド
の区別ができます。
しばしば議論になるfieldに"_"を付けるかべきかは
この機能でセマンティックに判別出来るので不要だと思います。
Expression-Bodiedで書かれたメソッドと読み取り専用プロパティは()の有無でしか区別できませんが、色がはっきり違うと分かりやすいです。
Rainbow Braces
これはViasforaの機能ですが、色から対応する括弧が区別できます。
余分な括弧の背景色が強調されています。
XAMLエディタ
XAMLエディタもカラフルにできます。
Closeタグは正直なくてもいいと思っているので、背景色に近くしてしまいました。
Bindingは大事なので目立つ色に。
導入方法
SemanticColorizer - Visual Studio Marketplace
Viasfora - Visual Studio Marketplace
2つのVisualStudio拡張をインストールします。
ツール>オプション>環境>フォントおよび色>で色を設定します。
関係ありそうな設定と調べた限りの解説です。
設定名 | 解説 | コード例 |
---|---|---|
Viasfora Flow Control Keyword | コードフロー関係 | if, return |
Viasfora XML Closing Tag | XML(XAML)のCloseタグ | **Grid**> |
Viasfora XML Prefix Closing | XML(XAML)のCloseタグのプレフィックス | **local**:~> |
Semantic Constructor | 不明 | |
Semantic Enum Field | 列挙体値 | Color.Black |
Semantic Extension Method | 拡張メソッド | .Select(x => |
Semantic Field | フィールド | privateField(上スクリーンショット) |
Semantic Local | ローカル変数 | local(上スクリーンショット) |
Semantic Namespace | 名前空間 | using System; |
Semantic Normal Method | 通常メソッド | InitializeComponent(); |
Semantic Normal Type | 不明 | |
Semantic Parameter | メソッドの引数やラムダ式の一字変数 | static void Main(string[] args) |
Semantic Property | プロパティ | Property(上スクリーンショット) |
Semantic Special Type | 不明 | |
Semantic Static Method | 静的メソッド | Console.WriteLine() |
Semantic Type Parameter | 不明 |
めんどうだったらSemanticColorizerのページに設定ファイルがあります。
上のスクリーンショットの色は自前で調整しました。
注意点
PrivateとPubulicで色の区別はできません。
また公式ページではコンストラクタの色は別になっており、設定にもあるのですが、
私の環境では普通のメソッドの色が適用されてしまいます。
Blendを使用した際にVSの設定が変になることがありました。
拡張メソッドは強制的にイタリック体になります。力技ですが、イタリック体の無いFontを指定することで回避することもできます。
VisualStudio15.7不具合(2018/05/14 追記)
VSの15.7以降では一部に不具合が発生するようです。
semantic-colorizer Ver 1.3.0で解決しました。
環境
VisualStudio2015
VisualStudio2017
.NET Framework 4.6
C#6
フォントはFira Code Light
Visual Studio 2022版
Visual Studio 2022版を書きました。SemanticColorizerは使用しなくなります。