diff --git a/regexp_test.go b/regexp_test.go new file mode 100644 index 0000000..21ee13f --- /dev/null +++ b/regexp_test.go @@ -0,0 +1,27 @@ +package chroma + +import ( + "testing" + + "github.com/alecthomas/assert" +) + +func TestNewlineAtEndOfFile(t *testing.T) { + l := Coalesce(MustNewLexer(&Config{EnsureNL: true}, Rules{ + "root": { + {`(\w+)(\n)`, ByGroups(Keyword, Whitespace), nil}, + }, + })) + it, err := l.Tokenise(nil, `hello`) + assert.NoError(t, err) + assert.Equal(t, []*Token{{Keyword, "hello"}, {Whitespace, "\n"}}, it.Tokens()) + + l = Coalesce(MustNewLexer(nil, Rules{ + "root": { + {`(\w+)(\n)`, ByGroups(Keyword, Whitespace), nil}, + }, + })) + it, err = l.Tokenise(nil, `hello`) + assert.NoError(t, err) + assert.Equal(t, []*Token{{Error, "hello"}}, it.Tokens()) +}