【问题标题】:Why Snippet Manager doesn't works?为什么片段管理器不起作用?
【发布时间】:2016-12-04 11:29:39
【问题描述】:

我真的很想用这个plugin。但是,一旦我执行“导出为片段”,我就看不到可以管理 sn-p、设置 Shourcut 等的新选项卡(如视频所示)。我只看到这个弹出窗口:

发生了什么事?添加新项目?

我已更新到 Visual Studio 2015 的最后一个(更新 3)版本,并且我有 Snippet Designer 1.6.2。

【问题讨论】:

  • 我已经更新了我的答案(又一次!),提供了一种解决方法,允许您在 Visual Studio 2015 中的网站项目(Web 窗体)中继续使用 Snippet Designer 创建 sn-ps。经过测试和工作。我还提出了关于作者可以在哪里调查该问题的建议;目前恐怕我根本没有时间花在这上面,也许周末我可以继续。

标签: visual-studio plugins code-snippets


【解决方案1】:

更新 - 解决方法和可能的未来修复

我已经使用 Web 表单(网站项目)测试了 Snippet Designer,但它不像视频中描述的那样工作,即自动创建 sn-p 文件。

但是,可以通过选择名为 Code Snippet 的项目项来继续使用 Snippet Designer,如下所示:

  1. 创建或打开一个网站项目。

  2. 选择您要制作片段的文本。右键单击并选择Export as Snippet

  1. 在打开的新建文件对话框窗口中,您需要找到文件类型Code Snippet。在一长串已安装的文件模板中,最简单的方法是使用搜索功能,输入snippet

  1. 单击添加。该文件将添加到您的项目中,现在 Snippet Designer 将激活并正常运行。

注意:这是创建一个默认的 C# 代码片段文件,而不是片段设计器 .vsix 存档中包含的 sn-p 文件;没有区别,因为两个文件都是空的,而且 Snippet Designer 有自己的代码,用于根据 Microsoft 指定的相关 XML 架构构建 sn-p 文件的内容。

Snippet Designer 不像其他项目那样自动创建 sn-p 文件的一个可能原因是网站项目对项目元数据使用了不同的方法;例如,它们没有.csproj 文件,该文件通常用于列出项目中的文件。

也可能是创建 sn-p 文件的代码通过自动化要求 Visual Studio 创建 sn-p 文件项模板的新实例;在默认的 Visual Studio 2015 安装中,网站项目的可用项模板列表位于:

C:\Program Files (x86)\Microsoft Visual Studio 14.0\Web\WebNewFileItems\NewFileItems.vsdir

Snippet Designer 还包含一个 .vsdir 文件,该文件有一个用于其自己捆绑的 sn-p 文件的条目,可以在此处查看源代码:

https://github.com/mmanela/SnippetDesigner/blob/master/src/SnippetDesigner/Templates/SnippetFile.vsdir

我建议 Snippet Designer 的作者调查这里的条目是否是问题的根源。

Microsoft 在此处为 .vsdir 文件中包含的元数据提供文档:Template Directory Description (.Vsdir) Files

我确实推荐了一种不同的产品。我的原始答案继续如下:


现状

正如Snippet DesignerGitHub Issue Tracker 中所记录的,存在无法识别特定项目类型的问题,因此功能不可用。

Snippet Designer GitHub 项目的最后一次提交是 1 年前(2015 年 11 月);鉴于未解决问题的数量和缺乏开发,我会建议一个已知的可用开源替代方案。

工作替代方案

Code Snippet Studio 是另一个完全支持Visual Studio 2015(包括更新3)的免费、开源项目,用于创建、编辑和管理片段,并且正在积极开发和发布:

Code Snippet Studio

Code Snippet Studio 是 Visual Studio 2015 的扩展,可以轻松创建、编辑、打包和共享适用于 Visual Studio 2015 和 Visual Studio Code 的 IntelliSense 代码 sn-ps。对于 C# 和 Visual Basic sn-ps,它还在您键入时提供实时 Roslyn 代码分析,以立即检测代码问题。

注意多种语言,包括 C#VBSQLHTMLJavaScript 等。下图为VB编辑。

Code Snippet Studio 在 Visual Studio 2015 中作为工具窗口运行,或者作为独立应用程序运行(我个人认为非常适合在笔记本电脑上与 Visual Studio Code 一起工作,或快速更新我的 sn-p 包)。

功能包括基于 Roslyn 的智能感知和在编辑 sn-ps 时进行分析、指定需要导入以支持 Snippet 的命名空间、导出到 Visual Studio 或 Visual Studio Code 的能力,以及创建用于安装的 VSIX 文件(可选)在多台机器上。

更多信息

有关更多信息,以下链接很有用:

Channel 9 - A Look Behind Code Snippet Studio (with Video)

GitHub Project

Getting started Guide

Channel9 - One code snippet at a time [and more] with the Code Snippet Studio

【讨论】:

  • 这是否也适用于 WebForm 项目?就我所见,问题出在哪里。可以试试吗?
  • 我通常不使用 Web 表单 - 但我会对此进行测试并告知您。我在回答中推荐的替代方案 Code Snippet Studio 肯定确实(并且支持任何支持 Visual Studio sn-p 机制的项目类型),因为您只需复制并粘贴到其中即可。我已经花了一些时间在这上面 - 你有没有试过昨天在 10 分钟内有两次投票的答案,并获得了 250 个奖励积分.. 这肯定像描述的那样工作吗? ;-)
  • 我没有设置任何“奖励 250 奖金”。这不正确,它不起作用!
  • 我知道它不起作用——它永远不可能,正如我在 cmets 中礼貌地解释的那样。但是,如果为某个问题设置了奖励,则必须在一定的时间段内进行奖励。当它到期时,就像昨天一样,系统有一个奖励奖金的算法。首先它会寻找一个被接受的答案,如果找不到,它会寻找有 2 个或更多赞成票的最高评分的答案,并自动将一半的奖金奖励给它。正如我所提到的,这个答案在昨天的 10 分钟内得到了 2 个赞成票。纯属巧合,我敢肯定... ;)
  • 我已经用有关网站项目的更多信息更新了我的答案。如果我能找到时间,如果可以解决,我会更新。
【解决方案2】:

这是一个已知问题,请参阅 github 问题577084109。我只能建议你说服插件作者修复它,或者自己修复它:)

【讨论】:

  • 我已经说服作者修复它!
  • 赞成建议该项目在源头固定。我将查看代码,看看我是否可以提供帮助。与此同时,正如我在其他地方所建议的那样,还有其他选择。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-27
  • 1970-01-01
相关资源
最近更新 更多