nimbus_fml/editing/
mod.rs1mod cursor_position;
6mod error_converter;
7mod error_kind;
8mod error_path;
9mod values_finder;
10
11pub(crate) use cursor_position::{CursorPosition, CursorSpan};
12pub(crate) use error_converter::ErrorConverter;
13pub(crate) use error_kind::ErrorKind;
14pub(crate) use error_path::ErrorPath;
15
16pub(crate) struct FeatureValidationError {
17 pub(crate) path: ErrorPath,
18 pub(crate) kind: ErrorKind,
19}
20
21#[derive(Debug, PartialEq, Default)]
22pub struct FmlEditorError {
23 pub message: String,
25 pub highlight: Option<String>,
27 pub error_span: CursorSpan,
30 pub corrections: Vec<CorrectionCandidate>,
33 pub line: u32,
34 pub col: u32,
35}
36
37#[derive(Debug, Default, PartialEq)]
38pub struct CorrectionCandidate {
39 pub insert: String,
41 pub display_name: Option<String>,
43
44 pub insertion_span: Option<CursorSpan>,
47
48 pub cursor_at: Option<CursorPosition>,
51}
52
53#[cfg(feature = "client-lib")]
55impl CorrectionCandidate {
56 pub(crate) fn string_replacement(s: &str) -> Self {
59 CorrectionCandidate {
60 insert: format!("\"{}\"", s),
61 display_name: Some(s.to_owned()),
62 ..Default::default()
63 }
64 }
65
66 pub(crate) fn literal_replacement(s: &str) -> Self {
69 CorrectionCandidate {
70 insert: s.to_owned(),
71 ..Default::default()
72 }
73 }
74}