summaryrefslogtreecommitdiff
path: root/gocomplete/complete.go
diff options
context:
space:
mode:
authorEyal Posener <[email protected]>2017-05-26 15:40:34 +0300
committerEyal Posener <[email protected]>2017-05-27 20:21:50 +0300
commit97eda09fcbeb1061ae8309c122a8dbf3fc978b61 (patch)
tree76fe9d8c577fc921a97c5982b8fa6b20a4427d40 /gocomplete/complete.go
parent8a418a6ab0e75f89eb3c6e5ed76cca082914bb6d (diff)
gocomplete: add go tool subcommands
Fixes #39
Diffstat (limited to 'gocomplete/complete.go')
-rw-r--r--gocomplete/complete.go256
1 files changed, 255 insertions, 1 deletions
diff --git a/gocomplete/complete.go b/gocomplete/complete.go
index 00392eb..9f46dcd 100644
--- a/gocomplete/complete.go
+++ b/gocomplete/complete.go
@@ -126,11 +126,264 @@ func main() {
Args: complete.PredictOr(anyPackage, ellipsis),
}
+ doc := complete.Command{
+ Flags: complete.Flags{
+ "-c": complete.PredictNothing,
+ "-cmd": complete.PredictNothing,
+ "-u": complete.PredictNothing,
+ },
+ Args: anyPackage,
+ }
+
tool := complete.Command{
Flags: complete.Flags{
"-n": complete.PredictNothing,
},
- Args: complete.PredictAnything,
+ Sub: complete.Commands{
+ "addr2line": {
+ Args: anyFile,
+ },
+ "asm": {
+ Flags: complete.Flags{
+ "-D": complete.PredictAnything,
+ "-I": complete.PredictDirs("*"),
+ "-S": complete.PredictNothing,
+ "-debug": complete.PredictNothing,
+ "-dynlink": complete.PredictNothing,
+ "-e": complete.PredictNothing,
+ "-o": anyFile,
+ "-shared": complete.PredictNothing,
+ "-trimpath": complete.PredictNothing,
+ },
+ Args: complete.PredictFiles("*.s"),
+ },
+ "cgo": {
+ Flags: complete.Flags{
+ "-debug-define": complete.PredictNothing,
+ "debug-gcc": complete.PredictNothing,
+ "dynimport": anyFile,
+ "dynlinker": complete.PredictNothing,
+ "dynout": anyFile,
+ "dynpackage": anyPackage,
+ "exportheader": complete.PredictDirs("*"),
+ "gccgo": complete.PredictNothing,
+ "gccgopkgpath": complete.PredictDirs("*"),
+ "gccgoprefix": complete.PredictAnything,
+ "godefs": complete.PredictNothing,
+ "import_runtime_cgo": complete.PredictNothing,
+ "import_syscall": complete.PredictNothing,
+ "importpath": complete.PredictDirs("*"),
+ "objdir": complete.PredictDirs("*"),
+ "srcdir": complete.PredictDirs("*"),
+ },
+ Args: goFiles,
+ },
+ "compile": {
+ Flags: complete.Flags{
+ "-%": complete.PredictNothing,
+ "-+": complete.PredictNothing,
+ "-B": complete.PredictNothing,
+ "-D": complete.PredictDirs("*"),
+ "-E": complete.PredictNothing,
+ "-I": complete.PredictDirs("*"),
+ "-K": complete.PredictNothing,
+ "-N": complete.PredictNothing,
+ "-S": complete.PredictNothing,
+ "-V": complete.PredictNothing,
+ "-W": complete.PredictNothing,
+ "-asmhdr": anyFile,
+ "-bench": anyFile,
+ "-buildid": complete.PredictNothing,
+ "-complete": complete.PredictNothing,
+ "-cpuprofile": anyFile,
+ "-d": complete.PredictNothing,
+ "-dynlink": complete.PredictNothing,
+ "-e": complete.PredictNothing,
+ "-f": complete.PredictNothing,
+ "-h": complete.PredictNothing,
+ "-i": complete.PredictNothing,
+ "-importmap": complete.PredictAnything,
+ "-installsuffix": complete.PredictAnything,
+ "-j": complete.PredictNothing,
+ "-l": complete.PredictNothing,
+ "-largemodel": complete.PredictNothing,
+ "-linkobj": anyFile,
+ "-live": complete.PredictNothing,
+ "-m": complete.PredictNothing,
+ "-memprofile": complete.PredictNothing,
+ "-memprofilerate": complete.PredictAnything,
+ "-msan": complete.PredictNothing,
+ "-nolocalimports": complete.PredictNothing,
+ "-o": anyFile,
+ "-p": complete.PredictDirs("*"),
+ "-pack": complete.PredictNothing,
+ "-r": complete.PredictNothing,
+ "-race": complete.PredictNothing,
+ "-s": complete.PredictNothing,
+ "-shared": complete.PredictNothing,
+ "-traceprofile": anyFile,
+ "-trimpath": complete.PredictAnything,
+ "-u": complete.PredictNothing,
+ "-v": complete.PredictNothing,
+ "-w": complete.PredictNothing,
+ "-wb": complete.PredictNothing,
+ },
+ Args: goFiles,
+ },
+ "cover": {
+ Flags: complete.Flags{
+ "-func": complete.PredictAnything,
+ "-html": complete.PredictAnything,
+ "-mode": complete.PredictSet("set", "count", "atomic"),
+ "-o": anyFile,
+ "-var": complete.PredictAnything,
+ },
+ Args: anyFile,
+ },
+ "dist": {
+ Sub: complete.Commands{
+ "banner": {Flags: complete.Flags{"-v": complete.PredictNothing}},
+ "bootstrap": {Flags: complete.Flags{"-v": complete.PredictNothing}},
+ "clean": {Flags: complete.Flags{"-v": complete.PredictNothing}},
+ "env": {Flags: complete.Flags{"-v": complete.PredictNothing, "-p": complete.PredictNothing}},
+ "install": {Flags: complete.Flags{"-v": complete.PredictNothing}, Args: complete.PredictDirs("*")},
+ "list": {Flags: complete.Flags{"-v": complete.PredictNothing, "-json": complete.PredictNothing}},
+ "test": {Flags: complete.Flags{"-v": complete.PredictNothing, "-h": complete.PredictNothing}},
+ "version": {Flags: complete.Flags{"-v": complete.PredictNothing}},
+ },
+ },
+ "doc": doc,
+ "fix": {
+ Flags: complete.Flags{
+ "-diff": complete.PredictNothing,
+ "-force": complete.PredictAnything,
+ "-r": complete.PredictSet("context", "gotypes", "netipv6zone", "printerconfig"),
+ },
+ Args: anyGo,
+ },
+ "link": {},
+ "nm": {
+ Flags: complete.Flags{
+ "-n": complete.PredictNothing,
+ "-size": complete.PredictNothing,
+ "-sort": complete.PredictAnything,
+ "-type": complete.PredictNothing,
+ },
+ Args: anyGo,
+ },
+ "objdump": {
+ Flags: complete.Flags{
+ "-s": complete.PredictAnything,
+ },
+ Args: anyFile,
+ },
+ "pack": {},
+ "pprof": {
+ Flags: complete.Flags{
+ "-callgrind": complete.PredictNothing,
+ "-disasm": complete.PredictAnything,
+ "-dot": complete.PredictNothing,
+ "-eog": complete.PredictNothing,
+ "-evince": complete.PredictNothing,
+ "-gif": complete.PredictNothing,
+ "-gv": complete.PredictNothing,
+ "-list": complete.PredictAnything,
+ "-pdf": complete.PredictNothing,
+ "-peek": complete.PredictAnything,
+ "-png": complete.PredictNothing,
+ "-proto": complete.PredictNothing,
+ "-ps": complete.PredictNothing,
+ "-raw": complete.PredictNothing,
+ "-svg": complete.PredictNothing,
+ "-tags": complete.PredictNothing,
+ "-text": complete.PredictNothing,
+ "-top": complete.PredictNothing,
+ "-tree": complete.PredictNothing,
+ "-web": complete.PredictNothing,
+ "-weblist": complete.PredictAnything,
+ "-output": anyFile,
+ "-functions": complete.PredictNothing,
+ "-files": complete.PredictNothing,
+ "-lines": complete.PredictNothing,
+ "-addresses": complete.PredictNothing,
+ "-base": complete.PredictAnything,
+ "-drop_negative": complete.PredictNothing,
+ "-cum": complete.PredictNothing,
+ "-seconds": complete.PredictAnything,
+ "-nodecount": complete.PredictAnything,
+ "-nodefraction": complete.PredictAnything,
+ "-edgefraction": complete.PredictAnything,
+ "-sample_index": complete.PredictNothing,
+ "-mean": complete.PredictNothing,
+ "-inuse_space": complete.PredictNothing,
+ "-inuse_objects": complete.PredictNothing,
+ "-alloc_space": complete.PredictNothing,
+ "-alloc_objects": complete.PredictNothing,
+ "-total_delay": complete.PredictNothing,
+ "-contentions": complete.PredictNothing,
+ "-mean_delay": complete.PredictNothing,
+ "-runtime": complete.PredictNothing,
+ "-focus": complete.PredictAnything,
+ "-ignore": complete.PredictAnything,
+ "-tagfocus": complete.PredictAnything,
+ "-tagignore": complete.PredictAnything,
+ "-call_tree": complete.PredictNothing,
+ "-unit": complete.PredictAnything,
+ "-divide_by": complete.PredictAnything,
+ "-buildid": complete.PredictAnything,
+ "-tools": complete.PredictDirs("*"),
+ "-help": complete.PredictNothing,
+ },
+ Args: anyFile,
+ },
+ "tour": {
+ Flags: complete.Flags{
+ "-http": complete.PredictAnything,
+ "-openbrowser": complete.PredictNothing,
+ },
+ },
+ "trace": {
+ Flags: complete.Flags{
+ "-http": complete.PredictAnything,
+ "-pprof": complete.PredictSet("net", "sync", "syscall", "sched"),
+ },
+ Args: anyFile,
+ },
+ "vet": {
+ Flags: complete.Flags{
+ "-all": complete.PredictNothing,
+ "-asmdecl": complete.PredictNothing,
+ "-assign": complete.PredictNothing,
+ "-atomic": complete.PredictNothing,
+ "-bool": complete.PredictNothing,
+ "-buildtags": complete.PredictNothing,
+ "-cgocall": complete.PredictNothing,
+ "-composites": complete.PredictNothing,
+ "-compositewhitelist": complete.PredictNothing,
+ "-copylocks": complete.PredictNothing,
+ "-httpresponse": complete.PredictNothing,
+ "-lostcancel": complete.PredictNothing,
+ "-methods": complete.PredictNothing,
+ "-nilfunc": complete.PredictNothing,
+ "-printf": complete.PredictNothing,
+ "-printfuncs": complete.PredictAnything,
+ "-rangeloops": complete.PredictNothing,
+ "-shadow": complete.PredictNothing,
+ "-shadowstrict": complete.PredictNothing,
+ "-shift": complete.PredictNothing,
+ "-structtags": complete.PredictNothing,
+ "-tags": complete.PredictAnything,
+ "-tests": complete.PredictNothing,
+ "-unreachable": complete.PredictNothing,
+ "-unsafeptr": complete.PredictNothing,
+ "-unusedfuncs": complete.PredictAnything,
+ "-unusedresult": complete.PredictNothing,
+ "-unusedstringmethods": complete.PredictAnything,
+ "-v": complete.PredictNothing,
+ },
+ Args: anyGo,
+ },
+ },
}
clean := complete.Command{
@@ -174,6 +427,7 @@ func main() {
"generate": generate,
"vet": vet,
"list": list,
+ "doc": doc,
"tool": tool,
"clean": clean,
"env": env,