問題タブ [nrefactory]

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.

0 投票する
1 に答える
226 参照

c# - NRefactory によるスペースなしの C# コード生成

スペースや改行なしで C# コード生成の書式設定オプションを設定することはできますか?

次のコードの変換を意味します。

このコードに:

空のオプションでやろうとしていますが、うまくいきません。

0 投票する
3 に答える
732 参照

c# - NRefactory でクラスがインターフェイス メソッドを実装しているかどうかを確認する方法

私は2つのファイルを持っています。1 つはクラス宣言で、もう 1 つはインターフェイス宣言です。クラスはインターフェイスを実装する必要があります。クラスがインターフェイスメソッドを実装している場合、NRefactory をチェックインするにはどうすればよいですか?

詳細を説明する必要があります。

最初のファイル - 例:

そして2番目

これらのファイルを読み取り、NRefactory で解析する必要があります。クラス Test がインターフェイス IF からメソッドを実装しているかどうかを確認する必要があります。

コンパイルせず、コンパイル済みアセンブリをロードします。

0 投票する
0 に答える
129 参照

refactoring - NRefactory 、 move メソッド

リファクタリングに NRefactory を使用しようとしています。非 OOP スタイルで記述された古いスタイルのコードがあります。

私がする必要があるのは、各クラス T に対して、T を最初のパラメーター型として受け入れる静的メソッドを新しいクラス ExtensionsForT に移動し、それへの参照を X.method1(t)=>t.method1() のように変更することです

0 投票する
0 に答える
48 参照

c# - NRefactory は WinRT 言語のプロジェクションを理解していますか?

NRefactory は C# からの WinRT 言語プロジェクションを理解しますか? そうでない場合、この機能を NRefactory に追加する最も簡単な方法は何でしょうか?

次の単体テストは、現在サポートされていないことを示しているようです。解決Windows.Globalization.ApplicationLanguages.Languages[0]すると System.String に解決されるはずですが、これは失敗します。私の理論では、リゾルバーはインデクサーを見つけることを期待していますが、実際にはのプロジェクトであるため、インデクサーはありませんIVector.GetAt(...)

この問題を再現するには、NRefactory のクローンを作成し、次のファイルを追加しますICSharpCode.NRefactory.Tests\CSharp\Resolver\WinrtTests.cs

0 投票する
1 に答える
1222 参照

c# - NRefactory を使用して C# コードからすべてのメソッドを取得する

NRefactory API を使用して C# プログラムのすべてのメソッドを取得するにはどうすればよいですか?

これにより SyntaxTree が作成されますが、この SyntaxTree からメソッドのリストのみを取得するにはどうすればよいですか?

0 投票する
0 に答える
89 参照

c# - 構文ツリーにノードを追加すると子が追加されますが、実際には表示されません

テストに従って正しい値を返すようにクラスを変更する必要がある VSPackage を作成しています。単純に戻り値を変更するのは簡単でしたが、今は if-else ステートメントを追加して、クラスが入力に応じて異なる値を返すようにしています。

この後にブレークポイントを置いて検査するとparentNodeToInsert

ParentNodeToInsert の検査のスクリーンショット

(青いボックス)の子の下にparentNodeToInsert正しく追加されていますが、ノードの概要 (赤いボックス) には新しい if ステートメントが含まれておらず、後でtoString()構文ツリーを呼び出した場合 (ファイルに書き戻すため)それも現れません。

その理由と、それを表示する方法を知っている人はいますか?

0 投票する
4 に答える
1746 参照

abstract-syntax-tree - ソース コード (IL コード) なしで .Net アセンブリから AST を取得する

.Net アセンブリを分析して、C#、VB.NET などから言語に依存しないようにしたいと考えています。
Roslyn と NRefactory は知っていますが、C# ソース コード レベルでしか動作しないように見えますか?
また、CodePlex には「Common Compiler Infrastructure: Code Model and AST API」プロジェクトがあり、「言語に依存しない構造化された形式でコード ブロックを表す階層オブジェクト モデルをサポートする」と主張しています。
ただし、実際にこれを行っている有用なドキュメントやコードを見つけることができません。
これをアーカイブする方法について何かアドバイスはありますか?
Mono.Cecil は何かできるのでしょうか?

0 投票する
1 に答える
1303 参照

c# - C# で FastColoredTextBox を使用した NRefactory コード補完

C# 用のシンプルな IDE を構築しています。

..そしてFastColoredTextBox、組み込みのオートコンプリート メニューを使用して、ソース コード編集用のコントロールを使用しています ( http://www.codeproject.com/Articles/161871/Fast-Colored-TextBox-for-syntax-highlighting )

NRefactor問題は、 Visual Studio と同じように、コードの自動補完を行うために使用したいということです。

私はいくつかの調査を行い、これを見つけました: https ://github.com/lukebuehler/NRefactory-Completion-Sample ...しかし、コードを理解していなかったので、再利用できません。

正確には、何が必要ですか?

アセンブリの入力リスト (DLL へのパスである文字列の配列)、現在のオフセット、およびエディターのテキストを受け取る関数が必要です。

出力として、オブジェクトの名前とその型 (変数、関数、型など) を含むオブジェクトの配列が必要です。

それで、どうすればいいですか?このオートコンプリート コードを別のスレッドで実行する必要がありますか?

回答ありがとうございます。

VitekST

PS: 私を嫌いにならないでくださいNRefactor