helix-mods/helix-core/src/diagnostic.rs

34 lines
794 B
Rust
Raw Normal View History

2021-10-25 18:02:16 +02:00
//! LSP diagnostic utility types.
use serde::{Deserialize, Serialize};
2021-10-25 18:02:16 +02:00
/// Describes the severity level of a [`Diagnostic`].
#[derive(Debug, Clone, Copy, Eq, PartialEq, PartialOrd, Ord, Deserialize, Serialize)]
pub enum Severity {
Hint,
Info,
Warning,
Error,
}
impl Default for Severity {
fn default() -> Self {
Self::Hint
}
}
2021-10-25 18:02:16 +02:00
/// A range of `char`s within the text.
#[derive(Debug, Clone, Copy, PartialOrd, Ord, PartialEq, Eq)]
pub struct Range {
pub start: usize,
pub end: usize,
}
2021-10-25 18:02:16 +02:00
/// Corresponds to [`lsp_types::Diagnostic`](https://docs.rs/lsp-types/0.91.0/lsp_types/struct.Diagnostic.html)
2021-09-24 03:29:41 +02:00
#[derive(Debug, Clone)]
pub struct Diagnostic {
pub range: Range,
pub line: usize,
pub message: String,
pub severity: Option<Severity>,
}