diff options
Diffstat (limited to 'args.go')
| -rw-r--r-- | args.go | 39 |
1 files changed, 39 insertions, 0 deletions
@@ -0,0 +1,39 @@ +package complete + +// Args describes command line arguments +type Args struct { + All []string + Completed []string + Last string + LastCompleted string +} + +func newArgs(line []string) Args { + completed := removeLast(line) + return Args{ + All: line[1:], + Completed: completed, + Last: 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 +} |
