4

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

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

当我在根 CodeSnippets 标记中有 1 个 CodeSnippet 标记时,一切正常......

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

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

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

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

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

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

谢谢,

-弗林尼

4

1 回答 1

5

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

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

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

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

更新

我无法让 VB 使用 VS2k8 在一个文件中支持多个片段。我使用以下代码段作为测试用例。摘自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>

更多信息

我开始认为这一定是一个漏掉的错误,因为 Microsoft 从未将多个片段放入 Visual Studio 随附的提供的片段文件中,或者 VB.NET 由于难以与增强的语句完成集成而不支持多个片段编辑器的能力。

于 2009-09-01T02:08:32.287 回答