Visual Studio用のReSharperのようなプラグインを作成しなければならない場合は、どこから始めましょうか?
(各機能については言及していませんが、私はその機能のスケルトンを取得しようとしています)。ReSharperのようなものを作成しなければならない場合、どこから始めましょうか?
答えて
オープンソースの代替手段の1つ、たとえばTytanNETを掘り下げて始めます。明らかに、Resharperの特定の機能に興味があれば、より直接的な選択肢があるかもしれません。
私は確かにReflectorを使ってResharperをリバースエンジニアリングしようとはしませんでした。いいえ、私ではありません。決して。
2007年の初め、JetBrainsの人たちは、ReSharperは30 man-years(これはロシアのフォーラムでのGoogleの翻訳版)です。また、コンパイラーを構築するのには十分ではないと言われています。最も複雑な部分をキャッシュ、ASTトランザクション、ASTコンテキストなどとみなしています。Visual Studioの統合は技術的に最も洗練されたものではありませんでした。大量のドキュメント
これは基本的には:Visual Studioの統合とASTの管理は、ReSharperのスケルトンを得るために実装する最も複雑な部分になります。
30人年ですか?ありがとう! ASTマネジメントとは何ですか? – Blankman
@Blankmanまあ、ReSharperは、ソリューション全体を解析して抽象構文木にします。これは、効率的にメモリに保存する必要があります。さらに、リファクタリングをサポートするために、ASTへの変更は全面的または全面的なやり方で行われなければなりません。さらに、プログラマーが仕事をしている間は、ASTは常に変化しています。これはまた、説明されるべきである。 –
私はそれを信じています。彼らが賢明だったならば、ReSharperはIDEAの古いバージョンに大部分は基づいており、その製品は8年間の非常に積極的な開発を見てきました。 –
おそらく私のツールでどの特定のリファクタリングがサポートされているかを理解することから始めます。 「resharperのようなもの」は、技術的な観点から「どこから始めるか」を知るために少し一般的です。
私が言ったように、私はビジネス要件を理解することを試みることから始めます。そこから、プロジェクトをより小さく、より管理しやすいサブ問題に分解することがより容易になります。
私はReSharperのコードレイアウトとスタイル(私が働いている会社のコーディングガイドラインに従って)に追加の変更を加えるためのプラグインを書くのを楽しみにしていました。非常に簡単なことではありませんが、APIは非常に豊富でドキュメント化されていますが、リフレクターの使用は必須です。
Agent JohnsonやStyleCop for ReSharperなど、既存のプラグインのソースコードを見ることをお勧めします。また、JetBrainsのReSharper Open APIフォーラムで助けを得ることもできます。
編集:明らかに私は読むことができません。あなたがプラグインを意味すると思ったのですが ReSharperの。その場合は、Visual Studio SDKを使い、コードとのやりとりの仕方を学び、ASTを構築するなどの作業から始めます。SDKには多くの例があります。
まだ良い点は、元のポスターはちょうどプラグインで問題を解決して時間を節約することができるかもしれません。 –
ファイル - >新規 - >プロジェクト
その他のプロジェクトの種類 - >拡張 - > Visual Studioのアドイン
- 1. Resharper:コメントが大文字で始まり、ピリオドで終わらなければならないカスタムルール/パターンを作成しようとしています
- 2. 自分のOSカーネルを作るためにどのようなC++を学ばなければならないでしょうか?
- 3. スレッドがプロセスのスタックを使用しなければならない場合はどうなりますか?
- 4. スウィフトの三元派とは、いつでも交換しなければならないのでしょうか?
- 5. Cでのゲームプログラミング、どこから始めましょうか?
- 6. 依存性注入:私はどこから始めなければならないのですか?
- 7. これはどのようなレコードが得られるでしょうか?
- 8. bazelはどこでOSX SDKを探しますか(見つからない場合はどうすればよいでしょうか)?
- 9. これをangular1でせねばならないでしょうか?
- 10. ここでex.classはどのように等しくなければならないのですか?
- 11. もし(isset($ video_url)&httpsだけが見つからない場合はどうすればいいですか?)
- 12. ちょうどプログラミングから始める - 何をすべきかについてかなり気にしない。
- 13. このウェブサイトはどのようなもので作られていますか?
- 14. 繰り返し処理は、私がこのような何かをしなければならない
- 15. ReSharperがソリューションでフォルダを作成しないようにするにはどうすればよいですか?
- 16. どこから始めますか?デルファイのテザリングの例が動作しない
- 17. Androidでこのようなアンケートフォームを達成するにはどうすればよいでしょうか?
- 18. --verboseフラグがオンになっている場合、どうすればわざとなのでしょうか?
- 19. マイグレーションスクリプトを自分で作成しなければならないので、フライウェイはどのような価値を提供していますか?
- 20. いつOSGIのようなプラットフォームを使用し、避けなければならないのですか?
- 21. ARCの下のNSStringプロパティは強くなければならないのでしょうか?
- 22. 「あなたがたぶん「チャット」しなければならないのはどういう意味ですか?
- 23. SpringデータRESTはPATCHのヌルプロパティを更新します(そうでなければならない場合)
- 24. GeneratedMethodAccessor1,2などとは何ですか?なぜそれらが見つからないのでしょうか?
- 25. ブールプログラムは、真でなければならない場合でも、falseを返します。シンプルなプログラム
- 26. java:コーディング時にどのような設計構造を従わなければならないでしょうか
- 27. リンクされたリストは私の脳を曇らせています。私はこれをどのようにしなければならないのですか?
- 28. ジェネリック型のパラメータにどのような型を入れなければならないのですか?
- 29. 私はこのようになり、「レーダー」のようなものを作成しようとしています
- 30. 整数とcharを単一の配列で表現しなければならない場合、Cでこれを行うにはどうすればよいでしょうか?
ええ、右。 ;) –