首页 > 解决方案 > 如何将现有的编辑器/分类器与新的文件扩展名相关联?

问题描述

我希望我的 Visual Studio 扩展能够为带有 .customExt 的文件突出显示 C# 语法。理想的效果很容易通过 VS UI :Tools -> Options -> Text Editor -> File Extension实现,但是如何从扩展级别实现类似的效果呢?是否可以获得现有的 VS csharp 分类器?或者也许有一种方法可以将 .customExt 关联到现有的 Microsoft Visual C# 编辑器?

我努力了:

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

但它显然不能按预期工作。

标签: visual-studiomefvisual-studio-extensionsvsix

解决方案


我在这里找到了有关如何将自定义文件类型与现有编辑器相关联的解决方案:

新扩展:CSS 更少

非常简单,只需在 VSIX 项目中添加 .pkgdef 文件即可:

[$RootKey$\Languages\File Extensions\.customExt]
@="{694dd9b6-b865-4c5b-ad85-86356e9c88dc}"

[$RootKey$\Editors\{08467b34-b90f-4d91-bdca-eb8c8cf3033a}\Extensions]
"customExt"=dword:00000027

该文件应具有以下属性集:

  • 复制到输出目录:始终复制
  • 包含在 VSIX 中:True

推荐阅读