fn draw()

in below/view/src/command_palette.rs [61:99]


    fn draw(&self, printer: &Printer) {
        // Right most X position that contains text
        let mut max_x = printer.size.x;

        printer.print_hline((0, 0), printer.size.x, "─");
        if let Some(filter) = &self.filter {
            let filter = format!("| Filter: {:>10.10} |", filter);
            max_x -= filter.len();
            printer.print((max_x, 0), &filter);
        }

        if self.fold {
            let text = "| Fold |";
            max_x -= text.len();
            printer.print((max_x, 0), text);
        }

        match self.mode {
            CPMode::Command => {
                printer.print((0, 1), ":");
                let inner_printer = printer.offset((1, 1));
                self.cmd_view.borrow_mut().layout(inner_printer.size);
                self.cmd_view.borrow().draw(&inner_printer);
            }
            _ => {
                // Message should adapt the screen size
                let mut msg_len_left = self.content.len();
                let mut idx = 0;
                let mut line = 1;
                while msg_len_left > printer.size.x {
                    self.print(printer, (0, line), idx);
                    msg_len_left -= printer.size.x;
                    idx += printer.size.x;
                    line += 1;
                }
                self.print(printer, (0, line), idx);
            }
        }
    }