Refactor layout to go-style, update deps

This commit is contained in:
eleksir
2024-10-21 19:47:11 +03:00
parent 27f79905f4
commit 0264e675a4
338 changed files with 8007 additions and 12808 deletions

View File

@@ -0,0 +1,56 @@
package jabber
import (
"regexp"
"strings"
)
// Переменные для простенького нормализатора текста.
var (
// Знаки препинания раз.
pMarks = []string{".", ",", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "{", "}", "<", ">", "[", "]", "\\"}
// Знаки препинания два-с.
pMarks2 = []string{"-", "_", "+", "=", ":", ";", "'", "`", "~", "\""}
// Символы новой строки.
newLines = []string{"\n", "\r", "\n\r", "\r\n"}
)
// Нормализует текстовый буфер. Убирает начальные и конечные пробельные символы, заменяет сносы строк пробелами, удаляет
// знаки препинания, схлопывает повторяющиеся пробелы в один символ.
func nString(buf string) string {
// Убираем пробелы вначале текстового буфера и в конце.
buf = strings.Trim(buf, "\n\r\t ")
// Убираем знаки препинания.
for _, pMark := range pMarks {
buf = strings.ReplaceAll(buf, pMark, "")
}
for _, pMark := range pMarks2 {
buf = strings.ReplaceAll(buf, pMark, "")
}
// Замещаем сносы строки пробелами.
for _, newline := range newLines {
buf = strings.ReplaceAll(buf, newline, " ")
}
// Схлопываем повторяющиеся пробелы.
buf = regexp.MustCompile(`\s+`).ReplaceAllString(buf, " ")
return buf
}
// Обёртка для nString, возвращает нормализованную строку в нижнем регистре.
func nStringLower(buf string) string {
return strings.ToLower(nString(buf))
}
// Обёртка для nString, возвращает нормализованную строку в верхнем регистре.
func nStringUpper(buf string) string {
return strings.ToUpper(nString(buf))
}
/* vim: set ft=go noet ai ts=4 sw=4 sts=4: */