feat(parser): add Comment method to check if a line is a comment

This commit is contained in:
2021-08-26 01:37:02 +01:00
parent 758deef7e9
commit 5174ed35ca
2 changed files with 109 additions and 2 deletions

18
line.go
View File

@@ -6,8 +6,10 @@ import (
)
const (
lf = 10 // linefeed ("\n") character
cr = 13 // carriage return ("\r") character
lf = 10 // ASCII linefeed ("\n") character.
cr = 13 // ASCII carriage return ("\r") character.
hash = 35 // ASCII hash ("#") character.
)
// Line represents a single line of text defined as; A continuous sequence of
@@ -36,6 +38,18 @@ func (s *Line) Blank() bool {
return len(bytes.TrimSpace(s.Content)) == 0
}
// Comment returns true if line content is a commit comment, where the first
// non-whitespace character in the line is a hash (#).
func (s *Line) Comment() bool {
trimmed := bytes.TrimSpace(s.Content)
if len(trimmed) == 0 {
return false
}
return trimmed[0] == hash
}
// Lines is a slice of *Line types with some helper methods attached.
type Lines []*Line