all repos

clerk @ 7b8e468208b6ef8bf9db2b5f2f8c1f01b22cb31a

missing tooling for ledger/hledger

clerk/internal/lsp/diagnostics_test.go (view raw)

Oleksandr Smirnov Oleksandr Smirnov
olexsmir@gmail.com
feat: config (#6), 1 month ago
1
package lsp
2
3
import (
4
	"testing"
5
6
	"olexsmir.xyz/clerk/internal/analyzer"
7
	"olexsmir.xyz/clerk/internal/linter"
8
	"olexsmir.xyz/clerk/journal"
9
)
10
11
func BenchmarkDiagnostics(b *testing.B) {
12
	content := openJournal(b, "../../journal/testdata/journals/actual-1ktxns-100accts.journal")
13
	srv := newServer(b)
14
15
	lint, err := linter.NewLinter(srv.server.settings.Linter)
16
	if err != nil {
17
		b.Fatal(err)
18
	}
19
20
	// Per-edit cost: a fresh loader skips the parse cache, so each iteration re-parses, then lints and groups findings.
21
	b.ReportAllocs()
22
	b.ResetTimer()
23
	for b.Loop() {
24
		an := analyzer.Build(journal.NewLoader().ResolveBytes("/test.journal", []byte(content)))
25
		finds := dedupFinds(lint.Run(an))
26
		srv.server.assignSeverities(finds)
27
		_ = srv.server.groupFindsByFile(finds)
28
	}
29
}