gpt4 book ai didi

c# - 将自定义颜色定义添加到 Visual Studio 扩展中的输出窗口

转载 作者:行者123 更新时间:2023-11-30 13:04:36 29 4
gpt4 key购买 nike

使用扩展将自定义颜色定义添加到“字体和颜色”对话框的“文本编辑器”类别相当容易。通常只定义和导出新的分类类型和编辑器定义,并用 UserVisible(true) 属性对其进行修饰。这是一个例子。

public static class OutputClassificationDefinitions
{
[Export]
[Name("SomeName")]
public static readonly ClassificationTypeDefinition BuildHeaderDefinition;

[Name("SomeName")]
[UserVisible(true)]
[Export(typeof(EditorFormatDefinition))]
[ClassificationType(ClassificationTypeNames = "SomeName")]
public sealed class BuildHeaderFormat : ClassificationFormatDefinition
{
public BuildHeaderFormat()
{
ForegroundColor = Properties.Settings.Default.BuildHeaderForerground;
BackgroundColor = Properties.Settings.Default.BuildHeaderBackground;
}
}

“SomeName”出现在“文本编辑器”类别下的 F&C 对话框中。如果用户更改了“SomeName”的颜色,它会被记住,并且编辑器的格式映射会更新为使用新颜色。

我想对输出窗口做类似的事情。您可以为输出窗口编写一个分类器,它工作得很好。我的想法来自 StackOverflow 上的另一篇文章,效果非常好。

但是,新的颜色定义出现在“文本编辑器”类别中,而不是首选的输出窗口类别中。更烦人的是,用户颜色更改不会更新输出窗口的格式映射,这意味着新颜色不会生效。

我尝试自己更新 formatMap 如下:

[Import]
internal IClassificationFormatMapService ClassificationFormatMapService;

var formatMap = ClassificationFormatMapService.GetClassificationFormatMap(FontsAndColorsCategory.Outputwindow);
var type = ClassificationRegistry.GetClassificationType("SomeName");
formatMap.AddExplicitTextProperties(type, formatMap.GetExplicitTextProperties(type));

这行不通。不会引发异常或错误,只是不执行任何操作。

是否可以将我的自定义定义添加到 F&C 对话框的“输出窗口”类别,更重要的是,是否可以让更改更新输出窗口?

最佳答案

嗯,根据微软的说法,答案似乎是你不能做我想做的事。我不完全相信,但提出的论点 here很有说服力。

关于c# - 将自定义颜色定义添加到 Visual Studio 扩展中的输出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8311859/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com