mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-02-03 13:21:56 +02:00
Change RenderDisplayStrings to return a slice of strings
We'll join them with newlines afterwards. This will make it easier to insert other (non-model) items.
This commit is contained in:
parent
f680b6e82e
commit
72731f2c16
@ -1,6 +1,8 @@
|
||||
package context
|
||||
|
||||
import (
|
||||
"strings"
|
||||
|
||||
"github.com/jesseduffield/lazygit/pkg/gui/types"
|
||||
"github.com/jesseduffield/lazygit/pkg/utils"
|
||||
)
|
||||
@ -21,7 +23,8 @@ func (self *ListRenderer) renderLines(startIdx int, endIdx int) string {
|
||||
if self.getColumnAlignments != nil {
|
||||
columnAlignments = self.getColumnAlignments()
|
||||
}
|
||||
return utils.RenderDisplayStrings(
|
||||
lines := utils.RenderDisplayStrings(
|
||||
self.getDisplayStrings(startIdx, utils.Min(endIdx, self.list.Len())),
|
||||
columnAlignments)
|
||||
return strings.Join(lines, "\n")
|
||||
}
|
||||
|
@ -422,7 +422,8 @@ func TestGetCommitListDisplayStrings(t *testing.T) {
|
||||
s.showYouAreHereLabel,
|
||||
)
|
||||
|
||||
renderedResult := utils.RenderDisplayStrings(result, nil)
|
||||
renderedLines := utils.RenderDisplayStrings(result, nil)
|
||||
renderedResult := strings.Join(renderedLines, "\n")
|
||||
t.Logf("\n%s", renderedResult)
|
||||
|
||||
assert.EqualValues(t, s.expected, renderedResult)
|
||||
|
@ -37,7 +37,7 @@ func WithPadding(str string, padding int, alignment Alignment) string {
|
||||
|
||||
// defaults to left-aligning each column. If you want to set the alignment of
|
||||
// each column, pass in a slice of Alignment values.
|
||||
func RenderDisplayStrings(displayStringsArr [][]string, columnAlignments []Alignment) string {
|
||||
func RenderDisplayStrings(displayStringsArr [][]string, columnAlignments []Alignment) []string {
|
||||
displayStringsArr = excludeBlankColumns(displayStringsArr)
|
||||
padWidths := getPadWidths(displayStringsArr)
|
||||
columnConfigs := make([]ColumnConfig, len(padWidths))
|
||||
@ -53,9 +53,7 @@ func RenderDisplayStrings(displayStringsArr [][]string, columnAlignments []Align
|
||||
Alignment: alignment,
|
||||
}
|
||||
}
|
||||
output := getPaddedDisplayStrings(displayStringsArr, columnConfigs)
|
||||
|
||||
return output
|
||||
return getPaddedDisplayStrings(displayStringsArr, columnConfigs)
|
||||
}
|
||||
|
||||
// NOTE: this mutates the input slice for the sake of performance
|
||||
@ -91,12 +89,13 @@ outer:
|
||||
return displayStringsArr
|
||||
}
|
||||
|
||||
func getPaddedDisplayStrings(stringArrays [][]string, columnConfigs []ColumnConfig) string {
|
||||
builder := strings.Builder{}
|
||||
for i, stringArray := range stringArrays {
|
||||
func getPaddedDisplayStrings(stringArrays [][]string, columnConfigs []ColumnConfig) []string {
|
||||
result := make([]string, 0, len(stringArrays))
|
||||
for _, stringArray := range stringArrays {
|
||||
if len(stringArray) == 0 {
|
||||
continue
|
||||
}
|
||||
builder := strings.Builder{}
|
||||
for j, columnConfig := range columnConfigs {
|
||||
if len(stringArray)-1 < j {
|
||||
continue
|
||||
@ -108,12 +107,9 @@ func getPaddedDisplayStrings(stringArrays [][]string, columnConfigs []ColumnConf
|
||||
continue
|
||||
}
|
||||
builder.WriteString(stringArray[len(columnConfigs)])
|
||||
|
||||
if i < len(stringArrays)-1 {
|
||||
builder.WriteString("\n")
|
||||
}
|
||||
result = append(result, builder.String())
|
||||
}
|
||||
return builder.String()
|
||||
return result
|
||||
}
|
||||
|
||||
func getPadWidths(stringArrays [][]string) []int {
|
||||
|
@ -1,6 +1,7 @@
|
||||
package utils
|
||||
|
||||
import (
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
@ -217,6 +218,6 @@ func TestRenderDisplayStrings(t *testing.T) {
|
||||
|
||||
for _, test := range tests {
|
||||
output := RenderDisplayStrings(test.input, test.columnAlignments)
|
||||
assert.EqualValues(t, test.expected, output)
|
||||
assert.EqualValues(t, test.expected, strings.Join(output, "\n"))
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user