summaryrefslogtreecommitdiff
path: root/src/widgets/luaeditor/treesitter.rs
diff options
context:
space:
mode:
authorNathan Reiner <nathan@nathanreiner.xyz>2024-07-25 17:09:09 +0200
committerNathan Reiner <nathan@nathanreiner.xyz>2024-07-25 17:09:09 +0200
commitdaa65dd89ec432522482729261d81e916e645ade (patch)
treecc16c222087de6f5545d9e6a3f300a66ad36f1ab /src/widgets/luaeditor/treesitter.rs
parent20e7569e2bf11d110d5afd2a99eacdbd65a7e055 (diff)
editor add scrolling
Diffstat (limited to 'src/widgets/luaeditor/treesitter.rs')
-rw-r--r--src/widgets/luaeditor/treesitter.rs11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/widgets/luaeditor/treesitter.rs b/src/widgets/luaeditor/treesitter.rs
index 57013f9..1a4dc04 100644
--- a/src/widgets/luaeditor/treesitter.rs
+++ b/src/widgets/luaeditor/treesitter.rs
@@ -64,7 +64,16 @@ pub fn highlighter_split<'a>(
for event in highlights {
match event.unwrap() {
HighlightEvent::Source { start, end } => {
- splits.push((current, std::str::from_utf8(&s[start..end]).unwrap()));
+ let group = std::str::from_utf8(&s[start..end]).unwrap();
+
+ for line in group.lines() {
+ splits.push((current, line));
+ splits.push((current, "\n"));
+ }
+
+ if !group.ends_with("\n") {
+ splits.pop();
+ }
}
HighlightEvent::HighlightStart(s) => current = Some(s),
HighlightEvent::HighlightEnd => current = None,