-
Notifications
You must be signed in to change notification settings - Fork 69
/
editor.rs
32 lines (28 loc) · 944 Bytes
/
editor.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
use inquire::{
error::InquireResult,
ui::{Color, RenderConfig, Styled},
Editor, Text,
};
fn main() -> InquireResult<()> {
let _title = Text::new("Title:").prompt()?;
let _description = Editor::new("Description:")
.with_formatter(&|submission| {
let char_count = submission.chars().count();
if char_count == 0 {
String::from("<skipped>")
} else if char_count <= 20 {
submission.into()
} else {
let mut substr: String = submission.chars().take(17).collect();
substr.push_str("...");
substr
}
})
.with_render_config(description_render_config())
.prompt()?;
Ok(())
}
fn description_render_config() -> RenderConfig<'static> {
RenderConfig::default()
.with_canceled_prompt_indicator(Styled::new("<skipped>").with_fg(Color::DarkYellow))
}