diff options
author | Michael Davis | 2023-07-26 15:26:56 +0000 |
---|---|---|
committer | Blaž Hrastnik | 2023-07-27 02:50:19 +0000 |
commit | 953073a679dfe8ae4aff86e8a9bff680d14a5523 (patch) | |
tree | 1d9dcc47314f176aee48b3e54bbd63126fd3624f /helix-term/src/ui | |
parent | 98ef05d768d287fef2eb790e0a8a6e9a72832e00 (diff) |
highlighted_code_block: Take input text as &str
This removes a handful of allocations for functions calling into the
function, which is nice because the prompt may call this function on
every keypress.
Diffstat (limited to 'helix-term/src/ui')
-rw-r--r-- | helix-term/src/ui/lsp.rs | 4 | ||||
-rw-r--r-- | helix-term/src/ui/markdown.rs | 6 | ||||
-rw-r--r-- | helix-term/src/ui/prompt.rs | 2 |
3 files changed, 6 insertions, 6 deletions
diff --git a/helix-term/src/ui/lsp.rs b/helix-term/src/ui/lsp.rs index 44050aa1..880df6d8 100644 --- a/helix-term/src/ui/lsp.rs +++ b/helix-term/src/ui/lsp.rs @@ -62,7 +62,7 @@ impl Component for SignatureHelp { }); let sig_text = crate::ui::markdown::highlighted_code_block( - self.signature.clone(), + &self.signature, &self.language, Some(&cx.editor.theme), Arc::clone(&self.config_loader), @@ -109,7 +109,7 @@ impl Component for SignatureHelp { let max_text_width = (viewport.0 - PADDING).min(120); let signature_text = crate::ui::markdown::highlighted_code_block( - self.signature.clone(), + &self.signature, &self.language, None, Arc::clone(&self.config_loader), diff --git a/helix-term/src/ui/markdown.rs b/helix-term/src/ui/markdown.rs index cb2abf68..1433381d 100644 --- a/helix-term/src/ui/markdown.rs +++ b/helix-term/src/ui/markdown.rs @@ -17,7 +17,7 @@ use helix_view::{ Theme, }; -fn styled_multiline_text<'a>(text: String, style: Style) -> Text<'a> { +fn styled_multiline_text<'a>(text: &str, style: Style) -> Text<'a> { let spans: Vec<_> = text .lines() .map(|line| Span::styled(line.to_string(), style)) @@ -27,7 +27,7 @@ fn styled_multiline_text<'a>(text: String, style: Style) -> Text<'a> { } pub fn highlighted_code_block<'a>( - text: String, + text: &str, language: &str, theme: Option<&Theme>, config_loader: Arc<syntax::Loader>, @@ -267,7 +267,7 @@ impl Markdown { CodeBlockKind::Indented => "", }; let tui_text = highlighted_code_block( - text.to_string(), + &text, language, theme, Arc::clone(&self.config_loader), diff --git a/helix-term/src/ui/prompt.rs b/helix-term/src/ui/prompt.rs index f376b9c9..1352f493 100644 --- a/helix-term/src/ui/prompt.rs +++ b/helix-term/src/ui/prompt.rs @@ -476,7 +476,7 @@ impl Prompt { } } else if let Some((language, loader)) = self.language.as_ref() { let mut text: ui::text::Text = crate::ui::markdown::highlighted_code_block( - self.line.clone(), + &self.line, language, Some(&cx.editor.theme), loader.clone(), |