覆盖默认代码片段

时间:2010-10-28 05:33:10

标签: c# visual-studio-2010 code-snippets

我一直在对VS2010中内置的代码片段进行一些改进。有没有办法既可以“偏好”某些片段目录,又可以覆盖默认值而无需手动删除“代码片段”窗口中的引用?我想保留相同的快捷方式。

这主要是挑选,因为我可以手动删除.snippet文件,或删除文件夹引用,但我想知道是否有更简单的方法,因为我最终更换了大量的默认代码段但还是想留住别人。

在代码段上使用类似的快捷方式时会出现两个问题。

  1. 对于某些代码段,例如propdp,系统会提示您有多个代码段,并要求您选择哪一个代码段。
  2. 对于其他代码段,例如ctor,它只使用默认代码段并假装我自己的片段不存在。使用Ctrl + K浏览代码段,Ctrl + X清楚地显示代码段正常,快捷方式正确。
  3. 这里的第二个问题比第一个问题更为重要。

    修改:进一步的实验表明,ctor特别使用默认代码段,无论如何。我没有尝试覆盖原始代码段文件中的代码,但删除对Visual C#snippets文件夹的引用仍使用默认值并忽略我的替换。

    编辑2 :即使替换原始代码段,ctor也会使用默认值并忽略.snippet文件。这是在重新启动Visual Studio之后。现在我不知道它甚至从哪里检索这段代码片段。作为测试,您可以重命名代码段ctors,它将正确显示。 ctor此时不再是一个建议。如果您将其重命名为ctor,它将再次显示默认代码段。这个片段在某个地方被缓存,或者内置在VS2010中。

3 个答案:

答案 0 :(得分:2)

您是否尝试过简单地覆盖原始文件,将代码段替换为您自己的代码?

它们位于此处:C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ VC#\ Snippets \ 1033 \ Visual C#

答案 1 :(得分:0)

在我的系统上,C#代码段至少存储在两个位置:

  • C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ VC#\ Snippets \ 1033 \ Visual C#

  • C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Professional \ VC#\ Snippets \ 1033 \ Visual C#

我认为您是正确的,当您在其他目录中有代码段时,Microsoft的代码段总是“获胜”,因此要使用自定义代码段,最终必须覆盖原始代码段。但是每隔两周发布Visual Studio更新时,该更新就会淘汰您的版本,而支持MS。 (如果他们不敬地忽略或抹去了您的自定义内容,为什么他们还要麻烦公开此功能?)

我最后只写了一个程序,该程序在登录时开始运行以监视这两个目录。当其中之一发生变化时,它将把这些片段与我存储在“片段覆盖”目录中的片段进行比较,如果它们不相同,则会还原我的片段版本。

答案 2 :(得分:-1)

您是否看过Code Barrel的插件?它有修订支持,标记等...看起来这可能是你需要的。 〜耸肩〜它是免费的,插件也是免费的,请到codebarrel.com获取它。