rksoftware

Visual Studio とか C# とかが好きです

コードに基づく IntelliCode(IntelliCode models based on your code)を試す

コードに基づく IntelliCode(IntelliCode models based on your code)は、コードを学習して、IndelliSence でいい感じの(例えば良く使っているメンバーを)おススメしてくれる夢の機能です。
f:id:rksoftware:20190407190110j:plain
文字列 "" に対するおススメで、これまでにない ★ マークがついています。これが、IntelliCode お勧めのナイスなメンバーということです。
プログラマが使いたいだろうメンバーが上位に表示されるのでとても高い生産性でコードが書ける、という代物です。

■ 拡張機能のインストール

利用するにはまず、拡張機能をインストールします。
メニューの 拡張機能 > 拡張機能の管理 を選択します。
オンライン を選択、右上の検索ボックスに「IntelliCode」。
f:id:rksoftware:20190407194407j:plain
ダウンロード からインストールします。Visual Studio 再起動が必要になります。

■ コードを学習する

Visual Studio でコードを学習したいソリューションを開きます。
メニューの 表示 > その他のウィンドウ > IntelliCode Model Management を選択します。

f:id:rksoftware:20190407194512j:plain

マイコードでトレーニング ボタンでコードを学習します。

f:id:rksoftware:20190407194727j:plain

今回は試しに、次の GitHub 上のコードを学習してみました。
f:id:rksoftware:20190407194820j:plain

.cs のファイル数:108
.cs ファイルの総行数:3175

という少し小さめのコードで学習には 3~40秒 程度かかりました。

■ 学習前後のおススメ

↓学習前
f:id:rksoftware:20190407190110j:plain

↓学習後
f:id:rksoftware:20190407194638j:plain
学習後は ToLower メソッドがなくなり Substring メソッドがお勧めに追加されているのが確認できます。
素晴らしいですね。

■ 大きなソリューションで学習を試みる

.cs のファイル数:541
.cs ファイルの総行数:404,786

というリポジトリ ( Pleasanter ) で試してみました。

3時間経ってまだ学習が終了しません。ダメなのでしょうか...?

追記:6時間後くらいにキャンセルして再トレーニングしたら1分程度で完了しました。

■ メンバーと共有する

学習結果をメンバーと共有する場合は、共有したいトレーニング結果の 共有モデル をボタンをクリック。共有する URL がクリップボードに入ります。これを共有したい相手に伝えます。
f:id:rksoftware:20190407200530j:plain
黄色い帯で注意事項が出ていますが、リンクの URL はソースコードと同じように外部に漏れないように気をつけろ、とのことです。
GitHub などでもともとソースが公開されていれば「ソースコードと同じに」ということなので、それほど神経質にならなくてもいいのでしょうか?

モデルを追加する(共有される)方では モデルを追加 をクリックします。URL を入力する欄が表示されるので 共有モデル のクリックで得た URL を入力します。
f:id:rksoftware:20190407200601j:plain
簡単ですね。
※自分で自分と共有しても何も起きないようです。他人と共有した見た目は少し待ってください。ぼっちなので。

参考

※英語ページが開きます
https://docs.microsoft.com/ja-jp/visualstudio/intellicode/custom-model-faq