From 086dbb8af0b355fb091420ef637f7e084defae54 Mon Sep 17 00:00:00 2001 From: Daan Boerlage Date: Tue, 21 Jan 2025 22:22:43 +0100 Subject: [PATCH] Move the hyperlink escape codes into a function --- src/cmd/view.rs | 9 ++++++--- src/main.rs | 1 + src/term.rs | 3 +++ src/types/issue.rs | 6 +++--- 4 files changed, 13 insertions(+), 6 deletions(-) create mode 100644 src/term.rs diff --git a/src/cmd/view.rs b/src/cmd/view.rs index 251c951..752fe5d 100644 --- a/src/cmd/view.rs +++ b/src/cmd/view.rs @@ -1,5 +1,6 @@ use crate::cli::FormatMode; use crate::jira_config::JiraConfig; +use crate::term::hyperlink; use crate::types::issue::JiraIssue; use crossterm::style::{Color, Stylize}; use std::io::Write; @@ -99,9 +100,11 @@ fn pretty_print(issue: &JiraIssue) -> Result<(), Box> { } println!("\n== Actions {:=<69}", ""); println!( - "\u{1b}]8;;{}\u{7}{}\u{1b}]8;;\u{7}", - issue.href, - "Open Issue".green().underline(Color::Green) + "{}", + hyperlink( + &issue.href, + &"Open Issue".green().underline(Color::Green).to_string() + ) ); Ok(()) diff --git a/src/main.rs b/src/main.rs index 3cc832c..199f533 100644 --- a/src/main.rs +++ b/src/main.rs @@ -2,6 +2,7 @@ mod cli; mod cmd; mod jira_config; mod jql; +mod term; mod types; use clap::Parser; diff --git a/src/term.rs b/src/term.rs new file mode 100644 index 0000000..1f2203c --- /dev/null +++ b/src/term.rs @@ -0,0 +1,3 @@ +pub fn hyperlink(url: &str, text: &str) -> String { + format!("\u{1b}]8;;{}\u{7}{}\u{1b}]8;;\u{7}", url, text) +} diff --git a/src/types/issue.rs b/src/types/issue.rs index 59afac0..672677c 100644 --- a/src/types/issue.rs +++ b/src/types/issue.rs @@ -1,3 +1,4 @@ +use crate::term::hyperlink; use crossterm::style::Stylize; use serde::{Deserialize, Serialize}; use std::io::Write; @@ -107,9 +108,8 @@ pub fn display_issues_pretty(issues: &[JiraIssue]) -> Result<(), Box