//! LSP diagnostic utility types. use std::fmt; use serde::{Deserialize, Serialize}; /// Describes the severity level of a [`Diagnostic`]. #[derive(Debug, Clone, Copy, Eq, PartialEq, PartialOrd, Ord, Serialize, Deserialize)] #[serde(rename_all = "lowercase")] pub enum Severity { Hint, Info, Warning, Error, } impl Default for Severity { fn default() -> Self { Self::Hint } } // while I would prefer having this in helix-lsp that necessitates a bunch of // conversions I would rather not add. I think its fine since this just a very // trivial newtype wrapper and we would need something similar once we define // completions in core slotmap::new_key_type! { pub struct LanguageServerId; } impl fmt::Display for LanguageServerId { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!(f, "{:?}", self.0) } }