From 05ee673197c5f882aec0e894cc45e574bb2e46fe Mon Sep 17 00:00:00 2001 From: Francesc Elies Date: Tue, 21 Mar 2023 23:15:01 +0100 Subject: [PATCH] Show diagnostic codes for LSP diagnostics (#6378) Co-authored-by: Michael Davis --- helix-term/src/ui/editor.rs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/helix-term/src/ui/editor.rs b/helix-term/src/ui/editor.rs index 7c22df747..0b6ab0465 100644 --- a/helix-term/src/ui/editor.rs +++ b/helix-term/src/ui/editor.rs @@ -11,6 +11,7 @@ use crate::{ }; use helix_core::{ + diagnostic::NumberOrString, graphemes::{ ensure_grapheme_boundary_next_byte, next_grapheme_boundary, prev_grapheme_boundary, }, @@ -30,7 +31,7 @@ use helix_view::{ }; use std::{mem::take, num::NonZeroUsize, path::PathBuf, rc::Rc, sync::Arc}; -use tui::buffer::Buffer as Surface; +use tui::{buffer::Buffer as Surface, text::Span}; use super::statusline; use super::{document::LineDecoration, lsp::SignatureHelp}; @@ -684,6 +685,14 @@ impl EditorView { }); let text = Text::styled(&diagnostic.message, style); lines.extend(text.lines); + let code = diagnostic.code.as_ref().map(|x| match x { + NumberOrString::Number(n) => format!("({n})"), + NumberOrString::String(s) => format!("({s})"), + }); + if let Some(code) = code { + let span = Span::styled(code, style); + lines.push(span.into()); + } } let paragraph = Paragraph::new(lines)