Skip to content

Commit

Permalink
fix: handle scan error (#13)
Browse files Browse the repository at this point in the history
  • Loading branch information
alexandear authored Dec 27, 2024
1 parent 94d1edd commit 72181c0
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 7 deletions.
19 changes: 14 additions & 5 deletions godox.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ type Message struct {
Message string
}

func getMessages(comment *ast.Comment, fset *token.FileSet, keywords []string) []Message {
func getMessages(comment *ast.Comment, fset *token.FileSet, keywords []string) ([]Message, error) {
commentText := extractComment(comment.Text)

scanner := bufio.NewScanner(bytes.NewBufferString(commentText))
Expand Down Expand Up @@ -65,7 +65,11 @@ func getMessages(comment *ast.Comment, fset *token.FileSet, keywords []string) [
}
}

return comments
if err := scanner.Err(); err != nil {
return nil, fmt.Errorf("scan: %w", err)
}

return comments, nil
}

func extractComment(commentText string) string {
Expand Down Expand Up @@ -96,7 +100,7 @@ func hasAlphanumRuneAdjacent(rest []byte) bool {

// Run runs the godox linter on given file.
// Godox searches for comments starting with given keywords and reports them.
func Run(file *ast.File, fset *token.FileSet, keywords ...string) []Message {
func Run(file *ast.File, fset *token.FileSet, keywords ...string) ([]Message, error) {
if len(keywords) == 0 {
keywords = defaultKeywords
}
Expand All @@ -105,9 +109,14 @@ func Run(file *ast.File, fset *token.FileSet, keywords ...string) []Message {

for _, c := range file.Comments {
for _, ci := range c.List {
messages = append(messages, getMessages(ci, fset, keywords)...)
msgs, err := getMessages(ci, fset, keywords)
if err != nil {
return nil, err
}

messages = append(messages, msgs...)
}
}

return messages
return messages, nil
}
7 changes: 5 additions & 2 deletions godox_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -84,10 +84,13 @@ func TestParse(t *testing.T) {

f, err := parser.ParseFile(fset, path, nil, parser.ParseComments)
if err != nil {
panic(err)
t.Fatal(err)
}

res := godox.Run(f, fset)
res, err := godox.Run(f, fset)
if err != nil {
t.Fatal(err)
}
messages = append(messages, res...)

return nil
Expand Down

0 comments on commit 72181c0

Please sign in to comment.