diff options
author | Kirill Chibisov <contact@kchibisov.com> | 2022-07-10 20:11:28 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-10 20:11:28 +0300 |
commit | 694a52bcffeffdc9e163818c3b2ac5c39e26f1ef (patch) | |
tree | a774babc1869b4c700d7df1478dbbfe5b2c3bcda /alacritty/src/renderer | |
parent | 8451b75689b44f11ec1707af7e26d915772c3972 (diff) | |
download | r-alacritty-694a52bcffeffdc9e163818c3b2ac5c39e26f1ef.tar.gz r-alacritty-694a52bcffeffdc9e163818c3b2ac5c39e26f1ef.tar.bz2 r-alacritty-694a52bcffeffdc9e163818c3b2ac5c39e26f1ef.zip |
Add support for hyperlink escape sequence
This commit adds support for hyperlink escape sequence
`OSC 8 ; params ; URI ST`. The configuration option responsible for
those is `hints.enabled.hyperlinks`.
Fixes #922.
Diffstat (limited to 'alacritty/src/renderer')
-rw-r--r-- | alacritty/src/renderer/mod.rs | 6 | ||||
-rw-r--r-- | alacritty/src/renderer/text/mod.rs | 4 |
2 files changed, 6 insertions, 4 deletions
diff --git a/alacritty/src/renderer/mod.rs b/alacritty/src/renderer/mod.rs index eb0012bd..6ee8815c 100644 --- a/alacritty/src/renderer/mod.rs +++ b/alacritty/src/renderer/mod.rs @@ -125,14 +125,14 @@ impl Renderer { point: Point<usize>, fg: Rgb, bg: Rgb, - string: &str, + string_chars: impl Iterator<Item = char>, size_info: &SizeInfo, glyph_cache: &mut GlyphCache, ) { - let cells = string.chars().enumerate().map(|(i, character)| RenderableCell { + let cells = string_chars.enumerate().map(|(i, character)| RenderableCell { point: Point::new(point.line, point.column + i), character, - zerowidth: None, + extra: None, flags: Flags::empty(), bg_alpha: 1.0, fg, diff --git a/alacritty/src/renderer/text/mod.rs b/alacritty/src/renderer/text/mod.rs index 96945f67..228d2671 100644 --- a/alacritty/src/renderer/text/mod.rs +++ b/alacritty/src/renderer/text/mod.rs @@ -159,7 +159,9 @@ pub trait TextRenderApi<T: TextRenderBatch>: LoadGlyph { self.add_render_item(&cell, &glyph, size_info); // Render visible zero-width characters. - if let Some(zerowidth) = cell.zerowidth.take().filter(|_| !hidden) { + if let Some(zerowidth) = + cell.extra.as_mut().and_then(|extra| extra.zerowidth.take().filter(|_| !hidden)) + { for character in zerowidth { glyph_key.character = character; let glyph = glyph_cache.get(glyph_key, self, false); |