@@ -55,13 +55,26 @@ impl EditorView {
55 is_focused: bool,
55 is_focused: bool,
57 let area = Rect::new(
57 let area = Rect::new(
58− viewport.x + OFFSET,
58+ view.area.x + OFFSET,
59− viewport.y,
59+ view.area.y,
60− viewport.width - OFFSET,
60+ view.area.width - OFFSET,
61− viewport.height.saturating_sub(1),
61+ view.area.height.saturating_sub(1),
62 ); // - 1 for statusline
62 ); // - 1 for statusline
63 self.render_buffer(doc, view, area, surface, theme, is_focused);
63 self.render_buffer(doc, view, area, surface, theme, is_focused);
65+ // if we're not at the edge of the screen, draw a right border
66+ if viewport.right() != view.area.right() {
67+ let x = area.right();
68+ let border_style = theme.get("ui.window");
69+ for y in area.top()..area.bottom() {
72+ // .set_symbol(tui::symbols::line::VERTICAL)
74+ .set_style(border_style);
65 // clear with background color
78 // clear with background color
66 // TODO: this seems to prevent setting style later
79 // TODO: this seems to prevent setting style later
67 // surface.set_style(viewport, theme.get("ui.background"));
80 // surface.set_style(viewport, theme.get("ui.background"));
@@ -69,9 +82,9 @@ impl EditorView {
69 self.render_diagnostics(doc, view, area, surface, theme, is_focused);
82 self.render_diagnostics(doc, view, area, surface, theme, is_focused);
71 let area = Rect::new(
84 let area = Rect::new(
72− viewport.x,
85+ view.area.x,
73− viewport.y + viewport.height.saturating_sub(1),
86+ view.area.y + view.area.height.saturating_sub(1),
74− viewport.width,
87+ view.area.width,
77 self.render_statusline(doc, area, surface, theme, is_focused);
90 self.render_statusline(doc, area, surface, theme, is_focused);
@@ -79,7 +92,12 @@ impl EditorView {
79 // render status
92 // render status
80 if let Some(status_msg) = &self.status_msg {
93 if let Some(status_msg) = &self.status_msg {
81 let style = Style::default().fg(Color::Rgb(164, 160, 232)); // lavender
94 let style = Style::default().fg(Color::Rgb(164, 160, 232)); // lavender
82− surface.set_string(viewport.x, viewport.y + viewport.height, status_msg, style);
95+ surface.set_string(
97+ view.area.y + view.area.height,
@@ -595,7 +613,7 @@ impl Component for EditorView {
595 fn render(&self, mut area: Rect, surface: &mut Surface, cx: &mut Context) {
613 fn render(&self, mut area: Rect, surface: &mut Surface, cx: &mut Context) {
596 for (view, is_focused) in cx.editor.tree.views() {
614 for (view, is_focused) in cx.editor.tree.views() {
597 let doc = cx.editor.document(view.doc).unwrap();
615 let doc = cx.editor.document(view.doc).unwrap();
598− self.render_view(doc, view, view.area, surface, &cx.editor.theme, is_focused);
616+ self.render_view(doc, view, area, surface, &cx.editor.theme, is_focused);
601 if let Some(completion) = &self.completion {
619 if let Some(completion) = &self.completion {