annotate 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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
66
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
1 package lexers
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
2
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
3 import (
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
4 "regexp"
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
5 )
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
6
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
7 var (
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
8 mysqlAnalyserNameBetweenBacktickRe = regexp.MustCompile("`[a-zA-Z_]\\w*`")
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
9 mysqlAnalyserNameBetweenBracketRe = regexp.MustCompile(`\[[a-zA-Z_]\w*\]`)
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
10 )
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
11
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
12 func init() { // nolint: gochecknoinits
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
13 Get("mysql").
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
14 SetAnalyser(func(text string) float32 {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
15 nameBetweenBacktickCount := len(mysqlAnalyserNameBetweenBacktickRe.FindAllString(text, -1))
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
16 nameBetweenBracketCount := len(mysqlAnalyserNameBetweenBracketRe.FindAllString(text, -1))
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
17
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
18 var result float32
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
19
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
20 // Same logic as above in the TSQL analysis.
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
21 dialectNameCount := nameBetweenBacktickCount + nameBetweenBracketCount
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
22 if dialectNameCount >= 1 && nameBetweenBacktickCount >= (2*nameBetweenBracketCount) {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
23 // Found at least twice as many `name` as [name].
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
24 result += 0.5
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
25 } else if nameBetweenBacktickCount > nameBetweenBracketCount {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
26 result += 0.2
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
27 } else if nameBetweenBacktickCount > 0 {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
28 result += 0.1
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
29 }
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
30
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
31 return result
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
32 })
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
33 }