Skip to content

Commit

Permalink
Support multiple character inputs
Browse files Browse the repository at this point in the history
  • Loading branch information
mkchoi212 committed Dec 30, 2017
1 parent fb15258 commit d04835e
Showing 1 changed file with 37 additions and 23 deletions.
60 changes: 37 additions & 23 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,34 +29,48 @@ func quit(g *gocui.Gui, v *gocui.View) error {
}

func parseInput(g *gocui.Gui, v *gocui.View) error {
evalCmd := func(in rune, g *gocui.Gui) {
switch {
case in == 'j':
scroll(g, &conflicts[cur], Up)
case in == 'k':
scroll(g, &conflicts[cur], Down)
case in == 'w':
conflicts[cur].topPeek++
conflicts[cur].Select(g, false)
case in == 's':
conflicts[cur].bottomPeek++
conflicts[cur].Select(g, false)
case in == 'a':
conflicts[cur].Resolve(g, v, Local)
case in == 'd':
conflicts[cur].Resolve(g, v, Incoming)
case in == 'h' || in == '?':
conflicts[cur].Select(g, true)
case in == 'q':
globalQuit(g)
default:
printPrompt(g, Red(Regular, "[wasd] >>"))
}
printPrompt(g, Green(Regular, "[wasd] >>"))
}

in := strings.TrimSuffix(v.Buffer(), "\n")
v.Clear()
v.SetCursor(0, 0)

switch {
case in == "k":
scroll(g, Up)
case in == "j":
scroll(g, Down)
case in == "w":
conflicts[cur].topPeek++
conflicts[cur].Select(g, false)
case in == "s":
conflicts[cur].bottomPeek++
conflicts[cur].Select(g, false)
case in == "a":
conflicts[cur].Resolve(g, v, Local)
case in == "d":
conflicts[cur].Resolve(g, v, Incoming)
case in == "h":
conflicts[cur].Select(g, true)
case in == "q":
globalQuit(g)
default:
printPrompt(g, Green(Regular, "[wasd] >>"))
return nil
if len(in) > 1 {
for _, r := range [...]rune{'a', 'd', 'h'} {
if strings.ContainsRune(in, r) {
printPrompt(g, Red(Regular, "[wasd] >>"))
return nil
}
}
}

for _, c := range in {
evalCmd(c, g)
}
printPrompt(g, Green(Regular, "[wasd] >>"))
return nil
}

Expand Down

0 comments on commit d04835e

Please sign in to comment.