diff options
| author | Eyal Posener <[email protected]> | 2017-05-11 18:49:59 +0300 |
|---|---|---|
| committer | Eyal Posener <[email protected]> | 2017-05-11 18:50:12 +0300 |
| commit | a28594d28ea9a838f174641a411fd537c2c495b9 (patch) | |
| tree | cfd33c66822461300730fb1c527cfddb581f342b /args.go | |
| parent | dd2171d085ef5957a1c5c0794d6007822e47849b (diff) | |
Add args struct
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 +} |
