C# ClassificationTypeDefinition Visual Studio 2010的基本定义列表

C# ClassificationTypeDefinition Visual Studio 2010的基本定义列表,c#,visual-studio-2010,C#,Visual Studio 2010,有人知道我在哪里可以获得Visual Studio 2010中分类类型定义的基本定义的列表吗 我试图定义“用户类型”的基本定义,但似乎不起作用。对于那些不太了解我在说什么,需要代码来简化的人 [Export(typeof(ClassificationTypeDefinition))] [Name("keyword")] [BaseDefinition("keyword")] internal static ClassificationTypeDefinition KeywordDefinitio

有人知道我在哪里可以获得Visual Studio 2010中
分类类型定义的
基本定义的列表吗

我试图定义“用户类型”的基本定义,但似乎不起作用。对于那些不太了解我在说什么,需要代码来简化的人

[Export(typeof(ClassificationTypeDefinition))]
[Name("keyword")]
[BaseDefinition("keyword")]
internal static ClassificationTypeDefinition KeywordDefinition = null;
它目前使用c#的关键字定义来突出显示或不突出显示。但我似乎无法让用户类型(类/枚举/结构名称和其他类似对象)工作。我尝试过使用vs设置文件并使用其中定义的定义,但是“用户类型”的定义不起作用

谢谢,预先

该类型有一个公共/共享类型列表,但“用户类型”是由语言提供的一个示例

简单的回答是,
[BaseDefinition]
应该与尚未离开VS2008接口(如C#)的语言服务的“字体和颜色”对话框中的显示名称相匹配。如果在这种情况下它不起作用,那么您可以通过添加具有该名称的第二个分类类型定义(“用户类型”)来说服它起作用

长话短说的答案是:

为了提供这些语言的分类类型信息,编辑器会在您第一次打开与语言服务关联的文件时动态生成它们。同步过程基本上是:

  • 浏览语言服务提供的可着色项目(
    IVsColorableItemsProvider
  • 如果任何可着色项目没有关联的分类类型,请为其生成新的分类类型(使用
    icClassificationTypeRegistryService.CreateClassificationType
  • 浏览字体和颜色中的信息,以创建/修改这些分类类型的格式信息

  • 因此,问题是在编辑器提取分类类型定义时,该类型不存在。但是,为将动态生成的类型添加分类类型定义应该让这两部分都满意:您的类型的基本定义将正确设置,并且同步过程将愉快地跳过步骤#2,因为已经有一个同名的项。

    Ok,我明白你的意思了,现在有理由解释为什么它没有正确地显示出来。在这种情况下,问题是我实际上没有编辑c#文件,所以我认为这就是为什么它没有按我预期的方式工作。啊,是的,应该更清楚地说明:)在这种情况下,您可以自己定义它,但它可能无法从F&c获取颜色(因为它看起来是通过语言服务GUID同步颜色);我猜这就是你想要继承这个值的原因?如果是这样的话,可能会有一种黑客方法迫使编辑器同步C#,即使没有加载C#文件。如果你需要帮助,请告诉我。是的,基本上我只是想找到“用户类型”定义的颜色,这样我就可以使用它了。所有其他的都很好,但正如你所指出的,这只是因为它们是语言不可知论的定义。我正在考虑直接从设置文件加载它…我只是不喜欢这种方法。如果你有任何见解,我很乐意接受:)你能给我发封电子邮件(noahric@ms)吗?我们最终可以把答案放在这里,但这需要我的一位同事的帮助,需要反复思考才能找到答案。再次感谢你的帮助。