問題タブ [resharper-plugins]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - ReSharper プラグインで閉じたジェネリック型を表す ITypeElement を作成するにはどうすればよいですか?
私は ReSharper 8 SDK を使用しており、ジェネリック型が特定の型である特定のジェネリック インターフェイスのすべての継承者を検索したいと考えています。より一般的な質問をして、ほとんどの方法で解決しましたが、必要な実装ICommandHandler<T>
は 1 つではなく、任意の実装しか見つけることができません。ICommandHandler<TestCommand>
これは私が持っているコードです:
この行の後に commandHandlerType をツールチップすると:
var commandHandlerType = TypeFactory.CreateType(genericTypeElement,theType);
タイプが正しく指定されていることがわかります。
しかし、ITypeElement
このタイプから取得して、この行を使用して検索に渡すと
タイプを失ったようです:
したがって、私の検索では、のすべての実装が見つかりますICommandHandler<T>
。
だから私の質問は、ITypeElement
検索したい閉じたジェネリック型を表す をどのように作成するのですか?
または、代わりに、返された継承のコレクションで、ジェネリック型パラメーターとして開始したクラスを持つ型を検索するにはどうすればよいですか?
visual-studio-2012 - Resharper 9.2 プラグインを dll としてデプロイする
C:\Users\<UserName>\AppData\Roaming\JetBrains\ReSharper\vAny\Plugins
Resharper 7.1 では、フォルダに配置された Resharper プラグインを作成しました。VS 2012 では、プラグインは問題なく動作しました。
プラグインの目的は、現在開いている C# ファイルを分析し、当社のファイル ヘッダーがページの上部に記述されているかどうかを確認することです。そうでない場合は、コンテンツ全体が強調表示されます。
ここで、Resharper 9.2 に切り替えました。nuget でダウンロードした Resharper 9.2 SDK に対してソース コードを正常にコンパイルしました。しかし、Resharper プラグインが Resharper によって認識/動作していません。
プラグインを配置する場所に何か変更はありましたか? nuget パッケージの作成に関するいくつかの提案を読みましたが、この手順は本当に必要ですか?
プラグインを実行する方法を知りたいです。
c# - resharper プラグインで AST を動的に書き換える方法は?
リクエスト:
特定の式のプロキシ値を提供し、ドキュメントの再解析をトリガーできるアナライザーを作成できるようにしたいと考えています。
動機:
私たちのコードには、コントロールとバリアント グループを使用して、デプロイされた状態またはアクティブな状態のいずれかになる ABTest が散らばっています。テストの状態の決定は、データベース ルックアップによって行われます。コントロール グループで展開されるテストの場合、次の形式のステートメントはすべて false と評価されます。
このシナリオではグレー表示にすることで、開発時にこれを扱いやすくするためのツールを提供しようとしています。現状では、基本的に自分でパーサーをプレイする必要があるため、これはかなり制限されており、堅牢ではありません。
実際のコードが
また
また
考えられるアプローチとしては、一度実行されるアナライザーを作成し、実際の IDE 解析が行われる前にツリーを書き換えることができるようにすることです (または、もう一度解析するだけです)。これらは一度だけ発火し、特定の式を別の式に置き換えることができます。これにより、これらのすべての実験呼び出しを真と偽のリテラルに置き換えることができます。
その結果、これらのセクションは、到達不能コードのコード グレー表示などの他のすべての IDE 機能だけでなく、異なる値を持つことのない変数のようなより複雑な機能からも恩恵を受ける可能性があります。
明らかにこれは単なる例であり、どの程度実現可能かはわかりません。適切な機能や既存のものに対する提案は大歓迎です。
unit-testing - R# テストランナーを使用して ReSharper プラグイン テストを実行する
私は R# プラグインを作成していて、それをテストでカバーすることにしました。ただし、プラグインのターゲット バージョンが R# バージョンと同じ場合、R# ランナーを使用してプラグイン テストを実行できないことに気付きました。
たとえば、JetBrains.ReSharper.SDK.Tests
of versionを使用してテストを実行しようとすると2016.2.20160818.171542
、次のエラーが発生します。
ERROR System.TypeLoadException:
Method 'RunTests' in type 'JetBrains.ReSharper.UnitTestRunner.nUnit26.BuiltInNUnitRunner' from assembly 'JetBrains.ReSharper.UnitTestRunner.nUnit26, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' does not have an implementation.
以前のバージョンでは、エラーは異なっていました。
これは、R# ランナーと SDK アセンブリが混在しているために発生する可能性があります。
R# ランナーを使用してプラグイン単体テストを実行できるように project/R# を構成する方法はありますか? おそらく、R# 開発チームは独自のランナーを使用しています。
ありがとう!
resharper - パッケージから特定の Visual Studio コマンドを無効にするにはどうすればよいですか?
テキストの空白を特定の形式にする必要があるパッケージを作成しています。理由について議論することなく、これが問題のない要件であると仮定しましょう。次に、Visual Studio がコードを自動更新しないようにする必要があります。
これは、コマンド フィルターを追加して、次のコードでコマンドが実行されないようにすることができる開いているドキュメントからかなり簡単です。
Edit.FormatDocument コマンド ID は、必要に応じてブロックされます。Edit.FormatSelection または空白に影響を与える可能性のあるその他のコマンドを追加することもできます。これは、私がこの特別な必要性でマークした開いているドキュメントには問題ありません。
ただし、実際にファイル自体を開かずにさまざまな方法でファイルを更新する Resharper のようなアドインに関しては、問題が発生します。また、これらのコマンドのいくつかをブロックする必要があります。これは、どのコマンドが実装に対して揮発性であるかを見つけた後です。
問題は、ある種の CommandFilter をアプリケーション全体でセットアップして、その行為でそれらをキャッチできるかどうかです。これにより、Resharper のコマンドをクリーンアップし、必要に応じてフォーマットを含むファイルを復元できます。
もう 1 つの可能性は、Resharper オプション ファイルの場所を見つけて、そのファイルを除外するように何らかの方法で更新した場合です。私はこれが手動で可能であることを知っています。