【问题标题】:Overwriting default Code Snippets覆盖默认代码片段
【发布时间】:2011-05-01 16:50:37
【问题描述】:

我对通常内置于 VS2010 的代码 sn-ps 进行了几项改进。有什么方法可以“首选”某些 sn-p 目录而不是其他目录,或者覆盖默认值而不手动从“代码片段”窗口中删除引用?我想保留相同的快捷方式。

这主要是挑剔,因为我可以手动删除 .sn-p 文件,或删除文件夹引用,但我想知道是否有更简单的方法,以防我最终更换大量默认sn-ps还想保留其他人。

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

  1. 对于某些sn-ps,如propdp,会提示有多个sn-ps,并要求选择一个合适的。
  2. 对于其他的sn-p,比如ctor,它只是使用默认的sn-p,假装我自己的不存在。使用Ctrl+K,Ctrl+X浏览sn-ps,清晰可见sn-p有效,快捷键正确。

这里的第二个问题比第一个问题更大。

编辑: 进一步的实验表明,ctor 无论如何都会使用默认的 sn-p。我没有尝试覆盖原始 sn-p 文件中的代码,但删除对 Visual C# sn-ps 文件夹的引用仍然使用默认值并忽略我的替换。

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 我只是想创建一个更通用的解决方案。我看到的问题是它需要找到每个 sn-p 的位置(例如,propdp 位于 NetFX30,而不是 Visual C#),需要管理员访问权限才能覆盖文件,并成为 per-sn-p 进程安装。我目前只是将我所有的 sn-ps 放到 Dropbox 中,并在 VS2010 中添加文件夹引用。
    • 现在,正如我上面所说的,我了解到用 sn-p 替换 ctor 最终什么都不做。我什至不知道它是从哪里检索这个 sn-p 的,也许它是 VS2010 内置的,我无法覆盖它。
    • 也许吧。我只是尝试覆盖现有的 sn-ps,并制作全新的。
    【解决方案2】:

    在我的系统上,C# sn-ps 至少存储在两个地方:

    • 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#

    我认为你是对的,当你在其他目录中有 sn-ps 时,微软的 sn-ps 总是“获胜”,所以要使用定制的 sn-ps,你最终不得不覆盖原件。但是每隔几周,当 Visual Studio 的更新发布时,该更新就会删除您的版本,转而支持 MS。 (如果他们要无礼地忽略或消除您的自定义设置,他们为什么还要费心公开此功能?)

    我最终只是编写了一个在登录时开始运行的程序来监视这两个目录。当其中一个发生变化时,它会将那里的 sn-ps 与我存储在“sn-p override”目录中的那些进行比较,如果它们不一样,它会恢复我的 sn-ps 版本。

    【讨论】:

      【解决方案3】:

      您看过 Code Barrel 的插件吗?它具有修订支持、标记等……看起来这可能是您所需要的。 ~耸耸肩~它是免费的,插件也是,去codebarrel.com获取它。

      【讨论】:

      • 域不存在。
      • Code Barrel 不再相关,因为该公司已被 Atlassian 收购。无论如何,这将更适合作为对原始问题的评论。请更改您的图标。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-26
      • 2011-12-20
      相关资源
      最近更新 更多