问题标签 [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 投票
2 回答
948 浏览

antlr - ANTLR4 智能感知代码编辑器

寻找使用智能感知构建基于 ANTLR4 语法的代码编辑器的示例。SharpDevelop 提供所有代码编辑器功能,但是如果我们需要提供智能感知和代码完成细节,那么我们需要编写自己的解析器。

需要使用 ANTLR4、SharpDevelop 来构建自定义语言的代码编辑器的示例。

谢谢。

0 投票
0 回答
266 浏览

c# - 如何使用 NRefactory 修改 C# 代码

我正在尝试使用 NRefactory 来修改现有的一段 C# 代码。我已经尝试使用本文中描述的方法。我收到一个抱怨重复更改的异常。有人可以指出我做错了什么,并指出我正确的方向吗?

我有以下代码部分:

其他代码...

更新:

我正在尝试更改这样的一行:

至:

就这个问题而言,我试图做出的改变的具体细节并不重要。我怀疑我的某些东西构造不正确,但我不知道这是否是问题所在。

0 投票
1 回答
117 浏览

c# - NRefactory 在代码中查找 XML 文档注释

我想获取与使用 NRefactory 的方法相关联的 xml 文档。我使用在此答案中找到的以下代码弄湿了我的脚

但是,我正在查看 IUnresolvedTypeDefinition 接口,它没有任何“评论”属性。此外,IUnresolvedMethod 接口没有任何“评论”属性。我确实知道可以检索评论,因为我是通过使用与此处找到的 CodeProject 文章相关联的 WinForms 应用程序来检索评论的

演示的作者没有使用“ToTypeSystem()”方法。相反,他遍历树。以下是他所做的一些片段:

我想知道 NRefactory API 中是否有一种方法可以获取与 C# 代码中的方法相关联的文档。

0 投票
0 回答
98 浏览

c# - NRefactory 解析属性

我想使用 NRefactory 解析与类中的方法关联的属性。

我从一个 cs 文件创建一个语法树。然后我继续查找文件中唯一的类型。然后我找到与文件关联的方法。

我知道 IUnresolvedMethod 有一个名为“Attributes”的属性,它的类型为 IList。

我正在解析的存档如下所示:

我想解析属性,以便我可以在属性标签中获取字符串。(例如 fullControllerPath + "/Get")。我环顾四周,但没有找到帮助我开始的方法。我遇到了这个SO 问题,其中 OP 设法解决了语法树,但我并不清楚他所做的与我想做的事情有何关联。感谢您分享这方面的专业知识。

0 投票
2 回答
471 浏览

c# - 提取类信息

我需要为我的代码创建某种文档。为此,我必须从数百个 C# 类中提取信息。

基本上每个类都包含一些方法MyMethod。在这种方法中,可能存在switch少数情况。整体代码结构是这样的

我所需要的只是在其中查找开关盒MyMethod并提取case值。

到目前为止,我提出了使用 Roslyn 或 Nrefactory 解析所有 .cs 文件的选项,然后使用 AST 查看它们以提取我需要的 AST 节点。

但是这种方法看起来有点奇怪,因为该任务可能以其他方式完全自动化。我有清晰的文件结构,我确切地知道我需要检查的方法名称,并且里面只有一个switch语句。总是。

是否有其他方便的方法来提取信息并生成此文档?

0 投票
0 回答
65 浏览

c# - NRefactory 看不到逗号

NRefactory 在匿名类型字段描述中没有将逗号符号视为代码节点。代码有效并编译。但他在函数参数中看到了这一点。漏洞?还是需要特殊的解析参数?

NDRefactory 演示截图

在此处输入图像描述

他们写道它已修复: https ://github.com/icsharpcode/NRefactory/issues/32 但仍未修复

谢谢!

0 投票
0 回答
72 浏览

c# - 使用 nrefactory 在 C# 中编写 webmethod 的方法

我正在使用 nrefactory 来修改 c# 代码。我的代码中有各种网络方法。我想在我的 c# 代码中的每个 webmethod 之上设计另一种方法。

示例输入,c# 文件中的原始 C# 方法:

样本输出:

在这里,validGetCities() 方法将验证所有输入参数是否为 not <=0 条件。仅当 validGetCities() 返回 true 时才执行 webmethod。我可以使用 nrefactory 编写模式匹配表达式,如下所示,

此表达式将生成以下代码片段,

因此,我可以为 0 个或固定数量的参数生成表达式。我怎样才能使它适用于多个输入参数。

0 投票
1 回答
103 浏览

c# - NRefactory 能够解析 .NET 4.6?

我已经成功地使用了 NRefactory,并且刚开始在解析使用一些较新的 .NET 功能的源代码时遇到问题。我特别注意到的一个特性是字符串插值。当 NRefactory 看到类似的东西$"File: {myFile}"解析它时完全失败。是否有新版本的代码可以处理 dot-NET 4.6,或者是否有我需要设置的标志?如果没有,是否有另一种简单的方法可以从源代码中获取解析树?

如果我想使用 Roslyn,有没有办法使用 VS 2015 或者是否需要 VS 2017 或更高版本?尝试在 VS 2015 中打开 Roslyn SLN,但没有加载任何项目。