わたしのVisual Studio環境 安藤 圭吾 1
私はこんな人
!2
安藤圭吾● 今年で社会人4年目に突入 ● Unity部というコミュニティの副部長 ● ゲーム系よりもWeb寄りの人
ユニティ・テクノロジーズ・ジャパン合同会社● 入社 2013年3月 ● デベロッパーリレーションエンジニア ● みんなのゲーム作成のお手伝い
!8https://visualstudiogallery.msdn.microsoft.com/9ba50f8d-f30c-4e33-ab19-bfd9f56eb817
Claudia IDE
!15https://speakerdeck.com/mayuki/resharperfalseben-qi-womirufalsedesu
ReSharperの本気をみるのです!
!17https://visualstudiogallery.msdn.microsoft.com/EA4AC039-1B5C-4D11-804E-9BEDE2E63ECF/
トライアル版(30日)
Quick-Fix
!19
void Start() { ! var list = new[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; ! foreach (var number in list) { // 剰余。2で割り切れた場合continue. if (number % 2 == 0) continue; ! Debug.Log(number); // 1, 3, 5, 7, 9が表示される } }
Quick-Fix
!20
void Start() { var list = new[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; ! foreach (var number in list.Where(number => number % 2 != 0)) { Debug.Log(number); // 1, 3, 5, 7, 9が表示される } }
Quick-Fix
!21https://www.jetbrains.com/resharper/webhelp60/Code_Analysis__Examples_of_Quick-Fixes.html
Live Template
!22
ReSharperのVisual Studio 2005 コードスニペットに対するアナログな機能として、
"LiveTemplates"があります。 コードスニペットでは、テンプレート省略形をタイプし、 Tabキーを押すとテンプレートを展開されます。 さらにEnterキーか Tabキーを押すと テンプレート変数にナビゲートされます。 しかしLive Templateではコードスニペットよりもさらに賢い動作をします。 ReSharperはコンテキストから推察をして、どの変数、フィールド、型が 関連する複数のテンプレートの中で利用可能かを判断します。 その結果多くの場合自分でタイプをする必要がなく、ただ候補値のリストから 選択するだけで済みます
http://mimori.org/~h/ReSharper/codeTemplate.html
!23
monodevelop-code-template-unityhttps://github.com/anchan828/monodevelop-code-template-unity
!25
Sandcastle Help File Builderhttps://github.com/EWSoftware/SHFB
!26
Sandcastle Help File Builderについて解説しているブログ
http://blog.nextscape.net/research/dotnetenv/sandcastle
!27こういうクラスがあったとすると
using UnityEngine; !namespace SampleNamespace { ! /// <summary> /// サンプルクラス /// </summary> public class NewBehaviourScript1 : MonoBehaviour { /// <summary> /// 最初に一回呼び出されるメソッド /// </summary> public void Start(){} ! /// <summary> /// 毎フレーム呼び出されるメソッド /// </summary> public void Update(){} ! /// <summary> /// 衝突してきた時に呼び出されるメソッド /// </summary> /// <param name="collision">衝突してきたオブジェクト</param> public void OnCollisionEnter(Collision collision) {} } }