on master help sign in
Render the preview in FilePicker
commit15cc09fc81d971cb9dbc2d5132e43919601190c2 authorGokul Soumya <gokulps15@gmail.com> dateSun 18 Jun 2023, 12:14 (3 years ago) parent34c8f9a
1 file changed+24−26
helix-term/src/ui/picker.rs+24−26
helix-term/src/ui/picker.rs+24−26
@@ -656,44 +656,21 @@ impl<T: Item + 'static> FilePicker<T> {
656656 }
657657
658658 fn render_preview(&mut self, area: Rect, surface: &mut Surface, cx: &mut Context) {
659− // +---------+ +---------+
660− // |prompt | |preview |
661− // +---------+ | |
662− // |picker | | |
663− // | | | |
664− // +---------+ +---------+
665−
666− let render_preview = self.picker.show_preview && area.width > MIN_AREA_WIDTH_FOR_PREVIEW;
667659 // -- Render the frame:
668660 // clear area
669661 let background = cx.editor.theme.get("ui.background");
670662 let text = cx.editor.theme.get("ui.text");
671663 surface.clear_with(area, background);
672664
673− let picker_width = if render_preview {
674− area.width / 2
675− } else {
676− area.width
677− };
678−
679− let picker_area = area.with_width(picker_width);
680− self.picker.render(picker_area, surface, cx);
681−
682− if !render_preview {
683− return;
684− }
685−
686− let preview_area = area.clip_left(picker_width);
687−
688665 // don't like this but the lifetime sucks
689666 let block = Block::default().borders(Borders::ALL);
690667
691668 // calculate the inner area inside the box
692− let inner = block.inner(preview_area);
669+ let inner = block.inner(area);
693670 // 1 column gap on either side
694671 let margin = Margin::horizontal(1);
695672 let inner = inner.inner(&margin);
696− block.render(preview_area, surface);
673+ block.render(area, surface);
697674
698675 if let Some((path, range)) = self.current_file(cx.editor) {
699676 let preview = self.get_preview(path, cx.editor);
@@ -873,7 +850,28 @@ impl<T: Item + 'static> FilePicker<T> {
873850
874851impl<T: Item + 'static> Component for FilePicker<T> {
875852 fn render(&mut self, area: Rect, surface: &mut Surface, cx: &mut Context) {
876− self.render_picker(area, surface, cx);
853+ // +---------+ +---------+
854+ // |prompt | |preview |
855+ // +---------+ | |
856+ // |picker | | |
857+ // | | | |
858+ // +---------+ +---------+
859+
860+ let render_preview = self.picker.show_preview && area.width > MIN_AREA_WIDTH_FOR_PREVIEW;
861+
862+ let picker_width = if render_preview {
863+ area.width / 2
864+ } else {
865+ area.width
866+ };
867+
868+ let picker_area = area.with_width(picker_width);
869+ self.render_picker(picker_area, surface, cx);
870+
871+ if render_preview {
872+ let preview_area = area.clip_left(picker_width);
873+ self.render_preview(preview_area, surface, cx);
874+ }
877875 }
878876}
879877