问题标签 [resharper-sdk]

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 回答
360 浏览

c# - 如何使用 Resharper SDK 从 IClrDeclaredElement 获取 IDeclaredType

我正在为 Resharper 编写一个导航插件,我的情况是我有一个IDeclaredElement我从中获得的列表

此元素是用户将鼠标光标置于其上的元素。

我想做的是获取IDeclaredType声明元素的 ,包括它可能具有的任何类型参数,如果它是泛型类型。

resharper SDK 文档在涉及类型系统时非常简单,根本没有真正解释各种类型之间的关系。

我一直在寻找其他插件以尝试找到这方面的示例,但结果都是空的。我已经检查了每一个 Util 和 Extension 类,看看是否有一个方法可以给我想要的东西,但是没有。

我发现的唯一一件事是:

它返回类型层次结构,不包括当前类型。有用,但不是我想要的。

是否有人对此 API 有任何经验或了解它的工作原理?我喜欢一个能更多解释类型之间关系的答案。

我对它的理解,简单来说:

  • 名称中带有Declared(IDeclaredElement, IDeclaredType)的类型 似乎是指物理代码元素。
  • IType 似乎是所有类型的顶级接口,与物理代码元素不对应
  • 我不清楚名称中带有 Element 的类型的含义(ITypeElement, IDeclaredElement),也许它指的是 AST 元素。

我希望对此进行一些澄清。

0 投票
2 回答
90 浏览

c# - 获取当前项目中的所有 IDeclaredType-s(用于 ReSharper Generator 插件)

我正在编写一个 ReSharper 7.1 Generator 插件,需要获取当前项目中声明的所有类型(类、接口和结构 - IDeclaredType-s)的列表GeneratorProviderBase<CSharpGeneratorContext>.Populate

使用常规反射,它会像 一样简单Assembly.GetTypes(),但在这里它被证明是一个相当大的挑战。有没有办法做到这一点?

我搜索了高低,文档和示例没有帮助,然后查看了每个*Extensions课程*Util,但找不到任何有用的东西......

0 投票
1 回答
29 浏览

resharper - SearchDomainFactory.Instance 已过时:“注入我!” (不知道如何创建实例)

我正在尝试将 R# 扩展项目从 R# 6 迁移到 R# 8。(我已经接管了某人编写的项目,而且我是编写扩展的新手。)

在现有的 v6 项目中,有一个派生自 RenameWorkflow 的类,构造函数过去看起来像这样;

这曾经在 R# SDK v 6 中工作,但现在在 V8 中,RenameWorkflow 不再具有采用 Solution 和 actionId 的构造函数。新的构造函数签名现在看起来像这样;

现在这是我需要帮助的问题(我认为)

我已经复制了构造函数,现在这个类的构造函数必须满足这些新的依赖关系。通过一些挖掘,我设法找到了一种方法来满足所有依赖项,除了'SearchDomainFactory'。我可以通过更新的构造函数进行实例化的最接近如下;

新的 RenameStepWorkflow(Solution.Locks,JetBrains.ReSharper.Psi.Search.SearchDomainFactory.Instance,RenameRefactoringService.Instance,this.Solution,null)

一切看起来都不错,除了JetBrains.ReSharper.Psi.Search.SearchDomainFactory.Instance标记为过时,并且给了我一个我无法解决的编译错误,即使使用#pragma也不允许我编译代码。我编译时得到的确切错误消息是Error 16 'JetBrains.ReSharper.Psi.Search.SearchDomainFactory.Instance' is obsolete: 'Inject me!'

明显的下一个问题..好的,怎么样?我如何“注入你”?我找不到关于这个新的重大更改的任何文档,事实上,我找不到任何文档(或示例项目)甚至提到DrivenRefactoringWorkflowRenameWorkflow,(现在需要新 SearchDomainFactory 的类),或任何关于SearchDomainFactory.Instance突然过时的信息以及如何满足“注入”它的需要。

非常感激任何的帮助!谢谢,

问候

艾伦

0 投票
1 回答
81 浏览

resharper-plugins - ReSharper 插件测试中的任意检查

正如我从 DevGuide 中了解到的,测试 ReSharper 插件的工作方式如下:

  1. 加载插件并将测试输入文件传递给它
  2. 插件对传递的文件执行其操作
  3. ReSharper 的测试环境将插件操作结果以特殊格式写入 .tmp 文件,该格式取决于测试的功能类型(例如,如果我们测试完成,.tmp 文件将包含生成的完成项列表)
  4. ReSharper 的测试环境将 .tmp 文件与 .gold 文件进行比较,以确定测试是失败还是成功

但我需要以下场景。前两步同上,则:

  1. 我编写代码来获取插件操作的结果并检查它们是否符合我的预期,以便在需要时使测试失败

我怎样才能做到这一点?

我需要它,因为我有一个使用 ReSharper 生成的 AST 来构建一些图表的代码,我想测试这些图表是否正确构建。

0 投票
1 回答
71 浏览

resharper - Extend ReSharper's Unit Test Sessions window

Is it possible to extend (eg. add a menu item to a context menu in) ReSharper's Unit Test Sessions window?

What I'd like to achieve is to be able to select one or more tests and then apply a custom category attribute to those tests (eg. modify the respective test's method or class to add an attribute like [NeedsFixing].

0 投票
1 回答
59 浏览

c# - 如何防止 ReSharper 在生成代码时为内置类型添加“@”符号前缀?

我正在编写一个 ReSharper 插件,我想这样做:

我想输出代码:

但它实际上输出了这个:

它似乎是这样做的int(我假设其他内置类型或关键字)。

如何防止它这样做并输出有效代码?

0 投票
2 回答
109 浏览

visual-studio-2012 - 将 Resharper 9.2 插件部署为 dll

对于 Resharper 7.1,我们编写了一个 Resharper 插件 - 放置在C:\Users\<UserName>\AppData\Roaming\JetBrains\ReSharper\vAny\Plugins 文件夹中。在 VS 2012 中,该插件可以正常工作。

该插件的目的是分析当前打开的C#文件,检查我们公司的文件头是否写在页面顶部。如果不是,它将突出显示整个内容。

现在我们切换到 Resharper 9.2。我针对nuget下载的Resharper 9.2 SDK成功编译了源代码。但是我没有得到 Resharper 识别/工作的 Resharper 插件。

插件的放置位置有什么变化吗?我阅读了一些关于创建 nuget 包的建议——但这一步真的有必要吗?

我想学习如何让插件运行。

0 投票
1 回答
83 浏览

c# - 上下文操作的 ReSharper SDK 测试不起作用

我尝试使用 ReSharper SDK 内置测试基础设施测试我的自定义 ReSharper 上下文操作。我创建了一个输入文件、一个输出文件 ( .gold) 并运行测试。出现两个问题:

  1. 测试总是成功的(即使输入和.gold文件完全不同,或者为空等);
  2. 没有.tmp文件与输入和.gold文件一起出现。

但是,如果我重命名输入文件,则测试运行会失败,并出现“文件不存在”异常。

我的测试项目的结构与docs中描述的相同。

测试环境.cs:

测试类:

我为简单的快速修复做了类似的测试。.gold该测试按预期工作,并对输入或文件的任何更改做出反应。所以问题是如何正确测试上下文动作。

使用 ReSharper SDK 9.2。

0 投票
1 回答
81 浏览

c# - 如何从 IType (Resharper 8 SDK) 获取 Type 实例

我正在尝试编写我的第一个 ReSharper 扩展,但遇到了以下问题:

如何从它的 IType 描述符中获取已解析的类型?

作为背景,我正在尝试编写一个分析器,该分析器使用一种工具来测试两种类型参数的兼容性。

到目前为止,我有这个

0 投票
1 回答
45 浏览

c# - 如何在 ReSharper 扩展中获得构建的结果

我想编写一个 ReSharper 扩展,在每次构建后执行一个操作,所以我想我需要首先知道构建何时完成,并了解构建是否成功

关于如何做到这一点的任何提示?

(我对扩展完全陌生)提前谢谢