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 }