mirror of
https://github.com/jesseduffield/lazygit.git
synced 2024-12-04 10:34:55 +02:00
35 lines
996 B
Go
35 lines
996 B
Go
|
package utils
|
||
|
|
||
|
import "strings"
|
||
|
|
||
|
// SplitLines takes a multiline string and splits it on newlines
|
||
|
// currently we are also stripping \r's which may have adverse effects for
|
||
|
// windows users (but no issues have been raised yet)
|
||
|
func SplitLines(multilineString string) []string {
|
||
|
multilineString = strings.Replace(multilineString, "\r", "", -1)
|
||
|
if multilineString == "" || multilineString == "\n" {
|
||
|
return make([]string, 0)
|
||
|
}
|
||
|
lines := strings.Split(multilineString, "\n")
|
||
|
if lines[len(lines)-1] == "" {
|
||
|
return lines[:len(lines)-1]
|
||
|
}
|
||
|
return lines
|
||
|
}
|
||
|
|
||
|
// TrimTrailingNewline - Trims the trailing newline
|
||
|
// TODO: replace with `chomp` after refactor
|
||
|
func TrimTrailingNewline(str string) string {
|
||
|
if strings.HasSuffix(str, "\n") {
|
||
|
return str[:len(str)-1]
|
||
|
}
|
||
|
return str
|
||
|
}
|
||
|
|
||
|
// NormalizeLinefeeds - Removes all Windows and Mac style line feeds
|
||
|
func NormalizeLinefeeds(str string) string {
|
||
|
str = strings.Replace(str, "\r\n", "\n", -1)
|
||
|
str = strings.Replace(str, "\r", "", -1)
|
||
|
return str
|
||
|
}
|