all repos

clerk @ 8063300

missing tooling for ledger/hledger

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

Oleksandr Smirnov Oleksandr Smirnov
olexsmir@gmail.com
perf: lsp: dedupe and group diagnostics without string keys..., 1 month ago
1
package lsp
2
3
import (
4
	"os"
5
	"testing"
6
7
	"go.lsp.dev/uri"
8
)
9
10
func BenchmarkDiagnostics(b *testing.B) {
11
	path := "../../journal/testdata/journals/actual-1ktxns-100accts.journal"
12
	src, err := os.ReadFile(path)
13
	if err != nil {
14
		b.Fatal(err)
15
	}
16
17
	srv := NewServer("test")
18
	srv.server.openDoc(uri.URI("file:///test.journal"), string(src), 1, "journal")
19
20
	b.ReportAllocs()
21
	b.ResetTimer()
22
	for b.Loop() {
23
		// Per-edit cost: re-resolve (parse) + lint + group findings.
24
		a := srv.server.buildAnalysis()
25
		finds := dedupFinds(srv.server.linter.Run(a))
26
		_ = srv.server.groupFindsByFile(finds)
27
	}
28
}