|
|
@ -288,6 +288,7 @@ pub enum WhitespaceRender {
|
|
|
|
Specific {
|
|
|
|
Specific {
|
|
|
|
default: Option<WhitespaceRenderValue>,
|
|
|
|
default: Option<WhitespaceRenderValue>,
|
|
|
|
space: Option<WhitespaceRenderValue>,
|
|
|
|
space: Option<WhitespaceRenderValue>,
|
|
|
|
|
|
|
|
nbsp: Option<WhitespaceRenderValue>,
|
|
|
|
tab: Option<WhitespaceRenderValue>,
|
|
|
|
tab: Option<WhitespaceRenderValue>,
|
|
|
|
newline: Option<WhitespaceRenderValue>,
|
|
|
|
newline: Option<WhitespaceRenderValue>,
|
|
|
|
},
|
|
|
|
},
|
|
|
@ -311,6 +312,14 @@ impl WhitespaceRender {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
pub fn nbsp(&self) -> WhitespaceRenderValue {
|
|
|
|
|
|
|
|
match *self {
|
|
|
|
|
|
|
|
Self::Basic(val) => val,
|
|
|
|
|
|
|
|
Self::Specific { default, nbsp, .. } => {
|
|
|
|
|
|
|
|
nbsp.or(default).unwrap_or(WhitespaceRenderValue::None)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
pub fn tab(&self) -> WhitespaceRenderValue {
|
|
|
|
pub fn tab(&self) -> WhitespaceRenderValue {
|
|
|
|
match *self {
|
|
|
|
match *self {
|
|
|
|
Self::Basic(val) => val,
|
|
|
|
Self::Basic(val) => val,
|
|
|
@ -333,6 +342,7 @@ impl WhitespaceRender {
|
|
|
|
#[serde(default)]
|
|
|
|
#[serde(default)]
|
|
|
|
pub struct WhitespaceCharacters {
|
|
|
|
pub struct WhitespaceCharacters {
|
|
|
|
pub space: char,
|
|
|
|
pub space: char,
|
|
|
|
|
|
|
|
pub nbsp: char,
|
|
|
|
pub tab: char,
|
|
|
|
pub tab: char,
|
|
|
|
pub newline: char,
|
|
|
|
pub newline: char,
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -341,6 +351,7 @@ impl Default for WhitespaceCharacters {
|
|
|
|
fn default() -> Self {
|
|
|
|
fn default() -> Self {
|
|
|
|
Self {
|
|
|
|
Self {
|
|
|
|
space: '·', // U+00B7
|
|
|
|
space: '·', // U+00B7
|
|
|
|
|
|
|
|
nbsp: '⍽', // U+237D
|
|
|
|
tab: '→', // U+2192
|
|
|
|
tab: '→', // U+2192
|
|
|
|
newline: '⏎', // U+23CE
|
|
|
|
newline: '⏎', // U+23CE
|
|
|
|
}
|
|
|
|
}
|
|
|
|