From 391669a451c4eedd74dd6e1794601d2ca793340c Mon Sep 17 00:00:00 2001 From: Simon Fraser Date: Sun, 27 Oct 2019 14:50:12 +0000 Subject: Add 'f' flag for placeholder expression (#1733) If present the contents of the selection will be placed in a temporary file, and the filename will be placed into the string instead. --- src/terminal_test.go | 48 ++++++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 24 deletions(-) (limited to 'src/terminal_test.go') diff --git a/src/terminal_test.go b/src/terminal_test.go index 62b20c45..8b828af4 100644 --- a/src/terminal_test.go +++ b/src/terminal_test.go @@ -30,92 +30,92 @@ func TestReplacePlaceholder(t *testing.T) { t.Errorf("expected: %s, actual: %s", expected, result) } } - + printsep := "\n" // {}, preserve ansi - result = replacePlaceholder("echo {}", false, Delimiter{}, false, "query", items1) + result = replacePlaceholder("echo {}", false, Delimiter{}, printsep, false, "query", items1) check("echo ' foo'\\''bar \x1b[31mbaz\x1b[m'") // {}, strip ansi - result = replacePlaceholder("echo {}", true, Delimiter{}, false, "query", items1) + result = replacePlaceholder("echo {}", true, Delimiter{}, printsep, false, "query", items1) check("echo ' foo'\\''bar baz'") // {}, with multiple items - result = replacePlaceholder("echo {}", true, Delimiter{}, false, "query", items2) + result = replacePlaceholder("echo {}", true, Delimiter{}, printsep, false, "query", items2) check("echo 'foo'\\''bar baz'") // {..}, strip leading whitespaces, preserve ansi - result = replacePlaceholder("echo {..}", false, Delimiter{}, false, "query", items1) + result = replacePlaceholder("echo {..}", false, Delimiter{}, printsep, false, "query", items1) check("echo 'foo'\\''bar \x1b[31mbaz\x1b[m'") // {..}, strip leading whitespaces, strip ansi - result = replacePlaceholder("echo {..}", true, Delimiter{}, false, "query", items1) + result = replacePlaceholder("echo {..}", true, Delimiter{}, printsep, false, "query", items1) check("echo 'foo'\\''bar baz'") // {q} - result = replacePlaceholder("echo {} {q}", true, Delimiter{}, false, "query", items1) + result = replacePlaceholder("echo {} {q}", true, Delimiter{}, printsep, false, "query", items1) check("echo ' foo'\\''bar baz' 'query'") // {q}, multiple items - result = replacePlaceholder("echo {+}{q}{+}", true, Delimiter{}, false, "query 'string'", items2) + result = replacePlaceholder("echo {+}{q}{+}", true, Delimiter{}, printsep, false, "query 'string'", items2) check("echo 'foo'\\''bar baz' 'FOO'\\''BAR BAZ''query '\\''string'\\''''foo'\\''bar baz' 'FOO'\\''BAR BAZ'") - result = replacePlaceholder("echo {}{q}{}", true, Delimiter{}, false, "query 'string'", items2) + result = replacePlaceholder("echo {}{q}{}", true, Delimiter{}, printsep, false, "query 'string'", items2) check("echo 'foo'\\''bar baz''query '\\''string'\\''''foo'\\''bar baz'") - result = replacePlaceholder("echo {1}/{2}/{2,1}/{-1}/{-2}/{}/{..}/{n.t}/\\{}/\\{1}/\\{q}/{3}", true, Delimiter{}, false, "query", items1) + result = replacePlaceholder("echo {1}/{2}/{2,1}/{-1}/{-2}/{}/{..}/{n.t}/\\{}/\\{1}/\\{q}/{3}", true, Delimiter{}, printsep, false, "query", items1) check("echo 'foo'\\''bar'/'baz'/'bazfoo'\\''bar'/'baz'/'foo'\\''bar'/' foo'\\''bar baz'/'foo'\\''bar baz'/{n.t}/{}/{1}/{q}/''") - result = replacePlaceholder("echo {1}/{2}/{-1}/{-2}/{..}/{n.t}/\\{}/\\{1}/\\{q}/{3}", true, Delimiter{}, false, "query", items2) + result = replacePlaceholder("echo {1}/{2}/{-1}/{-2}/{..}/{n.t}/\\{}/\\{1}/\\{q}/{3}", true, Delimiter{}, printsep, false, "query", items2) check("echo 'foo'\\''bar'/'baz'/'baz'/'foo'\\''bar'/'foo'\\''bar baz'/{n.t}/{}/{1}/{q}/''") - result = replacePlaceholder("echo {+1}/{+2}/{+-1}/{+-2}/{+..}/{n.t}/\\{}/\\{1}/\\{q}/{+3}", true, Delimiter{}, false, "query", items2) + result = replacePlaceholder("echo {+1}/{+2}/{+-1}/{+-2}/{+..}/{n.t}/\\{}/\\{1}/\\{q}/{+3}", true, Delimiter{}, printsep, false, "query", items2) check("echo 'foo'\\''bar' 'FOO'\\''BAR'/'baz' 'BAZ'/'baz' 'BAZ'/'foo'\\''bar' 'FOO'\\''BAR'/'foo'\\''bar baz' 'FOO'\\''BAR BAZ'/{n.t}/{}/{1}/{q}/'' ''") // forcePlus - result = replacePlaceholder("echo {1}/{2}/{-1}/{-2}/{..}/{n.t}/\\{}/\\{1}/\\{q}/{3}", true, Delimiter{}, true, "query", items2) + result = replacePlaceholder("echo {1}/{2}/{-1}/{-2}/{..}/{n.t}/\\{}/\\{1}/\\{q}/{3}", true, Delimiter{}, printsep, true, "query", items2) check("echo 'foo'\\''bar' 'FOO'\\''BAR'/'baz' 'BAZ'/'baz' 'BAZ'/'foo'\\''bar' 'FOO'\\''BAR'/'foo'\\''bar baz' 'FOO'\\''BAR BAZ'/{n.t}/{}/{1}/{q}/'' ''") // Whitespace preserving flag with "'" delimiter - result = replacePlaceholder("echo {s1}", true, Delimiter{str: &delim}, false, "query", items1) + result = replacePlaceholder("echo {s1}", true, Delimiter{str: &delim}, printsep, false, "query", items1) check("echo ' foo'") - result = replacePlaceholder("echo {s2}", true, Delimiter{str: &delim}, false, "query", items1) + result = replacePlaceholder("echo {s2}", true, Delimiter{str: &delim}, printsep, false, "query", items1) check("echo 'bar baz'") - result = replacePlaceholder("echo {s}", true, Delimiter{str: &delim}, false, "query", items1) + result = replacePlaceholder("echo {s}", true, Delimiter{str: &delim}, printsep, false, "query", items1) check("echo ' foo'\\''bar baz'") - result = replacePlaceholder("echo {s..}", true, Delimiter{str: &delim}, false, "query", items1) + result = replacePlaceholder("echo {s..}", true, Delimiter{str: &delim}, printsep, false, "query", items1) check("echo ' foo'\\''bar baz'") // Whitespace preserving flag with regex delimiter regex = regexp.MustCompile("\\w+") - result = replacePlaceholder("echo {s1}", true, Delimiter{regex: regex}, false, "query", items1) + result = replacePlaceholder("echo {s1}", true, Delimiter{regex: regex}, printsep, false, "query", items1) check("echo ' '") - result = replacePlaceholder("echo {s2}", true, Delimiter{regex: regex}, false, "query", items1) + result = replacePlaceholder("echo {s2}", true, Delimiter{regex: regex}, printsep, false, "query", items1) check("echo ''\\'''") - result = replacePlaceholder("echo {s3}", true, Delimiter{regex: regex}, false, "query", items1) + result = replacePlaceholder("echo {s3}", true, Delimiter{regex: regex}, printsep, false, "query", items1) check("echo ' '") // No match - result = replacePlaceholder("echo {}/{+}", true, Delimiter{}, false, "query", []*Item{nil, nil}) + result = replacePlaceholder("echo {}/{+}", true, Delimiter{}, printsep, false, "query", []*Item{nil, nil}) check("echo /") // No match, but with selections - result = replacePlaceholder("echo {}/{+}", true, Delimiter{}, false, "query", []*Item{nil, item1}) + result = replacePlaceholder("echo {}/{+}", true, Delimiter{}, printsep, false, "query", []*Item{nil, item1}) check("echo /' foo'\\''bar baz'") // String delimiter - result = replacePlaceholder("echo {}/{1}/{2}", true, Delimiter{str: &delim}, false, "query", items1) + result = replacePlaceholder("echo {}/{1}/{2}", true, Delimiter{str: &delim}, printsep, false, "query", items1) check("echo ' foo'\\''bar baz'/'foo'/'bar baz'") // Regex delimiter regex = regexp.MustCompile("[oa]+") // foo'bar baz - result = replacePlaceholder("echo {}/{1}/{3}/{2..3}", true, Delimiter{regex: regex}, false, "query", items1) + result = replacePlaceholder("echo {}/{1}/{3}/{2..3}", true, Delimiter{regex: regex}, printsep, false, "query", items1) check("echo ' foo'\\''bar baz'/'f'/'r b'/''\\''bar b'") } -- cgit v1.2.3