roslyn相关内容
我正在尝试在没有 else 情况的情况下实现“return if"/“return value if",因为我只想在条件有效时返回或返回一个值. 我知道,有 if (condition) return; 或 if (condition) return value; 但我想让代码更清晰一点,它会拥有这种语法就好了,因为它更具可读性. 我听说 roslyn 这是可能的,并在此处阅读问题及其
..
我想使用 Roslyn 遍历给定解决方案中每个项目中的所有文档. 这是我现在的代码: var msWorkspace = MSBuildWorkspace.Create();var 解决方案 = 等待 msWorkspace.OpenSolutionAsync(solutionPath);foreach(解决方案中的 var 项目.Projects){foreach(project.Doc
..
我注意到 Visual Studio 2017 中的每个属性都有一个快速操作,建议将其替换为方法. 这是否意味着属性不是设置和获取字段值的推荐方式,微软是否打算在未来弃用它?! 或者,为此目的,使用方法而不是属性可以实现任何收益吗? 解决方案 这不是来自 Visual Studio 的建议,而是一个 快速操作: 快速操作可让您通过单个操作轻松重构、生成或以其他方式修改代码
..
我在编译单元中添加了一堆节点,现在我想查找给定符号对应的语法节点: var compiler = Compilation.Create(“HelloWorld").AddSyntaxTrees(SyntaxTree.ParseCompilationUnit(""));ISymbol 符号 =//一些任意符号,例如我有一个语法节点的方法编译.GlobalNamesp
..
默认设置适用于浅色主题,但在深色设置下,默认消息文本保持黑色(实际上错误消息文本颜色也保持不变,但它是红色的,所以没关系).基本上它看起来与相关问题中的完全一样,但在这种情况下,我使用的是 VS 2012. 相关 有没有办法更改 Roslyn CTP 中 C# 交互窗口的字体和颜色? 解决方案 在 2012 年 6 月的 CTP 中,您可以设置 C# Interactive Win
..
我想将现有项目添加到我的 c# 解决方案中.我使用了 TryApplyChanges 并且它返回 true 但它不会保存对实际解决方案的更改.我使用了 Microsoft.CodeAnalysis.* 版本 1.1.1. public void AddProject (string solutionName){MSBuildWorkspace ws=MSBuildWorkspace.Creat
..
DiagnosticAnalyzer 是一个基于 Roslyn 的自定义扩展,其 DiagnosticDescriptor 和 DiagnosticSeverity.Error 如下所示 内部静态DiagnosticDescriptor Rule = new DiagnosticDescriptor(DiagnosticId, Description, MessageFormat, Catego
..
当我编译一个项目时(使用 MSBuildWorkspace.Create().OpenProjectAsync().GetCompilationAsync(); 我得到一个 Compilation 返回,其中包括 x 该项目中 x 文件的语法树.但该项目还引用了其他项目.我可以在 Compilation 的 References 属性中看到这些项目,不过好像调用Compliation.GetSem
..
在先前版本的 Roslyn 中,我可以使用从 SyntaxAnnotation 派生的类将自定义数据添加到 SyntaxNode.但是现在 SyntaxAnnotation 是密封的,我只能将 SyntaxAnnotation 用于字符串:种类和数据.这对我来说还不够.我想从 AST 构建自定义 CFG 并在 CFG 和 AST 节点之间建立双向链接. 我该怎么做? 解决方案 Syn
..
如何获取当前自定义位置和文件(在项目或解决方案内)下任何符号的定义文件名和位置? 我做了以下步骤(简化说明): 通过以下方式创建语法树集合并编译: SyntaxTrees = new List();foreach(projectFiles 中的 var 文件)syntaxTrees.Add(SyntaxTree.ParseText(File.ReadAllText(file));Co
..
我想写一个 Roslyn 代码分析器;如果 ObjectCreationExpression 正在从本地类(在当前项目中或当前解决方案中的项目中)创建对象,则需要确定;或者如果该类来自其他地方,例如基类库或 Nuget 包等. 我如何知道 Roslyn 中某个类的来源? 解决方案 你只能在语义模型的帮助下得到它.您可以获得构造函数的符号,并通过 检查类型来自哪里Locations 或
..
我正在尝试编写一个命令行工具,使用 Roslyn 修改一些代码.一切似乎都很顺利:解决方案已打开,解决方案已更改,Workspace.TryApplyChanges 方法返回 true.但是,磁盘上的实际文件没有更改.这是怎么回事?下面是我使用的顶级代码. static void Main(string[] args){var solutionPath = args[0];UpdateAnnot
..
需要使用 Roslyn 查找TypeSyntax 或本质上Type 类中的特定文件. 像这样: rootSyntaxNode.DescendantNodes().OfType().First(x => x.Identifier="fieldName").GivemeTypeSyntax() 但无法获得有关如何在 FieldDeclarationSyntax 节点中访问 Identifier
..
我是 Roslyn 的新手,我正在尝试解析 cs 文件并获取函数和属性. API 示例 //将不再起作用var tree = SyntaxTree.ParseText(...);var tree = SyntaxTree.ParseFle(...);var root = tree.Root; API 似乎已更改,将不再起作用.仅凭外观就可以猜到它适用于 2012 Roslyn CTP.
..
由于 R# 不支持 Roslyn Early Preview C# 6.0 功能,代码看起来很枯燥...... 我想使用分类器 VSIX 为代码着色.是否可以从 Roslyn Language Service 获取当前文档的语义模型? 解决方案 需要添加对Microsoft.CodeAnalysis.EditorFeatures.Text.dll的引用,然后使用如下代码. var
..
Roslyn 的文档似乎有点缺乏?我找不到很好的综合文档. 我基本上要做的是复制现有 API (.dll) 的公共表面转换成一个新的程序集(需要创建源代码 .cs 文件!),同时对生成的代码进行各种转换(想想制作包装类). 非常感谢我如何使用 Rolsyn 从现有程序集中加载初始 SyntaxTree 以及如何进行这些基本转换(例如排除内部类等) 解决方案 在当前的 Rosly
..
我正在为我的应用程序创建一个脚本编辑器,我希望它能够使用 Roslyn 运行 C# 和 VB.NET 脚本.我通过使用 Microsoft.CodeAnalysis.CSharp.Scripting 程序集/命名空间中的 CSharpScript 类来使用 C#,但是没有等效的 VisualBasicScript 我能找到的类,也不是 Microsoft.CodeAnalysis.VisualBa
..
对于 Resharper,我们可以有选择地打开/关闭它,但我找不到关闭内置 Visual Studio 2015 代码亮点/建议的方法. 我想这样做的原因是因为我有很多左连接 linq,而这些查询搞砸了 Visual Studio. 我在 linq 上看到很多波浪线,我更喜欢关闭它们. 这是我正在谈论的错误之一......我不知道如何摆脱它. 表达式的结果始终为“true"
..
如何从 Visual Studio 2015 CTP5 包中获取当前的 Roslyn 工作区? 我看了 如何获取对“Roslyn"工作区的引用来自 IVsSolution 的对象? 和 Roslyn:如何获得从当前加载的解决方案对 Workspace 的引用? 但我仍然无法让它工作: Workspace.CurrentWorkspace 不再存在 我已尝试
..
我正在尝试使用 Roslyn 将标记和琐事映射到行号. 这是我在下方@Kevin Pilch-Bisson 的帮助下的最新尝试. 公共类 CSharpSlocAnalyser : ISlocAnalyser{public long GetSlocFor(IEnumerable files, SlocOptions options){var tree = CSharpSyntaxTree.P
..