@@ -77,7 +77,7 @@ impl Editor {
78 // clear with background color
78 // clear with background color
79 self.surface
79 self.surface
80− .set_style(area, view.theme.get("ui.background").into());
80+ .set_style(area, view.theme.get("ui.background"));
82 let offset = 5 + 1; // 5 linenr + 1 gutter
82 let offset = 5 + 1; // 5 linenr + 1 gutter
83 let viewport = Rect::new(offset, 0, self.size.0, self.size.1 - 1); // - 1 for statusline
83 let viewport = Rect::new(offset, 0, self.size.0, self.size.1 - 1); // - 1 for statusline
@@ -143,16 +143,14 @@ impl Editor {
143 // TODO: filter out spans out of viewport for now..
143 // TODO: filter out spans out of viewport for now..
145 let start = view.state.doc().byte_to_char(start);
145 let start = view.state.doc().byte_to_char(start);
146− let end = view.state.doc().byte_to_char(end);
146+ let end = view.state.doc().byte_to_char(end); // <-- index 744, len 743
148 let text = view.state.doc().slice(start..end);
148 let text = view.state.doc().slice(start..end);
150 use helix_core::graphemes::{grapheme_width, RopeGraphemes};
150 use helix_core::graphemes::{grapheme_width, RopeGraphemes};
152 let style = match spans.first() {
152 let style = match spans.first() {
154− view.theme.get(view.theme.scopes()[span.0].as_str()).into()
153+ Some(span) => view.theme.get(view.theme.scopes()[span.0].as_str()),
156 None => Style::default().fg(Color::Rgb(164, 160, 232)), // lavender
154 None => Style::default().fg(Color::Rgb(164, 160, 232)), // lavender
@@ -209,7 +207,7 @@ impl Editor {
212− let style: Style = view.theme.get("ui.linenr").into();
210+ let style: Style = view.theme.get("ui.linenr");
213 for (i, line) in (view.first_line..(last_line as u16)).enumerate() {
211 for (i, line) in (view.first_line..(last_line as u16)).enumerate() {
214 self.surface
212 self.surface
215 .set_stringn(0, line, format!("{:>5}", i + 1), 5, style);
213 .set_stringn(0, line, format!("{:>5}", i + 1), 5, style);
@@ -248,7 +246,7 @@ impl Editor {
249 self.surface.set_style(
247 self.surface.set_style(
250 Rect::new(0, self.size.1 - 1, self.size.0, 1),
248 Rect::new(0, self.size.1 - 1, self.size.0, 1),
251− view.theme.get("ui.statusline").into(),
249+ view.theme.get("ui.statusline"),
253 // TODO: unfocused one with different color
251 // TODO: unfocused one with different color
254 let text_color = Style::default().fg(Color::Rgb(219, 191, 239)); // lilac
252 let text_color = Style::default().fg(Color::Rgb(219, 191, 239)); // lilac
@@ -325,14 +323,12 @@ impl Editor {
325 if let Some(command) = keymap[&Mode::Insert].get(&keys) {
323 if let Some(command) = keymap[&Mode::Insert].get(&keys) {
326 // TODO: handle count other than 1
324 // TODO: handle count other than 1
327 command(view, 1);
325 command(view, 1);
329− if let KeyEvent {
326+ } else if let KeyEvent {
330− code: KeyCode::Char(c),
327+ code: KeyCode::Char(c),
332− } = event
329+ } = event
334− commands::insert_char(view, c);
331+ commands::insert_char(view, c);
337 view.ensure_cursor_in_view();
333 view.ensure_cursor_in_view();