From be03effdbe5b5bdabfed50d87963e78017329182 Mon Sep 17 00:00:00 2001 From: Sonu Bardai <67749330+SonuBardai@users.noreply.github.com> Date: Thu, 15 Jun 2023 05:33:38 +0530 Subject: [PATCH] Add option to persist hints after selection Closes #6976. --- CHANGELOG.md | 1 + alacritty/src/config/ui_config.rs | 5 +++++ alacritty/src/display/hint.rs | 7 ++++++- extra/man/alacritty.5.scd | 13 ++++++++++++- 4 files changed, 24 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4ca925ff..deb96e03 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ### Added - Warnings for unused configuration file options +- Config option `persist` in `hints` config section ### Changed diff --git a/alacritty/src/config/ui_config.rs b/alacritty/src/config/ui_config.rs index ce236441..c4a1c83d 100644 --- a/alacritty/src/config/ui_config.rs +++ b/alacritty/src/config/ui_config.rs @@ -274,6 +274,7 @@ impl Default for Hints { enabled: vec![Hint { content, action, + persist: false, post_processing: true, mouse: Some(HintMouse { enabled: true, mods: Default::default() }), binding: Some(HintBinding { @@ -366,6 +367,10 @@ pub struct Hint { #[serde(default)] pub post_processing: bool, + /// Persist hints after selection. + #[serde(default)] + pub persist: bool, + /// Hint mouse highlighting. pub mouse: Option, diff --git a/alacritty/src/display/hint.rs b/alacritty/src/display/hint.rs index c30a88c5..0ff070ec 100644 --- a/alacritty/src/display/hint.rs +++ b/alacritty/src/display/hint.rs @@ -150,7 +150,12 @@ impl HintState { let bounds = self.matches[index].clone(); let action = hint.action.clone(); - self.stop(); + // Exit hint mode unless it requires explicit dismissal. + if hint.persist { + self.keys.clear(); + } else { + self.stop(); + } // Hyperlinks take precedence over regex matches. let hyperlink = term.grid()[*bounds.start()].hyperlink(); diff --git a/extra/man/alacritty.5.scd b/extra/man/alacritty.5.scd index 055cacfa..5aecd510 100644 --- a/extra/man/alacritty.5.scd +++ b/extra/man/alacritty.5.scd @@ -35,10 +35,14 @@ This section documents the root level of the configuration file. Live config reload (changes require restart) + Default: _true_ + *ipc_socket* _(unix only)_ Offer IPC using _alacritty msg_ + Default: _true_ + # ENV All key-value pairs in the *env* section will be added as environment variables @@ -410,6 +414,8 @@ Colors are specified using their hexadecimal values with a _#_ prefix: _#RRGGBB_ When _true_, bold text is drawn using the bright color variants. + Default: _false_ + # Bell This section documents the *[bell]* table of the configuration file. @@ -563,7 +569,7 @@ terminal and pipe it to other applications. Default: _"jfkdls;ahgurieowpq"_ -*enabled* [{ , , , , , },] +*enabled* [{ , , , , , , },] Array with all available hints. @@ -585,6 +591,10 @@ _action_ or a _command_. there are characters likely not to be part of the hint (e.g. a trailing _._). This is most useful for URIs and applies only to _regex_ matches. + *persist* + + When this is _true_, hints remain persistent after selection. + *action* "Copy" | "Paste" | "Select" | "MoveViModeCursor" *Copy* @@ -621,6 +631,7 @@ Default: _[{ regex = "(mailto:|gemini:|gopher:|https:|http:|news:|file:|git:|ssh:|ftp:)[^\\u0000-\\u001F\\u007F-\\u009F<>\\"\\\\s{-}\\\\^⟨⟩`]+",++ hyperlinks = true,++ post_processing = true,++ +persist = false,++ mouse = { enabled = true },++ binding = { key = "U", mods = "Control | Shift" }, }]_