4

他の開発者にコード スニペットを提供することで、自分のコードのヘルプ機能を補足しようとしています。これらは、クラスまたはメソッドを使用/呼び出す方法を示すコードのスケルトンを生成します。

.snippetファイルを作成し、" %Visual Studio Folder%\Code Snippets\Visual Basic\My Snippets " フォルダーに配置しました。コード スニペット マネージャーを使用して、スニペットにアクセスできるようにこのフォルダーが含まれていることを確認しました。

ルート CodeSnippets タグ内に 1 つの CodeSnippet タグがあると、すべてがうまく機能します....

ファイルに複数の CodeSnippet タグを (それぞれに独自のタイトルと独自のコード例を付けて) 追加すると、奇妙なことが起こります。

最初に追加した CodeSnippet にはシステムに何かを追加するためのコードが含まれており、2 番目にはシステム内の何かを編集するためのコードが含まれており、3 番目にはシステムから何かを削除するためのコードが含まれています。

右クリックして [コード スニペットの挿入] を選択してコード スニペットを使用すると、ファイル内の最初のコード スニペットのみがオプションとして表示されます。それを選択すると、最初の CodeSnippet のコードが挿入されますが、他の CodeSnippet タグ内のコードも挿入されます。

利用可能にするコード スニペットごとに個別の XML .snippetファイルが必要ですか?

コード スニペットの作成に関する MSDN を読んだ後、これはすべて 1 つのファイル内で実行できるという印象を受けました。

ここで非常に基本的なことを理解していないようで、答えを見つけたいと思っていますが、どうやらコードスニペットはあまり使用されていないため、答えを見つけるのは最初に思っていたよりも少し難しいことがわかりました.

ありがとう、

-フリニー

4

1 に答える 1

5

利用可能にするコード スニペットごとに個別の XML .snippet ファイルが必要ですか? コード スニペットの作成に関する MSDN を読んだ後、これはすべて 1 つのファイル内で実行できるという印象を受けました。

私はいつもスニペットを作成して使用しています。私はあなたが意図したことを正確にやりたかった. しかし、1 つのファイルで複数のスニペットが機能するようになったことはありません。私はまた、あなたがこれを行うことができるという印象を受けました。Visual Studio のベータ版に基づいて、これを行う方法を示す記事も見つけましたが、うまくいきませんでした。さらに、ドキュメントには次のように記載されています。

CodeSnippetオプション要素。- すべてのコード スニペット データの親要素。CodeSnippets 要素には、0 個以上の CodeSnippet 要素が含まれる場合があります。

最終的にはあきらめて、別のファイルを作成しました。VS2k8 では、1 つのファイルで複数のスニペットをまだ試していません。

アップデート

VS2k8 を使用して、1 つのファイルで複数のスニペットをサポートする VB を取得できません。次のスニペットをテスト ケースとして使用しました。http://msdn.microsoft.com/en-us/library/ms165394.aspxから抜粋したスニペット。最初の 1 つだけ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 に答える