summaryrefslogtreecommitdiff
path: root/gocomplete/complete.go
diff options
context:
space:
mode:
authorEyal Posener <[email protected]>2017-05-13 00:17:48 +0300
committerEyal Posener <[email protected]>2017-05-13 00:17:59 +0300
commitf580110640e0213502e4fe1138a06f57b532ff7a (patch)
tree7a0692e1baa4da0d252f5aa1b2bc7c4e2c1cbaef /gocomplete/complete.go
parent66402080675c250edabe50839555942d1b1aa189 (diff)
gocomplete: complete by packages
Diffstat (limited to 'gocomplete/complete.go')
-rw-r--r--gocomplete/complete.go37
1 files changed, 18 insertions, 19 deletions
diff --git a/gocomplete/complete.go b/gocomplete/complete.go
index 1575e1b..4b4da67 100644
--- a/gocomplete/complete.go
+++ b/gocomplete/complete.go
@@ -4,19 +4,18 @@ package main
import "github.com/posener/complete"
var (
- predictEllipsis = complete.PredictSet("./...")
-
- goFilesOrPackages = complete.PredictOr(
- complete.PredictFiles("*.go"),
- complete.PredictDirs("*"),
- predictEllipsis,
- )
+ ellipsis = complete.PredictSet("./...")
+ mainPackages = predictPackages("main")
+ anyPackage = predictPackages("")
+ goFiles = complete.PredictFiles("*.go")
+ anyFile = complete.PredictFiles("*")
+ anyGo = complete.PredictOr(goFiles, anyPackage, ellipsis)
)
func main() {
build := complete.Command{
Flags: complete.Flags{
- "-o": complete.PredictFiles("*"),
+ "-o": anyFile,
"-i": complete.PredictNothing,
"-a": complete.PredictNothing,
@@ -35,18 +34,18 @@ func main() {
"-installsuffix": complete.PredictAnything,
"-ldflags": complete.PredictAnything,
"-linkshared": complete.PredictNothing,
- "-pkgdir": complete.PredictDirs("*"),
+ "-pkgdir": anyPackage,
"-tags": complete.PredictAnything,
"-toolexec": complete.PredictAnything,
},
- Args: goFilesOrPackages,
+ Args: anyGo,
}
run := complete.Command{
Flags: complete.Flags{
"-exec": complete.PredictAnything,
},
- Args: complete.PredictFiles("*.go"),
+ Args: goFiles,
}
test := complete.Command{
@@ -78,7 +77,7 @@ func main() {
"-outputdir": complete.PredictDirs("*"),
"-trace": complete.PredictFiles("*.out"),
},
- Args: goFilesOrPackages,
+ Args: anyGo,
}
fmt := complete.Command{
@@ -86,7 +85,7 @@ func main() {
"-n": complete.PredictNothing,
"-x": complete.PredictNothing,
},
- Args: goFilesOrPackages,
+ Args: anyGo,
}
get := complete.Command{
@@ -98,7 +97,7 @@ func main() {
"-t": complete.PredictNothing,
"-u": complete.PredictNothing,
},
- Args: goFilesOrPackages,
+ Args: anyGo,
}
generate := complete.Command{
@@ -108,7 +107,7 @@ func main() {
"-v": complete.PredictNothing,
"-run": complete.PredictAnything,
},
- Args: goFilesOrPackages,
+ Args: anyGo,
}
vet := complete.Command{
@@ -116,7 +115,7 @@ func main() {
"-n": complete.PredictNothing,
"-x": complete.PredictNothing,
},
- Args: complete.PredictDirs("*"),
+ Args: anyGo,
}
list := complete.Command{
@@ -125,7 +124,7 @@ func main() {
"-f": complete.PredictAnything,
"-json": complete.PredictNothing,
},
- Args: complete.PredictDirs("*"),
+ Args: complete.PredictOr(anyPackage, ellipsis),
}
tool := complete.Command{
@@ -142,7 +141,7 @@ func main() {
"-n": complete.PredictNothing,
"-x": complete.PredictNothing,
},
- Args: complete.PredictDirs("*"),
+ Args: complete.PredictOr(anyPackage, ellipsis),
}
env := complete.Command{
@@ -153,7 +152,7 @@ func main() {
version := complete.Command{}
fix := complete.Command{
- Args: complete.PredictDirs("*"),
+ Args: anyGo,
}
// commands that also accepts the build flags