aboutsummaryrefslogtreecommitdiff
path: root/alacritty/src/renderer
diff options
context:
space:
mode:
authorKirill Chibisov <contact@kchibisov.com>2022-07-10 20:11:28 +0300
committerGitHub <noreply@github.com>2022-07-10 20:11:28 +0300
commit694a52bcffeffdc9e163818c3b2ac5c39e26f1ef (patch)
treea774babc1869b4c700d7df1478dbbfe5b2c3bcda /alacritty/src/renderer
parent8451b75689b44f11ec1707af7e26d915772c3972 (diff)
downloadr-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.rs6
-rw-r--r--alacritty/src/renderer/text/mod.rs4
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);