如何在 Resharper IntelliSense 中显示所有 Visual Studio 代码片段?

Posted

技术标签:

【中文标题】如何在 Resharper IntelliSense 中显示所有 Visual Studio 代码片段?【英文标题】:How to show all Visual Studio's code snippets in Resharper's IntelliSense? 【发布时间】:2019-03-03 17:54:32 【问题描述】:

Resharper 的 IntelliSense 仅显示其自己的实时模板,但不显示 Visual Studio 的代码 sn-ps。

有没有办法让 Resharper IntelliSense 显示所有 VS 代码 sn-ps?

在 Resharper 的 Templates Explorer 中,我发现它有许多 Live Snippets 标记为 Imported Visual C# Snippets

但它并没有全部导入,只导入了其中的一部分。例如,Resharper 没有从 Visual Studio 导入 propfull 代码 sn-p(正如您在第一个屏幕截图中看到的那样,propfull 不在列表中):

我在 Resharper 中找不到手动、一个一个或所有一起导入 VS 代码 sn-ps 的功能。我在 Resharper 的实时模板管理器中尝试了Import... 按钮,但显然它只允许导入实时模板(.DotSettings 和 .XML 文件,而不是 .sn-ps 文件),而不是代码片段文件。是否可以通过某种方式导入 VS 代码 sn-ps?

我只想以某种方式使所有 VS 代码 sn-ps 在 Resharper IntelliSense 中工作。也许有一些第三方工具可以将 sn-ps 转换为实时模板之类的?谢谢。

【问题讨论】:

嘿,这是来自 R# 的支持 -> resharper-support.jetbrains.com/hc/en-us/community/posts/… 这是一种解决方法 -> ***.com/questions/2820446/… 希望对您有所帮助。 是的,我从 2010 年就看到了这些线程。我只是认为他们或社区在 10 年内设法修复它并在 Resharper IntelliSense 中显示所有 VS sn-ps。 【参考方案1】:

ReSharper 在安装或首次启动时不会导入任何 VS 模板。您在模板资源管理器中看到的所有模板都是手动添加到 ReSharper 的默认设置的 - 没有“代码片段到实时模板”转换器 https://youtrack.jetbrains.com/issue/RSRP-273779。

因此,如果您想在 Live Templates 中获取 propfull 模板,您必须手动创建它 - 打开 ReSharper | Tools | Templates Explorer | Live Templates | C# | New Template 并在其中输入以下代码:

private $TYPE$ _$Var$;

public $TYPE$ $Property$ 
 
    get  return _$Var$;  
    set  _$Var$ = value;  

并调整Var 占位符:Value -> Choose Macro -> "Value of another variable with the first characters in lower case" -> OK -> "another variable" -> Choose "Property"。还有Editable Occurrence -> Not editable。然后将新添加的模板的占位符顺序更改为以下: - Type - Property - Var

在这种情况下,Var 将从 Property 继承正确的名称。

【讨论】:

【参考方案2】:

只是为了完成我就是这样做的 这张图片显示了代码。正如亚历山大所做的那样。

这张图是 Resharper 模板编辑器中需要的配置 在 Visual Studio 中

另一种插入模板的方法是 Resharper 的 Mnemonic 包扩展。该包有很多 C# 的实时模板。 见分机

【讨论】:

以上是关于如何在 Resharper IntelliSense 中显示所有 Visual Studio 代码片段?的主要内容,如果未能解决你的问题,请参考以下文章

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

你如何使用 Jasmine + Resharper 引用外部库

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

如何修复:在闭包 resharper 警告中访问 foreach 变量?

如何在 Visual Studio 2012(或 Resharper)中禁用 /* 自动完成

使用 ReSharper,如何在长时间运行的单元测试期间显示调试输出?