@@ -288,6 +288,7 @@ pub enum WhitespaceRender {
288 Specific {
288 Specific {
289 default: Option<WhitespaceRenderValue>,
289 default: Option<WhitespaceRenderValue>,
290 space: Option<WhitespaceRenderValue>,
290 space: Option<WhitespaceRenderValue>,
291+ nbsp: Option<WhitespaceRenderValue>,
291 tab: Option<WhitespaceRenderValue>,
292 tab: Option<WhitespaceRenderValue>,
292 newline: Option<WhitespaceRenderValue>,
293 newline: Option<WhitespaceRenderValue>,
@@ -311,6 +312,14 @@ impl WhitespaceRender {
315+ pub fn nbsp(&self) -> WhitespaceRenderValue {
317+ Self::Basic(val) => val,
318+ Self::Specific { default, nbsp, .. } => {
319+ nbsp.or(default).unwrap_or(WhitespaceRenderValue::None)
314 pub fn tab(&self) -> WhitespaceRenderValue {
323 pub fn tab(&self) -> WhitespaceRenderValue {
315 match *self {
324 match *self {
316 Self::Basic(val) => val,
325 Self::Basic(val) => val,
@@ -333,6 +342,7 @@ impl WhitespaceRender {
333#[serde(default)]
342#[serde(default)]
334pub struct WhitespaceCharacters {
343pub struct WhitespaceCharacters {
335 pub space: char,
344 pub space: char,
336 pub tab: char,
346 pub tab: char,
337 pub newline: char,
347 pub newline: char,
@@ -341,6 +351,7 @@ impl Default for WhitespaceCharacters {
341 fn default() -> Self {
351 fn default() -> Self {
343 space: '·', // U+00B7
353 space: '·', // U+00B7
354+ nbsp: '⍽', // U+237D
344 tab: '→', // U+2192
355 tab: '→', // U+2192
345 newline: '⏎', // U+23CE
356 newline: '⏎', // U+23CE