Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'helix-term/src/ui/info.rs')
-rw-r--r--helix-term/src/ui/info.rs25
1 files changed, 16 insertions, 9 deletions
diff --git a/helix-term/src/ui/info.rs b/helix-term/src/ui/info.rs
index 1cac7c86..55b0e65d 100644
--- a/helix-term/src/ui/info.rs
+++ b/helix-term/src/ui/info.rs
@@ -2,13 +2,16 @@ use crate::compositor::{Component, Context};
use helix_view::graphics::{Margin, Rect};
use helix_view::info::Info;
use tui::buffer::Buffer as Surface;
-use tui::text::Text;
-use tui::widgets::{Block, Paragraph, Widget};
+use tui::widgets::{Block, Borders, Paragraph, Widget};
impl Component for Info {
fn render(&mut self, viewport: Rect, surface: &mut Surface, cx: &mut Context) {
- let text_style = cx.editor.theme.get("ui.text.info");
- let popup_style = cx.editor.theme.get("ui.popup.info");
+ let get_theme = |style, fallback| {
+ let theme = &cx.editor.theme;
+ theme.try_get(style).unwrap_or_else(|| theme.get(fallback))
+ };
+ let text_style = get_theme("ui.info.text", "ui.text");
+ let popup_style = text_style.patch(get_theme("ui.info", "ui.popup"));
// Calculate the area of the terminal to modify. Because we want to
// render at the bottom right, we use the viewport's width and height
@@ -23,15 +26,19 @@ impl Component for Info {
));
surface.clear_with(area, popup_style);
- let block = Block::bordered()
- .title(self.title.as_ref())
+ let block = Block::default()
+ .title(self.title.as_str())
+ .borders(Borders::ALL)
.border_style(popup_style);
- let margin = Margin::horizontal(1);
- let inner = block.inner(area).inner(margin);
+ let margin = Margin {
+ vertical: 0,
+ horizontal: 1,
+ };
+ let inner = block.inner(area).inner(&margin);
block.render(area, surface);
- Paragraph::new(&Text::from(self.text.as_str()))
+ Paragraph::new(self.text.as_str())
.style(text_style)
.render(inner, surface);
}