![](/img/trans.png)
[英]Get current source file methods in Visual Studio Text Editor 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.