过滤掉列表视图中可见的代码段列表

时间:2012-09-14 10:57:50

标签: c# visual-studio-2010 visual-studio-sdk

关注this link我有一组代码段。

但是片段插入必须是w.r.t上下文,即。如果我在声明一个类之前执行'Insert Snippet',它就不应该显示'method declaration'代码段。 还需要根据托管代码或非托管代码过滤代码段。

简而言之,我正在寻找一种机制如下:

if <condition>
{
 modify list of snippets visible in the menu
}

我们有这样的机制或类似的东西吗?欢迎提示。

1 个答案:

答案 0 :(得分:0)

我找到了解决问题的方法。希望它可以帮到某人。

我按照链接上的说明操作: Video on Code Snippets&amp; Code Element

让snippet.xml文件包含以下内容:

<Code Language="Language"
    Kind="method decl">
        Code to insert
</Code>

然后调用FilterView类中的expansionProvider.DisplayExpansionBrowser(参考视频):

string[] kind = new string[1];                            
kind[0] = "method decl";
return expansionProvider.DisplayExpansionBrowser(TextView, 
                                                 snippets, 
                                                 null, false, kind, false);

因此,特定代码段将出现在“方法声明”上下文中。因此可以完成其他片段。 xml必须保存上下文信息。