Mercurial > yakumo_izuru > aya
comparison vendor/github.com/alecthomas/chroma/v2/lexers/mysql.go @ 66:787b5ee0289d draft
Use vendored modules
Signed-off-by: Izuru Yakumo <yakumo.izuru@chaotic.ninja>
author | yakumo.izuru |
---|---|
date | Sun, 23 Jul 2023 13:18:53 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
65:6d985efa0f7a | 66:787b5ee0289d |
---|---|
1 package lexers | |
2 | |
3 import ( | |
4 "regexp" | |
5 ) | |
6 | |
7 var ( | |
8 mysqlAnalyserNameBetweenBacktickRe = regexp.MustCompile("`[a-zA-Z_]\\w*`") | |
9 mysqlAnalyserNameBetweenBracketRe = regexp.MustCompile(`\[[a-zA-Z_]\w*\]`) | |
10 ) | |
11 | |
12 func init() { // nolint: gochecknoinits | |
13 Get("mysql"). | |
14 SetAnalyser(func(text string) float32 { | |
15 nameBetweenBacktickCount := len(mysqlAnalyserNameBetweenBacktickRe.FindAllString(text, -1)) | |
16 nameBetweenBracketCount := len(mysqlAnalyserNameBetweenBracketRe.FindAllString(text, -1)) | |
17 | |
18 var result float32 | |
19 | |
20 // Same logic as above in the TSQL analysis. | |
21 dialectNameCount := nameBetweenBacktickCount + nameBetweenBracketCount | |
22 if dialectNameCount >= 1 && nameBetweenBacktickCount >= (2*nameBetweenBracketCount) { | |
23 // Found at least twice as many `name` as [name]. | |
24 result += 0.5 | |
25 } else if nameBetweenBacktickCount > nameBetweenBracketCount { | |
26 result += 0.2 | |
27 } else if nameBetweenBacktickCount > 0 { | |
28 result += 0.1 | |
29 } | |
30 | |
31 return result | |
32 }) | |
33 } |