问题标签 [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 中的接口方法

我有两个文件。其中一个是类声明,另一个是接口声明。类应该实现接口。如果类实现接口方法,我如何检查 NRefactory?

我应该提供更多细节。

第一个文件 - 例如:

第二个

我必须阅读这些文件并使用 NRefactory 进行解析。我需要检查类 Test 是否从接口 IF 实现方法。

无需编译和加载已编译的程序集。

0 投票
1 回答
1841 浏览

c# - Mono Cecil 和 NRefactory 之间有什么关系以及如何将它们与 Roslyn 进行比较?

我了解 Microsoft 的 Compiler as a Service 或 Roslyn 项目的灵感来自 Mono Cecil。

但是 Mono Cecil 和 NRefactory 是什么关系呢?一个使用另一个吗?还是它们是做同样事情的替代技术?

似乎它们都提供了相同的大量代码分析服务,就像 Roslyn 一样。

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 - 从 .Net 程序集获取 AST,无需源代码(IL 代码)

我想将 .Net 程序集分析为独立于 C#、VB.NET 或其他语言的语言。
我知道 Roslyn 和 NRefactory,但它们似乎只适用于 C# 源代码级别?
CodePlex 上还有“通用编译器基础结构:代码模型和 AST API ”项目,该项目声称“支持以独立于语言的结构化形式表示代码块的分层对象模型”,这听起来完全符合我的要求。
但是,我找不到任何实际执行此操作的有用文档或代码。
任何建议如何存档?
Mono.Cecil 可以做点什么吗?

0 投票
1 回答
69 浏览

c# - NRefactory 中对静态导入的代码完成支持

NRefactory 的代码补全是否支持静态导入?我正在使用最新版本的 NRefactory,但我无法让它识别静态导入。

例如:

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 的路径)、当前偏移量和编辑器的文本。

作为输出,我需要一个对象数组,其中将包含对象的名称,以及它的类型(变量、函数、类型……)

那么,我该怎么做呢?是否有必要在另一个线程中运行此自动完成代码?

谢谢你的回答,

维泰克ST

PS:不要讨厌我,我不熟悉NRefactor...