mirror of
https://github.com/zed-industries/zed.git
synced 2024-09-20 02:47:34 +03:00
terminal: strikethrough text (#7507)
#7363 added support for rendering strikethrough text, so now we can handle this case in the terminal. Should close: #7434 Before: ![image](https://github.com/zed-industries/zed/assets/53836821/cb7a4eae-5bc9-425c-974d-07a9f089917a) After: ![image](https://github.com/zed-industries/zed/assets/53836821/5aaacee2-95bc-4039-972d-96bd7c01ea59) Release Notes: - Fixed rendering strikethrough text inside the terminal #7434
This commit is contained in:
parent
f55aba51ec
commit
6cdd7796c3
@ -4,8 +4,8 @@ use gpui::{
|
|||||||
ElementContext, ElementId, FocusHandle, Font, FontStyle, FontWeight, HighlightStyle, Hsla,
|
ElementContext, ElementId, FocusHandle, Font, FontStyle, FontWeight, HighlightStyle, Hsla,
|
||||||
InputHandler, InteractiveBounds, InteractiveElement, InteractiveElementState, Interactivity,
|
InputHandler, InteractiveBounds, InteractiveElement, InteractiveElementState, Interactivity,
|
||||||
IntoElement, LayoutId, Model, ModelContext, ModifiersChangedEvent, MouseButton, MouseMoveEvent,
|
IntoElement, LayoutId, Model, ModelContext, ModifiersChangedEvent, MouseButton, MouseMoveEvent,
|
||||||
Pixels, Point, ShapedLine, StatefulInteractiveElement, Styled, TextRun, TextStyle,
|
Pixels, Point, ShapedLine, StatefulInteractiveElement, StrikethroughStyle, Styled, TextRun,
|
||||||
UnderlineStyle, WeakView, WhiteSpace, WindowContext, WindowTextSystem,
|
TextStyle, UnderlineStyle, WeakView, WhiteSpace, WindowContext, WindowTextSystem,
|
||||||
};
|
};
|
||||||
use itertools::Itertools;
|
use itertools::Itertools;
|
||||||
use language::CursorShape;
|
use language::CursorShape;
|
||||||
@ -340,6 +340,13 @@ impl TerminalElement {
|
|||||||
wavy: flags.contains(Flags::UNDERCURL),
|
wavy: flags.contains(Flags::UNDERCURL),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
let strikethrough = flags
|
||||||
|
.intersects(Flags::STRIKEOUT)
|
||||||
|
.then(|| StrikethroughStyle {
|
||||||
|
color: Some(fg),
|
||||||
|
thickness: Pixels::from(1.0),
|
||||||
|
});
|
||||||
|
|
||||||
let weight = if flags.intersects(Flags::BOLD | Flags::DIM_BOLD) {
|
let weight = if flags.intersects(Flags::BOLD | Flags::DIM_BOLD) {
|
||||||
FontWeight::BOLD
|
FontWeight::BOLD
|
||||||
} else {
|
} else {
|
||||||
@ -362,7 +369,7 @@ impl TerminalElement {
|
|||||||
..text_style.font()
|
..text_style.font()
|
||||||
},
|
},
|
||||||
underline,
|
underline,
|
||||||
strikethrough: None,
|
strikethrough,
|
||||||
};
|
};
|
||||||
|
|
||||||
if let Some((style, range)) = hyperlink {
|
if let Some((style, range)) = hyperlink {
|
||||||
|
Loading…
Reference in New Issue
Block a user