mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-07-13 01:30:53 +02:00
decolorise strings before calculating padwidths
This commit is contained in:
@ -7,6 +7,7 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"reflect"
|
"reflect"
|
||||||
|
"regexp"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@ -159,6 +160,11 @@ func renderDisplayableList(items []Displayable, isFocused bool) (string, error)
|
|||||||
return strings.Join(paddedDisplayStrings, "\n"), nil
|
return strings.Join(paddedDisplayStrings, "\n"), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func decolorise(str string) string {
|
||||||
|
re := regexp.MustCompile(`\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]`)
|
||||||
|
return re.ReplaceAllString(str, "")
|
||||||
|
}
|
||||||
|
|
||||||
func getPadWidths(stringArrays [][]string) []int {
|
func getPadWidths(stringArrays [][]string) []int {
|
||||||
if len(stringArrays[0]) <= 1 {
|
if len(stringArrays[0]) <= 1 {
|
||||||
return []int{}
|
return []int{}
|
||||||
@ -166,8 +172,9 @@ func getPadWidths(stringArrays [][]string) []int {
|
|||||||
padWidths := make([]int, len(stringArrays[0])-1)
|
padWidths := make([]int, len(stringArrays[0])-1)
|
||||||
for i := range padWidths {
|
for i := range padWidths {
|
||||||
for _, strings := range stringArrays {
|
for _, strings := range stringArrays {
|
||||||
if len(strings[i]) > padWidths[i] {
|
uncoloredString := decolorise(strings[i])
|
||||||
padWidths[i] = len(strings[i])
|
if len(uncoloredString) > padWidths[i] {
|
||||||
|
padWidths[i] = len(uncoloredString)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user