2

the core part of the bachelor thesis which I am writing right now is a plugin for a C# IDE that offers a few refactorings (it comes to more than simple refactorings but I want to keep it simple for the moment).

I've always been working with Visual Studio so far. However, I've heard that their AST access is rather uncomfortable. Alternatives are MonoDevelop and SharpDevelop. Another way to work with Visual Studios AST would be to access it via a custom ReSharper Plugin.

Does anyone of you have experience in writing Plugins for any of those target applications? What do you think? I appreciate every advice and disadvice.

Thanks, TH

4

4 に答える 4

2

MonoDevelopまたはSharpDevelopを使用する利点は、これらがオープンソースであるため、ASTに完全にアクセスできることです。必要に応じて、コアにアクセスして変更を加えることができます。もう1つの利点は、100%マネージコードであるため、開発とデバッグがはるかに簡単になることです。さらに、コア開発者を把握して詳細な質問をすることができる可能性が高くなります。

MonoDevelopを使用する場合は、既存のリファクタリングアドインに直接リファクタリングを実装することをお勧めします。より多くのリファクタリング機能が欲しいです:)

新しいASTとMonoC#パーサーに基づくパーサーに切り替えたため、コードベースはマスターで少し混乱していますが、リファクタリングはまだ移植されていません。メーリングリストまたはIRCにアクセスして、より具体的な質問をすることをお勧めします。そうすれば、より具体的な指針を得ることができます。

于 2011-01-04T23:24:24.063 に答える
1

VS 2010は、MEFを使用するプラグインに対して非常に優れたネイティブサポートを備えていると思います。ガイドは次のとおりです:http: //msdn.microsoft.com/en-us/library/dd885242.aspx

また、Devexpress DXCoreを使用することもできます。これは、CodeRushExpressでは無料です。

于 2011-01-04T11:27:55.533 に答える
1

リファクタリングに最適なASTアクセスは、以前のNRefactoryバージョン(SharpDevelopとMonoDevelopの両方で使用されている)を完全に書き直したNRefactory5によって提供されます。SharpDevelopの場合、SharpDevelop5.0で新しいNRefactoryを使用する予定です。また、MonoDevelopも最終的にはそれに移行します(MonoDevelopはすでに新しいASTを使用していますが、新しい型システム/セマンティック分析はまだ使用していません)。

この書き直しの主な目標は次のとおりです。

  • すべてのトークンの位置情報を備えた豊富なASTを提供し、リファクタリングを記述しやすくします
  • セマンティック分析のパフォーマンスを向上させる
  • 以前のバージョンからいくつかの悪い設計上の決定を排除します(IExpressionFinder、および参照されるアセンブリの処理方法)

将来的には、MicrosoftのCompiler-As-A-Serviceも検討することをお勧めします。

于 2011-08-31T17:13:19.017 に答える
0

また、多くのリファクタリングを追加するVSのプラグインであるhttp://www.jetbrains.com/resharperからReSharperをチェックアウトしてください。

于 2011-01-05T22:46:21.430 に答える