问题标签 [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.
antlr - ANTLR4 智能感知代码编辑器
寻找使用智能感知构建基于 ANTLR4 语法的代码编辑器的示例。SharpDevelop 提供所有代码编辑器功能,但是如果我们需要提供智能感知和代码完成细节,那么我们需要编写自己的解析器。
需要使用 ANTLR4、SharpDevelop 来构建自定义语言的代码编辑器的示例。
谢谢。
c# - 如何使用 NRefactory 修改 C# 代码
我正在尝试使用 NRefactory 来修改现有的一段 C# 代码。我已经尝试使用本文中描述的方法。我收到一个抱怨重复更改的异常。有人可以指出我做错了什么,并指出我正确的方向吗?
我有以下代码部分:
其他代码...
更新:
我正在尝试更改这样的一行:
至:
就这个问题而言,我试图做出的改变的具体细节并不重要。我怀疑我的某些东西构造不正确,但我不知道这是否是问题所在。
c# - NRefactory 在代码中查找 XML 文档注释
我想获取与使用 NRefactory 的方法相关联的 xml 文档。我使用在此答案中找到的以下代码弄湿了我的脚
但是,我正在查看 IUnresolvedTypeDefinition 接口,它没有任何“评论”属性。此外,IUnresolvedMethod 接口没有任何“评论”属性。我确实知道可以检索评论,因为我是通过使用与此处找到的 CodeProject 文章相关联的 WinForms 应用程序来检索评论的
演示的作者没有使用“ToTypeSystem()”方法。相反,他遍历树。以下是他所做的一些片段:
我想知道 NRefactory API 中是否有一种方法可以获取与 C# 代码中的方法相关联的文档。
c# - NRefactory 解析属性
我想使用 NRefactory 解析与类中的方法关联的属性。
我从一个 cs 文件创建一个语法树。然后我继续查找文件中唯一的类型。然后我找到与文件关联的方法。
我知道 IUnresolvedMethod 有一个名为“Attributes”的属性,它的类型为 IList。
我正在解析的存档如下所示:
我想解析属性,以便我可以在属性标签中获取字符串。(例如 fullControllerPath + "/Get")。我环顾四周,但没有找到帮助我开始的方法。我遇到了这个SO 问题,其中 OP 设法解决了语法树,但我并不清楚他所做的与我想做的事情有何关联。感谢您分享这方面的专业知识。
c# - 提取类信息
我需要为我的代码创建某种文档。为此,我必须从数百个 C# 类中提取信息。
基本上每个类都包含一些方法MyMethod
。在这种方法中,可能存在switch
少数情况。整体代码结构是这样的
我所需要的只是在其中查找开关盒MyMethod
并提取case
值。
到目前为止,我提出了使用 Roslyn 或 Nrefactory 解析所有 .cs 文件的选项,然后使用 AST 查看它们以提取我需要的 AST 节点。
但是这种方法看起来有点奇怪,因为该任务可能以其他方式完全自动化。我有清晰的文件结构,我确切地知道我需要检查的方法名称,并且里面只有一个switch
语句。总是。
是否有其他方便的方法来提取信息并生成此文档?
c# - NRefactory 看不到逗号
NRefactory 在匿名类型字段描述中没有将逗号符号视为代码节点。代码有效并编译。但他在函数参数中看到了这一点。漏洞?还是需要特殊的解析参数?
他们写道它已修复: https ://github.com/icsharpcode/NRefactory/issues/32 但仍未修复
谢谢!
c# - 使用 nrefactory 在 C# 中编写 webmethod 的方法
我正在使用 nrefactory 来修改 c# 代码。我的代码中有各种网络方法。我想在我的 c# 代码中的每个 webmethod 之上设计另一种方法。
示例输入,c# 文件中的原始 C# 方法:
样本输出:
在这里,validGetCities() 方法将验证所有输入参数是否为 not <=0 条件。仅当 validGetCities() 返回 true 时才执行 webmethod。我可以使用 nrefactory 编写模式匹配表达式,如下所示,
此表达式将生成以下代码片段,
因此,我可以为 0 个或固定数量的参数生成表达式。我怎样才能使它适用于多个输入参数。
c# - NRefactory 能够解析 .NET 4.6?
我已经成功地使用了 NRefactory,并且刚开始在解析使用一些较新的 .NET 功能的源代码时遇到问题。我特别注意到的一个特性是字符串插值。当 NRefactory 看到类似的东西$"File: {myFile}"
解析它时完全失败。是否有新版本的代码可以处理 dot-NET 4.6,或者是否有我需要设置的标志?如果没有,是否有另一种简单的方法可以从源代码中获取解析树?
如果我想使用 Roslyn,有没有办法使用 VS 2015 或者是否需要 VS 2017 或更高版本?尝试在 VS 2015 中打开 Roslyn SLN,但没有加载任何项目。