mirror of
https://github.com/go-gitea/gitea
synced 2025-07-22 18:28:37 +00:00
@@ -3,7 +3,10 @@
|
||||
|
||||
package util
|
||||
|
||||
import "unsafe"
|
||||
import (
|
||||
"strings"
|
||||
"unsafe"
|
||||
)
|
||||
|
||||
func isSnakeCaseUpper(c byte) bool {
|
||||
return 'A' <= c && c <= 'Z'
|
||||
@@ -95,3 +98,15 @@ func UnsafeBytesToString(b []byte) string {
|
||||
func UnsafeStringToBytes(s string) []byte {
|
||||
return unsafe.Slice(unsafe.StringData(s), len(s))
|
||||
}
|
||||
|
||||
// SplitTrimSpace splits the string at given separator and trims leading and trailing space
|
||||
func SplitTrimSpace(input, sep string) []string {
|
||||
input = strings.TrimSpace(input)
|
||||
var stringList []string
|
||||
for _, s := range strings.Split(input, sep) {
|
||||
if s = strings.TrimSpace(s); s != "" {
|
||||
stringList = append(stringList, s)
|
||||
}
|
||||
}
|
||||
return stringList
|
||||
}
|
||||
|
@@ -45,3 +45,8 @@ func TestToSnakeCase(t *testing.T) {
|
||||
assert.Equal(t, expected, ToSnakeCase(input))
|
||||
}
|
||||
}
|
||||
|
||||
func TestSplitTrimSpace(t *testing.T) {
|
||||
assert.Equal(t, []string{"a", "b", "c"}, SplitTrimSpace("a\nb\nc", "\n"))
|
||||
assert.Equal(t, []string{"a", "b"}, SplitTrimSpace("\r\na\n\r\nb\n\n", "\n"))
|
||||
}
|
||||
|
@@ -14,6 +14,10 @@ const (
|
||||
asciiEllipsis = "..."
|
||||
)
|
||||
|
||||
func IsLikelySplitLeftPart(s string) bool {
|
||||
return strings.HasSuffix(s, utf8Ellipsis) || strings.HasSuffix(s, asciiEllipsis)
|
||||
}
|
||||
|
||||
// SplitStringAtByteN splits a string at byte n accounting for rune boundaries. (Combining characters are not accounted for.)
|
||||
func SplitStringAtByteN(input string, n int) (left, right string) {
|
||||
if len(input) <= n {
|
||||
@@ -38,19 +42,3 @@ func SplitStringAtByteN(input string, n int) (left, right string) {
|
||||
|
||||
return input[:end] + utf8Ellipsis, utf8Ellipsis + input[end:]
|
||||
}
|
||||
|
||||
// SplitTrimSpace splits the string at given separator and trims leading and trailing space
|
||||
func SplitTrimSpace(input, sep string) []string {
|
||||
// Trim initial leading & trailing space
|
||||
input = strings.TrimSpace(input)
|
||||
// replace CRLF with LF
|
||||
input = strings.ReplaceAll(input, "\r\n", "\n")
|
||||
|
||||
var stringList []string
|
||||
for _, s := range strings.Split(input, sep) {
|
||||
// trim leading and trailing space
|
||||
stringList = append(stringList, strings.TrimSpace(s))
|
||||
}
|
||||
|
||||
return stringList
|
||||
}
|
||||
|
Reference in New Issue
Block a user