shuhelohelo’s blog

Xamarin.Forms多めです.

Visual Studioの生産性を上げるTips

Visual Studioには生産性を上げる様々な機能,がある.

それをまとめる.

Visual Studioを使った生産性の向上のTips

まずはこちらの動画から. これは.NET Conf 2019のセッションで,Visual Studio 2019の生産性を向上のための機能について紹介されている.

スピーカーの人が楽しそうに話すのでお気に入り.ライブ感満載.

https://m.youtube.com/watch?v=lKtwxz35P5Mm.youtube.com

Live Share

コードFixについて

namespaceとフォルダー名の同期

名前空間をプロジェクトのフォルダー構成に合わせることができる.

以下のように,Class1.csNewFolder内にあるけれども,名前空間VisualStudioTIpsのとき,これをVisualStudioTips.NewFolderにすることができる.

f:id:shuhelohelo:20191116100921p:plain

Switch文をSwitch式に変換できる.

f:id:shuhelohelo:20191116101629p:plain

未インポートな型の補完

usingで名前空間を追加していなくてもインテリセンスによる補完が効く.

f:id:shuhelohelo:20191116101900p:plain

オン・オフできるよ. f:id:shuhelohelo:20191116102233p:plain

パラメータの生成

メソッドAの中でメソッドBを呼び出すというシチュエーションにおいて,メソッドBに必要なパラメータが未定義のときに,そのパラメータをメソッドAがパラメータとして受け取るように変更してくれる.(説明が難しい)

f:id:shuhelohelo:20191116102630p:plain

シングルラインコメントとブロックコメントの切り替え

Ctrl+K, Ctrl+/でシングルラインコメントのオンオフ. Ctrl+K, Ctrl+CCtrl+K, Ctrl+Uでオンオフするのと同じ. Ctrl+Shift+/でブロックコメントのオンオフ

メソッドチェーンの改行

メソッドごとに改行してくれる.便利.

f:id:shuhelohelo:20191116103146p:plain

if ステートメントの分離,統合

&&||を使った複合条件のときに,それをネストされたIf文に分離することができる.

また,ネストされたIf文をまとめることもできる.

ジェネラルサーチ

Ctrl+Qで機能やコードなど色々検索できるよ.

usingの並べ替えが戻ってきたよ

usingの部分で右クリックしてコンテキストメニューを表示させると,「Remove and Sort Usings」というメニューはあるけれど,「Sort」のみはなくなった?以前はあった,と思う.

この「Sort」のみの機能が復活した.

Ctrl+Qで検索ボックスにフォーカスして,「sort using」と入力すると候補に表示される.

f:id:shuhelohelo:20191116104551p:plain

  • binary expression, argument call chaninのラップ

    usingをnamespaceの中に置く,外に置く

コーディングスタイルの設定

Ctrl+Qからcode styleで検索.

f:id:shuhelohelo:20191116105123p:plain

色々設定できる.

エディタの設定とコードのクリーンアップ

.editorconfigで色々設定できる

f:id:shuhelohelo:20191116105844p:plain

ちょっと難しくてわからなかった.

コーディングスタイルや文字コードなどを設定として記述しておくことで、 それが自動的に適用される。

root = true
# All files
[*]
indent_style = space
# Code files
[*.{cs,csx,vb,vbx}]
indent_size = 4
insert_final_newline = true
charset = utf-8-bom

これをプロジェクトの中に含めておいてGitHubで共有すれば、 皆同じ設定で開発を行う事ができる。 便利。

f:id:shuhelohelo:20201207205053p:plain

IntelliCodeについて

コードからよく使うメソッドなどをサジェストしてくれる.

テストエクスプローラ

テスト結果の表示カラムを追加削除したり,並べ替えたりできる.

f:id:shuhelohelo:20191116112354p:plain

Live Unit Testing

コード編集中にテスト結果がリアルタイムで表示される.

f:id:shuhelohelo:20191116112836p:plain

パラメータに対するNullチェックの生成

パラメータに対するNullチェックのコードを生成してくれる.

f:id:shuhelohelo:20191116114428p:plain

クラスやメソッドのコメント

クラスやメソッドの上の業で///とうつとXMLを使ったコメントの雛形が自動生成されるが,ここに情報を記述しておくと,インテリセンスやマウスオーバー時のTipsとして表示されるので便利.

ドキュメントの代わりにもなるので,積極的に利用したい.

    /// <summary>
    /// <c>public static void Main(string[] args
    /// </c><para></para>
    /// <em>emphasis</em><para></para>
    /// <strong>strong</strong>
    /// <para>
    /// <see href="https://bing.com">bing</see>
    /// </para>
    /// <item><description><para>Line</para></description></item>
    /// <item><description><para>Line</para></description></item>
    /// <item><inheritdoc></inheritdoc></item>
    /// </summary>
    public interface Interface1
    {
        public int Method1();
        int Method2(int a, string b, Regex c);
    }

ウェブページへのリンクも書ける.

f:id:shuhelohelo:20191116122006p:plain

クラスからInterfaceへのメンバーの追加

インターフェースの実装クラスでインターフェースに含まれないメソッドを追加したときに,そのメソッドのリファクタリングメニューからインターフェースへのメンバーの追加を行える.

f:id:shuhelohelo:20191116120316p:plain

Visual Studioの便利機能

次はこちら.

先程の動画のスピーカーがこちらでも説明してくれる.

youtu.be

ソースコードはこちら↓. github.com

Track Active Item

これは,エディタの方で表示しているファイルが,ソリューションエクスプローラのほうでもフォーカスされるようにするオプション.

Ctrl+Qから「turn track」と検索すると,候補に表示されるので選択する.

f:id:shuhelohelo:20191116145731p:plain

すると,以下のオプション設定ダイアログが表示されるので,「Track Active Item in Solution Explorer」にチェックをつける.デフォルトではオフになっている.

f:id:shuhelohelo:20191116144058p:plain

すると,以下のようにエディタ側のタブを切り替えるとソリューションエクスプローラー側のフォーカスも連動して切り替わる.

f:id:shuhelohelo:20191116150506g:plain

クリップボードの履歴

Ctrl+Shift+Vクリップボードの履歴が表示されるので,そこから選択できる 最大で9個.

f:id:shuhelohelo:20191116154221p:plain

最後の編集箇所にカーソルを移動する

Ctrl+Shift+BS

最近開いたファイルへ移動

Ctrl+1,Ctrl+R

f:id:shuhelohelo:20191116155453p:plain

マルチカーソルの同時編集

Ctrl+Alt+Clickで複数箇所にカーソルを配置し,その後に文字の入力などの編集操作が,それらのカーソルすべて対して行われる.

f:id:shuhelohelo:20191116160936g:plain

同じシンボルに対してならば,Shift+Alt+.を押すと,同じシンボルが順に選択されていき,それらを一括で編集できる.

f:id:shuhelohelo:20191116161653g:plain

これはXAML,HTMLでも使える.おそらくVisual Studioが同じシンボルと認識するものに対して.

お便利.

↓HTMLの例. f:id:shuhelohelo:20191116162326g:plain

Git機能のショートカット

Ctrl+Qから「git」と入力すると,Git関連の機能が候補に出てくる.

f:id:shuhelohelo:20191116163123p:plain

Team Explorerからやるよりも手間が少ない.

コードスニペットのリスト表示と選択

例えばctorがコンストラクタのコードスニペットの呼び出しのキーワードになっていて,ctorと入力してTab,Tabと押せばコンストラクタの雛形が挿入される.

こういったデフォルトで登録されているコードスニペットは沢山ある.

これを一覧から選択することができる.

Ctrl+K, Ctrl+Xと押すと以下のように選択肢が表示されるので,自分が使いたいスニペットを探してたどっていく.

f:id:shuhelohelo:20191116165500g:plain

コードスニペットを呼び出すキーワードを覚えたら,直接呼び出せば良い.

コードスニペットの作り方

詳しくはこちらを.

docs.microsoft.com

デバッグについて

Visual Studioでのデバッグに絞った内容.

youtu.be

デバッグ中の変数の値を確認する

ピン留めできる

Step into specific

メソッドの奥の階層まで一気にステップインできる. 右クリックから「Step into specific」を選択する.

実行中の行を前後に移動させる

黄色い矢印マークをドラッグアンドドロップして戻したり進めたりすることができる.

あ,行き過ぎた,ってときにグリッと戻せる.

デバッグ時に代表として表示させるプロパティを指定する

以下の属性をクラスにつけておくと,そのプロパティがその変数のトップの階層に表示される.

[DebuggerDisplay("{プロパティ名}")]

つける前: f:id:shuhelohelo:20191116172951p:plain

つけた後: f:id:shuhelohelo:20191116173053p:plain

    [DebuggerDisplay("{Title}")]//これ
    class Book
    {
        public int Id { get; set; }
        public string Title { get; set; }
        public string AuthorName { get; set; }
    }