diff options
Diffstat (limited to 'args.go')
| -rw-r--r-- | args.go | 38 |
1 files changed, 38 insertions, 0 deletions
@@ -0,0 +1,38 @@ +package complete + +type args struct { + all []string + completed []string + beingTyped string + lastCompleted string +} + +func newArgs(line []string) args { + completed := removeLast(line) + return args{ + all: line[1:], + completed: completed, + beingTyped: last(line), + lastCompleted: last(completed), + } +} + +func (a args) from(i int) args { + a.all = a.all[i:] + a.completed = a.completed[i:] + return a +} + +func removeLast(a []string) []string { + if len(a) > 0 { + return a[:len(a)-1] + } + return a +} + +func last(args []string) (last string) { + if len(args) > 0 { + last = args[len(args)-1] + } + return +} |
