From ed89f8897eab84bf7614a718d5d1e3ec5c57086c Mon Sep 17 00:00:00 2001 From: Falco Hirschenberger Date: Thu, 30 Jun 2022 11:16:18 +0200 Subject: Add workspace and document diagnostics picker (#2013) * Add workspace and document diagnostics picker fixes #1891 * Fix some of @archseer's annotations * Add From<&Spans> impl for String * More descriptive parameter names. * Adding From> impls for Span and Spans * Add new keymap entries to docs * Avoid some clones * Fix api change * Update helix-term/src/application.rs Co-authored-by: Bjorn Ove Hay Andersen * Fix a clippy hint * Sort diagnostics first by URL and then by severity. * Sort diagnostics first by URL and then by severity. * Ignore missing lsp severity entries * Add truncated filepath * Typo * Strip cwd from paths and use url-path without schema * Make tests a doctest * Better variable names Co-authored-by: Falco Hirschenberger Co-authored-by: Bjorn Ove Hay Andersen --- helix-tui/src/text.rs | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) (limited to 'helix-tui/src/text.rs') diff --git a/helix-tui/src/text.rs b/helix-tui/src/text.rs index 8a974ddb..b4278c86 100644 --- a/helix-tui/src/text.rs +++ b/helix-tui/src/text.rs @@ -194,6 +194,12 @@ impl<'a> From<&'a str> for Span<'a> { } } +impl<'a> From> for Span<'a> { + fn from(s: Cow<'a, str>) -> Span<'a> { + Span::raw(s) + } +} + /// A string composed of clusters of graphemes, each with their own style. #[derive(Debug, Default, Clone, PartialEq)] pub struct Spans<'a>(pub Vec>); @@ -229,6 +235,12 @@ impl<'a> From<&'a str> for Spans<'a> { } } +impl<'a> From> for Spans<'a> { + fn from(s: Cow<'a, str>) -> Spans<'a> { + Spans(vec![Span::raw(s)]) + } +} + impl<'a> From>> for Spans<'a> { fn from(spans: Vec>) -> Spans<'a> { Spans(spans) @@ -243,10 +255,13 @@ impl<'a> From> for Spans<'a> { impl<'a> From> for String { fn from(line: Spans<'a>) -> String { - line.0.iter().fold(String::new(), |mut acc, s| { - acc.push_str(s.content.as_ref()); - acc - }) + line.0.iter().map(|s| &*s.content).collect() + } +} + +impl<'a> From<&Spans<'a>> for String { + fn from(line: &Spans<'a>) -> String { + line.0.iter().map(|s| &*s.content).collect() } } -- cgit v1.2.3-70-g09d2