Add option to preserve newlines in match list

This commit is contained in:
Federico Terzi 2020-06-22 21:42:50 +02:00
parent 968ef578c1
commit 32d7dbc88e
2 changed files with 16 additions and 3 deletions

View File

@ -21,7 +21,7 @@ use serde::Serialize;
use crate::config::ConfigSet;
use crate::matcher::{Match, MatchContentType};
pub fn list_matches(config_set: ConfigSet, onlytriggers: bool) {
pub fn list_matches(config_set: ConfigSet, onlytriggers: bool, preserve_newlines: bool) {
let matches = filter_matches(config_set);
for m in matches {
@ -31,7 +31,12 @@ pub fn list_matches(config_set: ConfigSet, onlytriggers: bool) {
}else {
match m.content {
MatchContentType::Text(ref text) => {
println!("{} - {}", trigger, text.replace)
let replace = if preserve_newlines {
text.replace.to_owned()
}else{
text.replace.replace("\n", " ")
};
println!("{} - {}", trigger, replace)
},
MatchContentType::Image(_) => {
// Skip image matches for now

View File

@ -177,6 +177,13 @@ fn main() {
.required(false)
.takes_value(false)
)
.arg(Arg::with_name("preservenewlines")
.short("n")
.long("preservenewlines")
.help("Preserve newlines when printing replacements")
.required(false)
.takes_value(false)
)
)
.subcommand(SubCommand::with_name("exec")
.about("Triggers the expansion of the given match")
@ -1266,9 +1273,10 @@ fn match_main(config_set: ConfigSet, matches: &ArgMatches) {
if let Some(matches) = matches.subcommand_matches("list") {
let json = matches.is_present("json");
let onlytriggers = matches.is_present("onlytriggers");
let preserve_newlines = matches.is_present("preservenewlines");
if !json {
crate::cli::list_matches(config_set, onlytriggers);
crate::cli::list_matches(config_set, onlytriggers, preserve_newlines);
}else{
crate::cli::list_matches_as_json(config_set);
}