繁体   English   中英

获取Visual Studio Extension以仅对特定文件类型进行操作

[英]Get Visual Studio Extension to only operate with specific file types

我正在为Visual Studio创建一个非常简单的扩展。 我试图使扩展仅在使用python文件类型时有效。 我发现了这一点 ,并尝试将其应用于我的情况,但我认为我缺少了一些东西。 该扩展名适用于python文件,但当我希望忽略它们时,也可以与其他文件类型一起使用。

到目前为止,我遵循了演练并完成了该课程:

static class FileAndContentTypeDefinitions
{
    [Export]
    [Name("py")]
    [BaseDefinition("text")]
    internal static ContentTypeDefinition hidingContentTypeDefinition;

    [Export]
    [FileExtension(".py")]
    [ContentType("py")]
    internal static FileExtensionToContentTypeDefinition hiddenFileExtensionDefinition;

}

然后,在SourceProvider和HandlerProvider中,我有:

[Export]
[ContentType("py")]

这样可以启用python文件类型,但在其他文件类型打开时不会禁用扩展名。 有没有办法做到这一点?

编辑:我意识到这太模棱两可了。 该扩展根据之前发生的方法签名(如果适用)为python doc注释提供了完成建议。 键入“''时触发。 我希望这仅在python文件中发生。

其他导出是:从HandlerProvider

[Export]
[ContentType("py")]

[Export(typeof(IVsTextViewCreationListener))]
[Name("token completion handler")]
[ContentType("text")]
[TextViewRole(PredefinedTextViewRoles.Editable)]

来自源提供商

[Export]
[ContentType("py")]

[Export(typeof(ICompletionSourceProvider))]
[ContentType("text")]
[Name("token completion")]

可能我还要补充一点,因为这是我首次尝试扩展创建,所以我非常仔细地遵循了MSDN演练。 但是,结果是,我不确定我可以解释代码的每一部分(翻译:我不知道它的用途是什么)。

要导出您的供应商和听众两者 [ContentType("text")][ContentType("py")]

不要那样做

另外,您的第二个[Export]属性将导出为该类本身,这是没有用的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM