diff options
| author | Eyal Posener <[email protected]> | 2017-05-15 23:05:08 +0300 |
|---|---|---|
| committer | GitHub <[email protected]> | 2017-05-15 23:05:08 +0300 |
| commit | 659bd9e3d5a0113fb862bcbd06a983b0e74e8df7 (patch) | |
| tree | 274a3fef89b0888e9e12126cf3ef53745d0d27ba /gocomplete/parse.go | |
| parent | 3db55cf7d9a927e1289f35f2bb2665cfdc2e0dc8 (diff) | |
| parent | 3dd16239eed7e1e8d1513750419d3b637a8ec79b (diff) | |
Merge pull request #26 from posener/runnable
gocomplete: run only runnable go files
Diffstat (limited to 'gocomplete/parse.go')
| -rw-r--r-- | gocomplete/parse.go | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/gocomplete/parse.go b/gocomplete/parse.go new file mode 100644 index 0000000..8111b74 --- /dev/null +++ b/gocomplete/parse.go @@ -0,0 +1,28 @@ +package main + +import ( + "go/ast" + "go/parser" + "go/token" + "regexp" + + "github.com/posener/complete" +) + +func functionsInFile(path string, regexp *regexp.Regexp) (tests []string) { + fset := token.NewFileSet() + f, err := parser.ParseFile(fset, path, nil, 0) + if err != nil { + complete.Log("Failed parsing %s: %s", path, err) + return nil + } + for _, d := range f.Decls { + if f, ok := d.(*ast.FuncDecl); ok { + name := f.Name.String() + if regexp == nil || regexp.MatchString(name) { + tests = append(tests, name) + } + } + } + return +} |
