summaryrefslogtreecommitdiff
path: root/helix-term/src/ui/editor.rs
diff options
context:
space:
mode:
Diffstat (limited to 'helix-term/src/ui/editor.rs')
-rw-r--r--helix-term/src/ui/editor.rs12
1 files changed, 12 insertions, 0 deletions
diff --git a/helix-term/src/ui/editor.rs b/helix-term/src/ui/editor.rs
index 5ceff39e..52e58163 100644
--- a/helix-term/src/ui/editor.rs
+++ b/helix-term/src/ui/editor.rs
@@ -370,6 +370,7 @@ impl EditorView {
" ".repeat(tab_width)
};
let space = whitespace.characters.space.to_string();
+ let nbsp = whitespace.characters.nbsp.to_string();
let newline = if whitespace.render.newline() == WhitespaceRenderValue::All {
whitespace.characters.newline.to_string()
} else {
@@ -406,6 +407,14 @@ impl EditorView {
" "
};
+ let nbsp = if whitespace.render.nbsp() == WhitespaceRenderValue::All
+ && text.len_chars() < end
+ {
+ &nbsp
+ } else {
+ " "
+ };
+
use helix_core::graphemes::{grapheme_width, RopeGraphemes};
for grapheme in RopeGraphemes::new(text) {
@@ -445,6 +454,9 @@ impl EditorView {
} else if grapheme == " " {
is_whitespace = true;
(space, 1)
+ } else if grapheme == "\u{00A0}" {
+ is_whitespace = true;
+ (nbsp, 1)
} else {
is_whitespace = false;
// Cow will prevent allocations if span contained in a single slice