diff 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
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/github.com/alecthomas/chroma/v2/lexers/mysql.go	Sun Jul 23 13:18:53 2023 +0000
@@ -0,0 +1,33 @@
+package lexers
+
+import (
+	"regexp"
+)
+
+var (
+	mysqlAnalyserNameBetweenBacktickRe = regexp.MustCompile("`[a-zA-Z_]\\w*`")
+	mysqlAnalyserNameBetweenBracketRe  = regexp.MustCompile(`\[[a-zA-Z_]\w*\]`)
+)
+
+func init() { // nolint: gochecknoinits
+	Get("mysql").
+		SetAnalyser(func(text string) float32 {
+			nameBetweenBacktickCount := len(mysqlAnalyserNameBetweenBacktickRe.FindAllString(text, -1))
+			nameBetweenBracketCount := len(mysqlAnalyserNameBetweenBracketRe.FindAllString(text, -1))
+
+			var result float32
+
+			// Same logic as above in the TSQL analysis.
+			dialectNameCount := nameBetweenBacktickCount + nameBetweenBracketCount
+			if dialectNameCount >= 1 && nameBetweenBacktickCount >= (2*nameBetweenBracketCount) {
+				// Found at least twice as many `name` as [name].
+				result += 0.5
+			} else if nameBetweenBacktickCount > nameBetweenBracketCount {
+				result += 0.2
+			} else if nameBetweenBacktickCount > 0 {
+				result += 0.1
+			}
+
+			return result
+		})
+}