mirror of https://github.com/cheat/cheat.git
fix(view): whitespace corrections
- Fix bug whereby `--all` flag would conflict with pager - Fix whitespace inconsistencies among view and search outputs
This commit is contained in:
parent
ecc96c64f9
commit
4f2a57fce8
|
@ -75,7 +75,7 @@ func cmdSearch(opts map[string]interface{}, conf config.Config) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// display the cheatsheet title and path
|
// display the cheatsheet title and path
|
||||||
out += fmt.Sprintf("\n%s %s\n",
|
out += fmt.Sprintf("%s %s\n",
|
||||||
display.Underline(sheet.Title),
|
display.Underline(sheet.Title),
|
||||||
display.Faint(fmt.Sprintf("(%s)", sheet.CheatPath), conf),
|
display.Faint(fmt.Sprintf("(%s)", sheet.CheatPath), conf),
|
||||||
)
|
)
|
||||||
|
@ -85,8 +85,8 @@ func cmdSearch(opts map[string]interface{}, conf config.Config) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// trim the leading newline
|
// trim superfluous newlines
|
||||||
out = strings.TrimPrefix(out, "\n")
|
out = strings.TrimSpace(out)
|
||||||
|
|
||||||
// display the output
|
// display the output
|
||||||
// NB: resist the temptation to call `display.Display` multiple times in
|
// NB: resist the temptation to call `display.Display` multiple times in
|
||||||
|
|
|
@ -33,16 +33,17 @@ func cmdView(opts map[string]interface{}, conf config.Config) {
|
||||||
// if --all was passed, display cheatsheets from all cheatpaths
|
// if --all was passed, display cheatsheets from all cheatpaths
|
||||||
if opts["--all"].(bool) {
|
if opts["--all"].(bool) {
|
||||||
// iterate over the cheatpaths
|
// iterate over the cheatpaths
|
||||||
|
out := ""
|
||||||
for _, cheatpath := range cheatsheets {
|
for _, cheatpath := range cheatsheets {
|
||||||
|
|
||||||
// if the cheatpath contains the specified cheatsheet, display it
|
// if the cheatpath contains the specified cheatsheet, display it
|
||||||
if sheet, ok := cheatpath[cheatsheet]; ok {
|
if sheet, ok := cheatpath[cheatsheet]; ok {
|
||||||
|
|
||||||
// identify the matching cheatsheet
|
// identify the matching cheatsheet
|
||||||
fmt.Println(fmt.Sprintf("%s %s",
|
out += fmt.Sprintf("%s %s\n",
|
||||||
display.Underline(sheet.Title),
|
display.Underline(sheet.Title),
|
||||||
display.Faint(fmt.Sprintf("(%s)", sheet.CheatPath), conf),
|
display.Faint(fmt.Sprintf("(%s)", sheet.CheatPath), conf),
|
||||||
))
|
)
|
||||||
|
|
||||||
// apply colorization if requested
|
// apply colorization if requested
|
||||||
if conf.Color(opts) {
|
if conf.Color(opts) {
|
||||||
|
@ -50,11 +51,12 @@ func cmdView(opts map[string]interface{}, conf config.Config) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// display the cheatsheet
|
// display the cheatsheet
|
||||||
display.Write(display.Indent(sheet.Text), conf)
|
out += display.Indent(sheet.Text) + "\n"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// exit early
|
// display and exit
|
||||||
|
display.Write(strings.TrimSuffix(out, "\n"), conf)
|
||||||
os.Exit(0)
|
os.Exit(0)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,10 +7,15 @@ import (
|
||||||
|
|
||||||
// Indent prepends each line of a string with a tab
|
// Indent prepends each line of a string with a tab
|
||||||
func Indent(str string) string {
|
func Indent(str string) string {
|
||||||
|
|
||||||
|
// trim superfluous whitespace
|
||||||
|
str = strings.TrimSpace(str)
|
||||||
|
|
||||||
|
// prepend each line with a tab character
|
||||||
out := ""
|
out := ""
|
||||||
for _, line := range strings.Split(str, "\n") {
|
for _, line := range strings.Split(str, "\n") {
|
||||||
out += fmt.Sprintf("\t%s\n", line)
|
out += fmt.Sprintf("\t%s\n", line)
|
||||||
}
|
}
|
||||||
|
|
||||||
return strings.TrimSuffix(out, "\n")
|
return out
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@ import "testing"
|
||||||
// TestIndent asserts that Indent prepends a tab to each line
|
// TestIndent asserts that Indent prepends a tab to each line
|
||||||
func TestIndent(t *testing.T) {
|
func TestIndent(t *testing.T) {
|
||||||
got := Indent("foo\nbar\nbaz")
|
got := Indent("foo\nbar\nbaz")
|
||||||
want := "\tfoo\n\tbar\n\tbaz"
|
want := "\tfoo\n\tbar\n\tbaz\n"
|
||||||
if got != want {
|
if got != want {
|
||||||
t.Errorf("failed to indent: want: %s, got: %s", want, got)
|
t.Errorf("failed to indent: want: %s, got: %s", want, got)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue