Skip to content

Commit a544f56

Browse files
authored
Add an ENUM setting for disabling rendering "intense" text as bold (#10759)
## Summary of the Pull Request This adds a new setting `intenseTextStyle`. It's a per-appearance, control setting, defaulting to `"all"`. * When set to `"all"` or `["bold", "bright"]`, then we'll render text as both **bold** and bright (1.10 behavior) * When set to `"bold"`, `["bold"]`, we'll render text formatted with `^[[1m` as **bold**, but not bright * When set to `"bright"`, `["bright"]`, we'll render text formatted with `^[[1m` as bright, but not bold. This is the pre 1.10 behavior * When set to `"none"`, we won't do anything special for it at all. ## references * I last did this in #10648. This time it's an enum, so we can add bright in the future. It's got positive wording this time. * ~We will want to add `"bright"` as a value in the future, to disable the auto intense->bright conversion.~ I just did that now. * #5682 is related ## PR Checklist * [x] Closes #10576 * [x] I seriously don't think we have an issue for "disable intense is bright", but I'm not crazy, people wanted that, right? #2916 (comment) was the closest * [x] I work here * [x] Tests added/passed * [x] MicrosoftDocs/terminal#381 ## Validation Steps Performed <!-- ![image](https://user-images.githubusercontent.com/18356694/125480327-07f6b711-6bca-4c1b-9a76-75fc978c702d.png) --> ![image](https://user-images.githubusercontent.com/18356694/128929228-504933ee-cf50-43a2-9982-55110ba39191.png) Yea that works. Printed some bold text, toggled it on, the text was no longer bold. hooray. ### EDIT, 10 Aug ```json "intenseTextStyle": "none", "intenseTextStyle": "bold", "intenseTextStyle": "bright", "intenseTextStyle": "all", "intenseTextStyle": ["bold", "bright"], ``` all work now. Repro script: ```sh printf "\e[1m[bold]\e[m[normal]\e[34m[blue]\e[1m[bold blue]\e[m\n" ```
1 parent 29be856 commit a544f56

29 files changed

+208
-8
lines changed

doc/cascadia/profiles.schema.json

+11
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,17 @@
154154
"description": "Sets how the background image aligns to the boundaries of the window when unfocused. Possible values: \"center\", \"left\", \"top\", \"right\", \"bottom\", \"topLeft\", \"topRight\", \"bottomLeft\", \"bottomRight\"",
155155
"type": "string"
156156
},
157+
"intenseTextStyle": {
158+
"default": "all",
159+
"description": "Controls how 'intense' text is rendered. Values are \"bold\", \"bright\", \"all\" and \"none\"",
160+
"enum": [
161+
"none",
162+
"bold",
163+
"bright",
164+
"all"
165+
],
166+
"type": "string"
167+
},
157168
"experimental.retroTerminalEffect": {
158169
"description": "When set to true, enable retro terminal effects when unfocused. This is an experimental feature, and its continued existence is not guaranteed.",
159170
"type": "boolean"

src/buffer/out/TextAttribute.cpp

+5-3
Original file line numberDiff line numberDiff line change
@@ -95,16 +95,18 @@ bool TextAttribute::IsLegacy() const noexcept
9595
// - defaultFgColor: the default foreground color rgb value.
9696
// - defaultBgColor: the default background color rgb value.
9797
// - reverseScreenMode: true if the screen mode is reversed.
98-
// - blinkingIsFaint: true if blinking should be interpreted as faint.
98+
// - blinkingIsFaint: true if blinking should be interpreted as faint. (defaults to false)
99+
// - boldIsBright: true if "bold" should be interpreted as bright. (defaults to true)
99100
// Return Value:
100101
// - the foreground and background colors that should be displayed.
101102
std::pair<COLORREF, COLORREF> TextAttribute::CalculateRgbColors(const std::array<COLORREF, 256>& colorTable,
102103
const COLORREF defaultFgColor,
103104
const COLORREF defaultBgColor,
104105
const bool reverseScreenMode,
105-
const bool blinkingIsFaint) const noexcept
106+
const bool blinkingIsFaint,
107+
const bool boldIsBright) const noexcept
106108
{
107-
auto fg = _foreground.GetColor(colorTable, defaultFgColor, IsBold());
109+
auto fg = _foreground.GetColor(colorTable, defaultFgColor, boldIsBright && IsBold());
108110
auto bg = _background.GetColor(colorTable, defaultBgColor);
109111
if (IsFaint() || (IsBlinking() && blinkingIsFaint))
110112
{

src/buffer/out/TextAttribute.hpp

+2-1
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,8 @@ class TextAttribute final
6868
const COLORREF defaultFgColor,
6969
const COLORREF defaultBgColor,
7070
const bool reverseScreenMode = false,
71-
const bool blinkingIsFaint = false) const noexcept;
71+
const bool blinkingIsFaint = false,
72+
const bool boldIsBright = true) const noexcept;
7273

7374
bool IsLeadingByte() const noexcept;
7475
bool IsTrailingByte() const noexcept;

src/buffer/out/ut_textbuffer/TextAttributeTests.cpp

+54
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ class TextAttributeTests
2222
TEST_METHOD(TestTextAttributeColorGetters);
2323
TEST_METHOD(TestReverseDefaultColors);
2424
TEST_METHOD(TestRoundtripDefaultColors);
25+
TEST_METHOD(TestBoldAsBright);
2526

2627
std::array<COLORREF, 256> _colorTable;
2728
COLORREF _defaultFg = RGB(1, 2, 3);
@@ -263,3 +264,56 @@ void TextAttributeTests::TestRoundtripDefaultColors()
263264
// Reset the legacy default colors to white on black.
264265
TextAttribute::SetLegacyDefaultAttributes(FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
265266
}
267+
268+
void TextAttributeTests::TestBoldAsBright()
269+
{
270+
const COLORREF darkBlack = til::at(_colorTable, 0);
271+
const COLORREF brightBlack = til::at(_colorTable, 8);
272+
const COLORREF darkGreen = til::at(_colorTable, 2);
273+
274+
TextAttribute attr{};
275+
276+
// verify that calculated foreground/background are the same as the direct
277+
// values when not bold
278+
VERIFY_IS_FALSE(attr.IsBold());
279+
280+
VERIFY_ARE_EQUAL(_defaultFg, attr.GetForeground().GetColor(_colorTable, _defaultFg));
281+
VERIFY_ARE_EQUAL(_defaultBg, attr.GetBackground().GetColor(_colorTable, _defaultBg));
282+
VERIFY_ARE_EQUAL(std::make_pair(_defaultFg, _defaultBg), attr.CalculateRgbColors(_colorTable, _defaultFg, _defaultBg, false, false, true));
283+
VERIFY_ARE_EQUAL(std::make_pair(_defaultFg, _defaultBg), attr.CalculateRgbColors(_colorTable, _defaultFg, _defaultBg, false, false, false));
284+
285+
// with bold set, calculated foreground/background values shouldn't change for the default colors.
286+
attr.SetBold(true);
287+
VERIFY_IS_TRUE(attr.IsBold());
288+
VERIFY_ARE_EQUAL(std::make_pair(_defaultFg, _defaultBg), attr.CalculateRgbColors(_colorTable, _defaultFg, _defaultBg, false, false, true));
289+
VERIFY_ARE_EQUAL(std::make_pair(_defaultFg, _defaultBg), attr.CalculateRgbColors(_colorTable, _defaultFg, _defaultBg, false, false, false));
290+
291+
attr.SetIndexedForeground(0);
292+
VERIFY_IS_TRUE(attr.IsBold());
293+
294+
Log::Comment(L"Foreground should be bright black when bold is bright is enabled");
295+
VERIFY_ARE_EQUAL(std::make_pair(brightBlack, _defaultBg), attr.CalculateRgbColors(_colorTable, _defaultFg, _defaultBg, false, false, true));
296+
297+
Log::Comment(L"Foreground should be dark black when bold is bright is disabled");
298+
VERIFY_ARE_EQUAL(std::make_pair(darkBlack, _defaultBg), attr.CalculateRgbColors(_colorTable, _defaultFg, _defaultBg, false, false, false));
299+
300+
attr.SetIndexedBackground(2);
301+
VERIFY_IS_TRUE(attr.IsBold());
302+
303+
Log::Comment(L"background should be unaffected by 'bold is bright'");
304+
VERIFY_ARE_EQUAL(std::make_pair(brightBlack, darkGreen), attr.CalculateRgbColors(_colorTable, _defaultFg, _defaultBg, false, false, true));
305+
VERIFY_ARE_EQUAL(std::make_pair(darkBlack, darkGreen), attr.CalculateRgbColors(_colorTable, _defaultFg, _defaultBg, false, false, false));
306+
307+
attr.SetBold(false);
308+
VERIFY_IS_FALSE(attr.IsBold());
309+
Log::Comment(L"when not bold, 'bold is bright' changes nothing");
310+
VERIFY_ARE_EQUAL(std::make_pair(darkBlack, darkGreen), attr.CalculateRgbColors(_colorTable, _defaultFg, _defaultBg, false, false, true));
311+
VERIFY_ARE_EQUAL(std::make_pair(darkBlack, darkGreen), attr.CalculateRgbColors(_colorTable, _defaultFg, _defaultBg, false, false, false));
312+
313+
Log::Comment(L"When set to a bright color, and bold, 'bold is bright' changes nothing");
314+
attr.SetBold(true);
315+
attr.SetIndexedForeground(8);
316+
VERIFY_IS_TRUE(attr.IsBold());
317+
VERIFY_ARE_EQUAL(std::make_pair(brightBlack, darkGreen), attr.CalculateRgbColors(_colorTable, _defaultFg, _defaultBg, false, false, true));
318+
VERIFY_ARE_EQUAL(std::make_pair(brightBlack, darkGreen), attr.CalculateRgbColors(_colorTable, _defaultFg, _defaultBg, false, false, false));
319+
}

src/cascadia/TerminalControl/ControlCore.cpp

+3
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,7 @@ namespace winrt::Microsoft::Terminal::Control::implementation
264264
_renderEngine->SetPixelShaderPath(_settings.PixelShaderPath());
265265
_renderEngine->SetForceFullRepaintRendering(_settings.ForceFullRepaintRendering());
266266
_renderEngine->SetSoftwareRendering(_settings.SoftwareRendering());
267+
_renderEngine->SetIntenseIsBold(_settings.IntenseIsBold());
267268

268269
_updateAntiAliasingMode(_renderEngine.get());
269270

@@ -600,6 +601,7 @@ namespace winrt::Microsoft::Terminal::Control::implementation
600601

601602
_renderEngine->SetForceFullRepaintRendering(_settings.ForceFullRepaintRendering());
602603
_renderEngine->SetSoftwareRendering(_settings.SoftwareRendering());
604+
603605
_updateAntiAliasingMode(_renderEngine.get());
604606

605607
// Refresh our font with the renderer
@@ -629,6 +631,7 @@ namespace winrt::Microsoft::Terminal::Control::implementation
629631
_renderEngine->SetSelectionBackground(til::color{ newAppearance.SelectionBackground() });
630632
_renderEngine->SetRetroTerminalEffect(newAppearance.RetroTerminalEffect());
631633
_renderEngine->SetPixelShaderPath(newAppearance.PixelShaderPath());
634+
_renderEngine->SetIntenseIsBold(_settings.IntenseIsBold());
632635
_renderer->TriggerRedrawAll();
633636
}
634637
}

src/cascadia/TerminalControl/IControlAppearance.idl

+2
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ namespace Microsoft.Terminal.Control
1111
Windows.UI.Xaml.Media.Stretch BackgroundImageStretchMode;
1212
Windows.UI.Xaml.HorizontalAlignment BackgroundImageHorizontalAlignment;
1313
Windows.UI.Xaml.VerticalAlignment BackgroundImageVerticalAlignment;
14+
Boolean IntenseIsBold;
15+
// IntenseIsBright is in Core Appearance
1416

1517
// Experimental settings
1618
Boolean RetroTerminalEffect;

src/cascadia/TerminalCore/ICoreAppearance.idl

+1
Original file line numberDiff line numberDiff line change
@@ -66,5 +66,6 @@ namespace Microsoft.Terminal.Core
6666
Microsoft.Terminal.Core.Color CursorColor;
6767
CursorStyle CursorShape;
6868
UInt32 CursorHeight;
69+
Boolean IntenseIsBright;
6970
};
7071
}

src/cascadia/TerminalCore/Terminal.cpp

+3-1
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,8 @@ Terminal::Terminal() :
5252
_selection{ std::nullopt },
5353
_taskbarState{ 0 },
5454
_taskbarProgress{ 0 },
55-
_trimBlockSelection{ false }
55+
_trimBlockSelection{ false },
56+
_intenseIsBright{ true }
5657
{
5758
auto dispatch = std::make_unique<TerminalDispatch>(*this);
5859
auto engine = std::make_unique<OutputStateMachineEngine>(std::move(dispatch));
@@ -173,6 +174,7 @@ void Terminal::UpdateAppearance(const ICoreAppearance& appearance)
173174
til::color newBackgroundColor{ appearance.DefaultBackground() };
174175
_defaultBg = newBackgroundColor.with_alpha(0);
175176
_defaultFg = appearance.DefaultForeground();
177+
_intenseIsBright = appearance.IntenseIsBright();
176178

177179
for (int i = 0; i < 16; i++)
178180
{

src/cascadia/TerminalCore/Terminal.hpp

+1
Original file line numberDiff line numberDiff line change
@@ -282,6 +282,7 @@ class Microsoft::Terminal::Core::Terminal final :
282282
bool _suppressApplicationTitle;
283283
bool _bracketedPasteMode;
284284
bool _trimBlockSelection;
285+
bool _intenseIsBright;
285286

286287
size_t _taskbarState;
287288
size_t _taskbarProgress;

src/cascadia/TerminalCore/terminalrenderdata.cpp

+2-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,8 @@ std::pair<COLORREF, COLORREF> Terminal::GetAttributeColors(const TextAttribute&
5050
_defaultFg,
5151
_defaultBg,
5252
_screenReversed,
53-
_blinkingState.IsBlinkingFaint());
53+
_blinkingState.IsBlinkingFaint(),
54+
_intenseIsBright);
5455
colors.first |= 0xff000000;
5556
// We only care about alpha for the default BG (which enables acrylic)
5657
// If the bg isn't the default bg color, or reverse video is enabled, make it fully opaque.

src/cascadia/TerminalSettingsEditor/Appearances.cpp

+21
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,8 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation
131131

132132
const auto backgroundImgCheckboxTooltip{ ToolTipService::GetToolTip(UseDesktopImageCheckBox()) };
133133
Automation::AutomationProperties::SetFullDescription(UseDesktopImageCheckBox(), unbox_value<hstring>(backgroundImgCheckboxTooltip));
134+
135+
INITIALIZE_BINDABLE_ENUM_SETTING(IntenseTextStyle, IntenseTextStyle, winrt::Microsoft::Terminal::Settings::Model::IntenseStyle, L"Appearance_IntenseTextStyle", L"Content");
134136
}
135137

136138
// Method Description:
@@ -256,6 +258,24 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation
256258
_PropertyChangedHandlers(*this, PropertyChangedEventArgs{ L"ShowAllFonts" });
257259
_PropertyChangedHandlers(*this, PropertyChangedEventArgs{ L"UsingMonospaceFont" });
258260
}
261+
else if (settingName == L"IntenseTextStyle")
262+
{
263+
_PropertyChangedHandlers(*this, PropertyChangedEventArgs{ L"CurrentIntenseTextStyle" });
264+
}
265+
// YOU THERE ADDING A NEW APPEARANCE SETTING
266+
// Make sure you add a block like
267+
//
268+
// else if (settingName == L"MyNewSetting")
269+
// {
270+
// _PropertyChangedHandlers(*this, PropertyChangedEventArgs{ L"CurrentMyNewSetting" });
271+
// }
272+
//
273+
// To make sure that changes to the AppearanceViewModel will
274+
// propagate back up to the actual UI (in Appearances). The
275+
// CurrentMyNewSetting properties are the ones that are bound in
276+
// XAML. If you don't do this right (or only raise a property
277+
// changed for "MyNewSetting"), then things like the reset
278+
// button won't work right.
259279
});
260280

261281
// make sure to send all the property changed events once here
@@ -271,6 +291,7 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation
271291
_PropertyChangedHandlers(*this, PropertyChangedEventArgs{ L"CurrentFontFace" });
272292
_PropertyChangedHandlers(*this, PropertyChangedEventArgs{ L"ShowAllFonts" });
273293
_PropertyChangedHandlers(*this, PropertyChangedEventArgs{ L"UsingMonospaceFont" });
294+
_PropertyChangedHandlers(*this, PropertyChangedEventArgs{ L"CurrentIntenseTextStyle" });
274295
}
275296
}
276297

src/cascadia/TerminalSettingsEditor/Appearances.h

+3
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation
9292
OBSERVABLE_PROJECTED_SETTING(_appearance, BackgroundImageOpacity);
9393
OBSERVABLE_PROJECTED_SETTING(_appearance, BackgroundImageStretchMode);
9494
OBSERVABLE_PROJECTED_SETTING(_appearance, BackgroundImageAlignment);
95+
OBSERVABLE_PROJECTED_SETTING(_appearance, IntenseTextStyle);
9596

9697
private:
9798
Model::AppearanceConfig _appearance;
@@ -136,6 +137,8 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation
136137

137138
GETSET_BINDABLE_ENUM_SETTING(BackgroundImageStretchMode, Windows::UI::Xaml::Media::Stretch, Appearance, BackgroundImageStretchMode);
138139

140+
GETSET_BINDABLE_ENUM_SETTING(IntenseTextStyle, Microsoft::Terminal::Settings::Model::IntenseStyle, Appearance, IntenseTextStyle);
141+
139142
private:
140143
bool _ShowAllFonts;
141144
void _UpdateBIAlignmentControl(const int32_t val);

src/cascadia/TerminalSettingsEditor/Appearances.idl

+4
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ namespace Microsoft.Terminal.Settings.Editor
4545
OBSERVABLE_PROJECTED_APPEARANCE_SETTING(Double, BackgroundImageOpacity);
4646
OBSERVABLE_PROJECTED_APPEARANCE_SETTING(Windows.UI.Xaml.Media.Stretch, BackgroundImageStretchMode);
4747
OBSERVABLE_PROJECTED_APPEARANCE_SETTING(Microsoft.Terminal.Settings.Model.ConvergedAlignment, BackgroundImageAlignment);
48+
OBSERVABLE_PROJECTED_APPEARANCE_SETTING(Microsoft.Terminal.Settings.Model.IntenseStyle, IntenseTextStyle);
4849
}
4950

5051
[default_interface] runtimeclass Appearances : Windows.UI.Xaml.Controls.UserControl, Windows.UI.Xaml.Data.INotifyPropertyChanged
@@ -73,5 +74,8 @@ namespace Microsoft.Terminal.Settings.Editor
7374

7475
IInspectable CurrentFontFace { get; };
7576
Windows.UI.Xaml.Controls.Slider BIOpacitySlider { get; };
77+
78+
IInspectable CurrentIntenseTextStyle;
79+
Windows.Foundation.Collections.IObservableVector<Microsoft.Terminal.Settings.Editor.EnumEntry> IntenseTextStyleList { get; };
7680
}
7781
}

src/cascadia/TerminalSettingsEditor/Appearances.xaml

+18
Original file line numberDiff line numberDiff line change
@@ -428,5 +428,23 @@
428428
</Grid>
429429
</local:SettingContainer>
430430
</StackPanel>
431+
432+
<!-- Grouping: Text Formatting -->
433+
<StackPanel Style="{StaticResource PivotStackStyle}">
434+
<TextBlock x:Uid="Appearance_TextFormattingHeader"
435+
Style="{StaticResource SubtitleTextBlockStyle}" />
436+
437+
<!-- Intense is bold, bright -->
438+
<local:SettingContainer x:Uid="Appearance_IntenseTextStyle"
439+
Margin="0"
440+
ClearSettingValue="{x:Bind Appearance.ClearIntenseTextStyle}"
441+
HasSettingValue="{x:Bind Appearance.HasIntenseTextStyle, Mode=OneWay}"
442+
SettingOverrideSource="{x:Bind Appearance.IntenseTextStyleOverrideSource, Mode=OneWay}">
443+
<muxc:RadioButtons ItemTemplate="{StaticResource EnumRadioButtonTemplate}"
444+
ItemsSource="{x:Bind IntenseTextStyleList, Mode=OneWay}"
445+
SelectedItem="{x:Bind CurrentIntenseTextStyle, Mode=TwoWay}" />
446+
</local:SettingContainer>
447+
</StackPanel>
448+
431449
</StackPanel>
432450
</UserControl>

src/cascadia/TerminalSettingsEditor/Resources/en-US/Resources.resw

+25-1
Original file line numberDiff line numberDiff line change
@@ -1186,4 +1186,28 @@
11861186
<value>Shortcut</value>
11871187
<comment>The label for a "key chord listener" control that sets the keys a key binding is bound to.</comment>
11881188
</data>
1189-
</root>
1189+
<data name="Appearance_TextFormattingHeader.Text" xml:space="preserve">
1190+
<value>Text Formatting</value>
1191+
<comment>Header for a control to how text is formatted</comment>
1192+
</data>
1193+
<data name="Appearance_IntenseTextStyle.Header" xml:space="preserve">
1194+
<value>Intense Text Format</value>
1195+
<comment>Header for a control to select how "intense" text is formatted (bold, bright, both or none)</comment>
1196+
</data>
1197+
<data name="Appearance_IntenseTextStyleNone.Content" xml:space="preserve">
1198+
<value>None</value>
1199+
<comment>An option to choose from for the "intense text format" setting. When selected, "intense" text will not be rendered differently</comment>
1200+
</data>
1201+
<data name="Appearance_IntenseTextStyleBold.Content" xml:space="preserve">
1202+
<value>Bold</value>
1203+
<comment>An option to choose from for the "intense text format" setting. When selected, "intense" text will be rendered as bold text</comment>
1204+
</data>
1205+
<data name="Appearance_IntenseTextStyleBright.Content" xml:space="preserve">
1206+
<value>Bright</value>
1207+
<comment>An option to choose from for the "intense text format" setting. When selected, "intense" text will be rendered in a brighter color</comment>
1208+
</data>
1209+
<data name="Appearance_IntenseTextStyleAll.Content" xml:space="preserve">
1210+
<value>Both</value>
1211+
<comment>An option to choose from for the "intense text format" setting. When selected, "intense" text will be rendered as both bold text and in a brighter color</comment>
1212+
</data>
1213+
</root>

src/cascadia/TerminalSettingsModel/AppearanceConfig.cpp

+4
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ static constexpr std::string_view BackgroundImageStretchModeKey{ "backgroundImag
2525
static constexpr std::string_view BackgroundImageAlignmentKey{ "backgroundImageAlignment" };
2626
static constexpr std::string_view RetroTerminalEffectKey{ "experimental.retroTerminalEffect" };
2727
static constexpr std::string_view PixelShaderPathKey{ "experimental.pixelShaderPath" };
28+
static constexpr std::string_view IntenseTextStyleKey{ "intenseTextStyle" };
2829

2930
winrt::Microsoft::Terminal::Settings::Model::implementation::AppearanceConfig::AppearanceConfig(const winrt::weak_ref<Profile> sourceProfile) :
3031
_sourceProfile(sourceProfile)
@@ -48,6 +49,7 @@ winrt::com_ptr<AppearanceConfig> AppearanceConfig::CopyAppearance(const winrt::c
4849
appearance->_BackgroundImageAlignment = sourceAppearance->_BackgroundImageAlignment;
4950
appearance->_RetroTerminalEffect = sourceAppearance->_RetroTerminalEffect;
5051
appearance->_PixelShaderPath = sourceAppearance->_PixelShaderPath;
52+
appearance->_IntenseTextStyle = sourceAppearance->_IntenseTextStyle;
5153
return appearance;
5254
}
5355

@@ -68,6 +70,7 @@ Json::Value AppearanceConfig::ToJson() const
6870
JsonUtils::SetValueForKey(json, BackgroundImageAlignmentKey, _BackgroundImageAlignment);
6971
JsonUtils::SetValueForKey(json, RetroTerminalEffectKey, _RetroTerminalEffect);
7072
JsonUtils::SetValueForKey(json, PixelShaderPathKey, _PixelShaderPath);
73+
JsonUtils::SetValueForKey(json, IntenseTextStyleKey, _IntenseTextStyle);
7174

7275
return json;
7376
}
@@ -98,6 +101,7 @@ void AppearanceConfig::LayerJson(const Json::Value& json)
98101
JsonUtils::GetValueForKey(json, BackgroundImageAlignmentKey, _BackgroundImageAlignment);
99102
JsonUtils::GetValueForKey(json, RetroTerminalEffectKey, _RetroTerminalEffect);
100103
JsonUtils::GetValueForKey(json, PixelShaderPathKey, _PixelShaderPath);
104+
JsonUtils::GetValueForKey(json, IntenseTextStyleKey, _IntenseTextStyle);
101105
}
102106

103107
winrt::Microsoft::Terminal::Settings::Model::Profile AppearanceConfig::SourceProfile()

0 commit comments

Comments
 (0)