XML .snippet 文件中的多个 CodeSnippet

Fri*_*ale 4 vb.net intellisense code-snippets

我试图通过向其他开发人员提供代码片段来补充我的代码的帮助功能。这些生成的代码骨架演示了如何使用/调用我的类或方法。

我创建了一个.snippet文件并将其放置在“ %Visual Studio Folder%\Code Snippets\Visual Basic\My Snippets ”文件夹中。我使用了代码片段管理器并确保它包含此文件夹,以便我可以访问代码片段。

当我在根 CodeSnippets 标签中有 1 个 CodeSnippet 标签时,一切都会正常工作......

当我向文件添加多个 CodeSnippet 标签(每个标签都有自己的标题和自己的代码示例)时,我遇到了一些奇怪的情况。

我添加的第一个 CodeSnippet 包含用于向系统添加某些内容的代码,第二个包含用于编辑系统中某些内容的代码,第三个包含用于从系统中删除某些内容的代码。

当我通过右键单击并选择“插入代码片段”来使用代码片段时,只有文件中的第一个代码片段显示为选项。当我选择它时,第一个 CodeSnippet 中的代码被插入......但其他 CodeSnippet 标签中的代码也是如此。

您是否必须为您想要提供的每个代码片段拥有一个单独的 XML .snippet文件?

在阅读完 MSDN 有关创建代码片段的内容后,我的印象是这一切都可以在一个文件中完成。

看来我在这里不理解一些非常基本的东西,并且很想找到答案,但显然代码片段未得到充分使用,因此事实证明找到答案比我最初想象的要棘手一些。

谢谢,

-弗林尼

AMi*_*ico 5

您是否必须为您想要提供的每个代码片段拥有一个单独的 XML .snippet 文件?在阅读完 MSDN 有关创建代码片段的内容后,我的印象是这一切都可以在一个文件中完成。

我一直在创建和使用片段。我想做的正是你想要的。但是,我从来没有在一个文件中获得多个片段来工作。我也觉得你可以做到这一点。我什至找到了一篇基于 Visual Studio 测试版的文章,演示了如何执行此操作,但它不起作用。此外,文档指出:

CodeSnippet可选元素。- 所有代码片段数据的父元素。CodeSnippets 元素中可能有零个或多个 CodeSnippet 元素。

我最终放弃并创建了单独的文件。我还没有在 VS2k8 的一个文件中尝试过多个片段。

更新

我无法使用 VS2k8 让 VB 支持一个文件中的多个片段。我使用以下代码片段作为测试用例。摘自http://msdn.microsoft.com/en-us/library/ms165394.aspx的片段。CodeSnippet仅读取/加载/使用第一个。我还计算了CodeSnippet所有片段文件 (1143) 中的所有元素,没有一个文件包含多个元素。此外,此代码片段重复了您在问题中指出的行为。使用该代码片段插入两个消息框语句。

<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2008/CodeSnippet">
  <CodeSnippet Format="1.0.0">
    <Header>
      <Title>
        SECOND Snippet
      </Title>
    </Header>
    <Snippet>
      <Code Language="VB">
        <![CDATA[MsgBox("SECOND SNIPPET")]]>
      </Code>
    </Snippet>
  </CodeSnippet>
  <CodeSnippet Format="1.0.0">
    <Header>
      <Title>
        FIRST Snippet
      </Title>
    </Header>
    <Snippet>
      <Code Language="VB">
        <![CDATA[MsgBox("FIRST SNIPPET")]]>
      </Code>
    </Snippet>
  </CodeSnippet>
</CodeSnippets>
Run Code Online (Sandbox Code Playgroud)

更多信息

我认为这一定是一个被忽视的错误,因为 Microsoft 从未将多个代码片段放入 Visual Studio 附带的提供的代码片段文件中,或者由于与增强的语句完成集成存在困难,VB.NET 不支持多个代码片段编辑器的能力。