diff --git a/helix-core/src/state.rs b/helix-core/src/state.rs index 05380d5ee..8ebf3887a 100644 --- a/helix-core/src/state.rs +++ b/helix-core/src/state.rs @@ -117,6 +117,12 @@ impl State { Selection::new(ranges.collect(), sel.primary_index) // TODO: update selection in state via transaction } + + pub fn file(&self) -> &Rope { + // used to access file contents for rendering to screen + let copy = &self.doc.contents; + copy + } } /// Coordinates are a 0-indexed line and column pair. diff --git a/helix-term/src/editor.rs b/helix-term/src/editor.rs index 1007dc36d..3df84d6e5 100644 --- a/helix-term/src/editor.rs +++ b/helix-term/src/editor.rs @@ -2,7 +2,8 @@ use crossterm::{ cursor, cursor::position, event::{self, read, Event, EventStream, KeyCode, KeyEvent}, - execute, queue, style, + execute, queue, + style::Print, terminal::{self, disable_raw_mode, enable_raw_mode}, }; use futures::{future::FutureExt, select, StreamExt}; @@ -39,6 +40,10 @@ impl Editor { fn render(&self) { // TODO: + match &self.state { + Some(s) => execute!(stdout(), cursor::MoveTo(0, 0), Print(s.file())).unwrap(), + None => (), + } } pub async fn print_events(&mut self) { diff --git a/helix-term/test.txt b/helix-term/test.txt new file mode 100644 index 000000000..1802a7474 --- /dev/null +++ b/helix-term/test.txt @@ -0,0 +1,3 @@ +aaa +bbb +ccc