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

c# - 如何在 ReSharper 10 中实现批量操作?

我想大致了解如何为 ReSharper 实现插件。我能够开发一个非常简单的插件,部署它,并使用它来执行我想要的操作。

但是,我想更改我的插件以支持批量操作模式。因此,我首先遵循了官方的 ReSharper 指南,这些指南已经过时,目前仅对 v8.0 有效。然后我发现了这个github 问题,很明显批量操作尚未正确记录。但是,我能够根据github 问题中引用的google 群组帖子将“某些东西”放在一起。

我想实现一些非常简单和愚蠢的东西,只是一个概念证明,因此我反编译了一些 ReSharper 程序集并将实现复制ToggleVarFix到我的解决方案中。我根据 google groups post 对其进行了修改并进行了功能更改-原始版本将显式类型替换为var,我的自定义版本将其替换为abstract. 这当然没有意义,我只是想看看批量操作的实际效果。

令我惊讶的是,我的插件仍然只能在单一修复模式下工作,即我能够将显式类型更改为abstract关键字以进行单个声明。但是,一旦我尝试以批量模式(对于文件或项目)调用我的操作,显式类型就会更改为var,我真的不知道为什么会发生这种情况以及为什么不会发生这种情况abstract。下图更好地解释了我对插件当前工作方式的不了解:

在此处输入图像描述

有人可以审查我的插件的实现,并可能提出我做错了什么吗?下面是我的代码,与原始版本相比,唯一的“功能”更改ToggleVarFix应该被注释掉declaration.SetVar();,取而代之的是一个稍微修改过的版本,abstract用于替换显式类型而不是var原始版本。

0 投票
1 回答
251 浏览

c# - 如何在 resharper 插件中提供带有 datacontext 类型的智能感知?

在编写 wpf prism 应用程序时,我使用ViewModelLocator来在需要时自动创建数据上下文。虽然这很好用,但除非我添加设计时数据上下文 ( d:DataContext="{d:DesignInstance viewModels:MyViewModel}"),否则没有智能感知帮助,但这在某种程度上违背了自动发现和连接视图模型的目的。

我想像这样:一个 resharper 插件,它ViewModelLocator.AutowireViewModel="True"在 xaml 中查找,获取类名,派生 viewmodel 类型,然后告诉智能感知使用这种类型作为数据上下文。

问题:resharper 插件是否可以在没有设计时数据上下文的情况下告诉智能感知数据上下文的类型是什么?

辅助问题:你能给一个完整的 resharper sdk 初学者一个关于如何完成这个的提示吗?

0 投票
1 回答
145 浏览

resharper - Resharper 运行配置

我正在尝试制作一个 reshaprer 插件,以在 resharper 的构建/运行窗口中添加一个(或多个)配置,除了可执行文件、静态方法、项目之外。任何指导方针从哪里开始?或者如何访问构建的上下文和配置?目前正在检查 JetBrains.IDE.RunConfig、SolutionBuilders 等,但我们将不胜感激。这个插件应该是一个解决方案组件还是一个解决方案实例组件?Resharper 的 sdk 帮助运气文档构建/运行组件。

预先感谢!

0 投票
0 回答
42 浏览

resharper - 如何从我的包中禁用特定的 Visual Studio 命令?

我正在创建一个要求文本空格采用特定格式的包。无需争论为什么让我们假设这是一个可以的要求。然后我必须阻止 Visual Studio 自动更新代码。

从打开的文档中这很容易,我可以在其中添加命令过滤器并防止使用以下代码执行命令。

Edit.FormatDocument 命令 id 按我的要求被阻止。我还可以添加 Edit.FormatSelection 或任何其他可能影响空白的命令。这对于我标记有这种特殊需要的打开文档来说都很好。

然而,当涉及到像 Resharper 这样以多种方式更新文件而不实际打开文件本身的加载项时,就会出现问题。一旦我发现哪些命令对我的实现来说是不稳定的,我还需要阻止其中一些命令。

所以问题是我可以在应用程序范围内设置某种 CommandFilter 以便我可以在行动中捕捉它们吗?这将允许我清理 Resharper 的命令,然后根据需要恢复包含格式的文件。

另一种可能性是,如果我能找到 Resharper 选项文件的位置并以某种方式对其进行更新以排除所述文件。我知道这是手动可能的。

0 投票
0 回答
59 浏览

resharper - ReSharper API 是否公开 ReSharper 重构?

我想知道 ReSharper API 是否公开了 ReSharper 插件附带的重构。到目前为止,我还没有在文档或在线上找到任何关于此的内容。基本上我希望能够按顺序执行几个重构(几乎就像一个脚本)。我知道 API 允许您创建新的重构,但我不确定它是否允许调用 ReSharper 中已经存在的重构。

提前致谢!

0 投票
1 回答
44 浏览

c# - 使用 Resharper SDK 查找 ITypeElement 或 IDeclaredElement 的用法

我正在尝试使用 Resharper SDK 插件创建自定义导航插件。当我站在我的类型上时,我设法获得了 IDeclaredElement 或 ITypeElement

SDK 文档非常稀少,我没有找到任何关于该主题的内容。谢谢

0 投票
0 回答
18 浏览

resharper-plugins - 复制代码完成列表中的项目

我需要编写 Resharper 插件来复制“代码完成”列表框中的项目并以不同的方式命名重复的项目。(目标是提供更短的名称,以便用更少的输入就能找到它们。)

我已经检查了https://www.jetbrains.com/help/resharper/sdk/Features/Completion.html但我找不到如何获取即将显示的项目列表 [因此可以将它们复制到苍蝇并添加到最终的“代码完成”列表中]。

请你能提示我如何做到这一点。

谢谢

0 投票
0 回答
29 浏览

resharper - ReSharper 扩展管理器看不到本地包

ReSharper 扩展管理器看不到本地包。为什么会发生这种情况?

我对 Wave 有依赖,所以我看不出有任何原因发生这种情况。

我使用 Visual Studio 2019 和 ReSharper 2021.2.2

0 投票
1 回答
24 浏览

c# - 如何从 ReSharper 中的 ITreeNode 访问 IType / IDeclaredType?

我正在探索为 ReSharper / Rider 编写插件。按照文档的示例,我正在为 ReSharper 构建一个上下文操作。

这是上下文动作,它还没有做太多:

在此处输入图像描述

每当我单击源代码中的某些内容(如上图所示的类型)时,都会调用上下文操作类的构造函数。我可以访问名称,ITreeNode但我不知道如何从树表示移动到 ReSharper 使用的实际类型表示。

点击时

问题

如何获取对用户单击的类型 ( IType, ...) 的引用?IDeclaredType