diff --git a/here/dir.go b/here/dir.go index cbe7774..8d5fe47 100644 --- a/here/dir.go +++ b/here/dir.go @@ -35,7 +35,7 @@ func Dir(p string) (Info, error) { if err != nil { es := err.Error() - if !(strings.Contains(es, "cannot find module for path .") || strings.Contains(es, "no Go files")) { + if !(strings.Contains(es, "cannot find module for path .") || strings.Contains(es, "no Go files") || strings.Contains(es, "can't load package")) { return i, err } diff --git a/parser/parser.go b/parser/parser.go index 5c82410..032fa5d 100644 --- a/parser/parser.go +++ b/parser/parser.go @@ -80,23 +80,22 @@ func ParseDir(abs string, mode parser.Mode) ([]*ParsedSource, error) { if !info.IsDir() { return nil, fmt.Errorf("%s is not a directory", abs) } - dir := filepath.Dir(abs) - her, err := here.Dir(dir) + her, err := here.Dir(abs) if err != nil { - return nil, err + return nil, fmt.Errorf("%w: here.Dir failed %s", err, abs) } - pt, err := her.Parse(strings.TrimPrefix(abs, dir)) + pt, err := her.Parse(strings.TrimPrefix(abs, filepath.Dir(abs))) if err != nil { - return nil, err + return nil, fmt.Errorf("%w: here.Parse failed %s", err, abs) } fset := token.NewFileSet() pkgs, err := parser.ParseDir(fset, abs, nil, 0) if err != nil { - return nil, err + return nil, fmt.Errorf("%w: ParseDir failed %s", err, abs) } var srcs []*ParsedSource