on master help sign in
Render current line:col.
commitd692390d10cdbf7ac98128688de2f7fa0ba9bc06 authorBlaž Hrastnik <blaz@mxxn.io> dateFri 9 Apr 2021, 17:56 (6 years ago) parent8654296
1 file changed+19−3
helix-term/src/ui/editor.rs+19−3
helix-term/src/ui/editor.rs+19−3
@@ -7,6 +7,7 @@ use crate::{
77};
88
99use helix_core::{
10+ coords_at_pos,
1011 syntax::{self, HighlightEvent},
1112 Position, Range,
1213};
@@ -87,7 +88,7 @@ impl EditorView {
8788 view.area.width,
8889 1,
8990 );
90− self.render_statusline(doc, area, surface, theme, is_focused);
91+ self.render_statusline(doc, view, area, surface, theme, is_focused);
9192
9293 // render status
9394 if let Some(status_msg) = &self.status_msg {
@@ -411,6 +412,7 @@ impl EditorView {
411412 pub fn render_statusline(
412413 &self,
413414 doc: &Document,
415+ view: &View,
414416 viewport: Rect,
415417 surface: &mut Surface,
416418 theme: &Theme,
@@ -449,10 +451,24 @@ impl EditorView {
449451 );
450452 }
451453
452− surface.set_string(
453− viewport.x + viewport.width.saturating_sub(10),
454+ surface.set_stringn(
455+ viewport.x + viewport.width.saturating_sub(15),
454456 viewport.y,
455457 format!("{}", doc.diagnostics.len()),
458+ 4,
459+ text_color,
460+ );
461+
462+ // render line:col
463+ let pos = coords_at_pos(doc.text().slice(..), doc.selection(view.id).cursor());
464+
465+ let text = format!("{}:{}", pos.row + 1, pos.col + 1); // convert to 1-indexing
466+ let len = text.len();
467+
468+ surface.set_string(
469+ viewport.x + viewport.width.saturating_sub(len as u16 + 1),
470+ viewport.y,
471+ text,
456472 text_color,
457473 );
458474 }