diff --git a/helix-term/src/application.rs b/helix-term/src/application.rs index cf8ab233e..feebde25a 100644 --- a/helix-term/src/application.rs +++ b/helix-term/src/application.rs @@ -125,7 +125,7 @@ impl Application { let theme_mode = backend.get_theme_mode(); let terminal = Terminal::new(backend)?; - let area = terminal.size().expect("couldn't get terminal size"); + let area = terminal.size(); let mut compositor = Compositor::new(area); let config = Arc::new(ArcSwap::from_pointee(config)); let handlers = handlers::setup(config.clone()); @@ -542,7 +542,7 @@ impl Application { } // redraw the terminal - let area = self.terminal.size().expect("couldn't get terminal size"); + let area = self.terminal.size(); self.compositor.resize(area); self.terminal.clear().expect("couldn't clear terminal"); @@ -700,7 +700,7 @@ impl Application { .resize(Rect::new(0, 0, cols, rows)) .expect("Unable to resize terminal"); - let area = self.terminal.size().expect("couldn't get terminal size"); + let area = self.terminal.size(); self.compositor.resize(area); @@ -729,7 +729,7 @@ impl Application { .resize(Rect::new(0, 0, width, height)) .expect("Unable to resize terminal"); - let area = self.terminal.size().expect("couldn't get terminal size"); + let area = self.terminal.size(); self.compositor.resize(area); diff --git a/helix-tui/src/terminal.rs b/helix-tui/src/terminal.rs index 72f38d717..5e4007fc4 100644 --- a/helix-tui/src/terminal.rs +++ b/helix-tui/src/terminal.rs @@ -73,6 +73,14 @@ where viewport: Viewport, } +/// Default terminal size: 80 columns, 24 lines +pub const DEFAULT_TERMINAL_SIZE: Rect = Rect { + x: 0, + y: 0, + width: 80, + height: 24, +}; + impl Terminal where B: Backend, @@ -80,7 +88,7 @@ where /// Wrapper around Terminal initialization. Each buffer is initialized with a blank string and /// default colors for the foreground and the background pub fn new(backend: B) -> io::Result> { - let size = backend.size()?; + let size = backend.size().unwrap_or(DEFAULT_TERMINAL_SIZE); Terminal::with_options( backend, TerminalOptions { @@ -159,7 +167,7 @@ where /// Queries the backend for size and resizes if it doesn't match the previous size. pub fn autoresize(&mut self) -> io::Result { - let size = self.size()?; + let size = self.size(); if size != self.viewport.area { self.resize(size)?; }; @@ -235,7 +243,7 @@ where } /// Queries the real size of the backend. - pub fn size(&self) -> io::Result { - self.backend.size() + pub fn size(&self) -> Rect { + self.backend.size().unwrap_or(DEFAULT_TERMINAL_SIZE) } }