Skip to content

Commit 496638c

Browse files
koki-developclaude
andauthored
fix: Resolve lexer per file instead of caching (#216)
Co-authored-by: Claude <[email protected]>
1 parent 47857a9 commit 496638c

File tree

1 file changed

+8
-7
lines changed

1 file changed

+8
-7
lines changed

internal/gat/gat.go

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ type Config struct {
3333
}
3434

3535
type Gat struct {
36-
lexer chroma.Lexer
36+
explicitLexer chroma.Lexer
3737
formatter chroma.Formatter
3838
style *chroma.Style
3939
renderMarkdown bool
@@ -54,7 +54,7 @@ func New(cfg *Config) (*Gat, error) {
5454
if err != nil {
5555
return nil, err
5656
}
57-
g.lexer = l
57+
g.explicitLexer = l
5858
}
5959

6060
// formatter
@@ -147,15 +147,16 @@ func (g *Gat) Print(w io.Writer, r io.Reader, opts ...PrintOption) error {
147147
}
148148

149149
// analyse lexer
150-
if g.lexer == nil {
150+
lexer := g.explicitLexer
151+
if lexer == nil {
151152
l, err := lexers.Get(lexers.WithFilename(opt.Filename), lexers.WithSource(src))
152153
if err != nil {
153154
return err
154155
}
155-
g.lexer = l
156+
lexer = l
156157
}
157158

158-
if g.renderMarkdown && g.lexer.Config().Name == "markdown" {
159+
if g.renderMarkdown && lexer.Config().Name == "markdown" {
159160
r, err := glamour.NewTermRenderer(
160161
glamour.WithAutoStyle(),
161162
glamour.WithWordWrap(-1),
@@ -177,7 +178,7 @@ func (g *Gat) Print(w io.Writer, r io.Reader, opts ...PrintOption) error {
177178

178179
// pretty code
179180
if opt.Pretty {
180-
p, ok := prettier.Get(g.lexer.Config().Name)
181+
p, ok := prettier.Get(lexer.Config().Name)
181182
if ok {
182183
s, err := p.Pretty(src)
183184
if err == nil {
@@ -187,7 +188,7 @@ func (g *Gat) Print(w io.Writer, r io.Reader, opts ...PrintOption) error {
187188
}
188189

189190
// print
190-
it, err := g.lexer.Tokenise(nil, src)
191+
it, err := lexer.Tokenise(nil, src)
191192
if err != nil {
192193
return err
193194
}

0 commit comments

Comments
 (0)