Add SortByColumn function and improve some functions
parent
d14f1867e0
commit
17f24f765c
20
table.go
20
table.go
|
|
@ -2,6 +2,7 @@ package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"sort"
|
||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -32,12 +33,15 @@ func centerString(s string, width int) string {
|
||||||
return strings.Repeat(" ", leftPadding) + s + strings.Repeat(" ", rightPadding)
|
return strings.Repeat(" ", leftPadding) + s + strings.Repeat(" ", rightPadding)
|
||||||
}
|
}
|
||||||
|
|
||||||
func formatStr(fileName string, maxSize int) string {
|
func cutStr(s string, maxSize int) string {
|
||||||
if len(fileName) <= maxSize {
|
if len(s) <= maxSize {
|
||||||
return centerString(fileName, maxSize)
|
return s
|
||||||
|
}
|
||||||
|
return s[:maxSize-3] + "..."
|
||||||
}
|
}
|
||||||
|
|
||||||
return centerString(fileName[:maxSize-3]+"...", maxSize)
|
func formatStr(s string, maxSize int) string {
|
||||||
|
return centerString(cutStr(s, maxSize), maxSize)
|
||||||
}
|
}
|
||||||
|
|
||||||
const paddingDefault = 2
|
const paddingDefault = 2
|
||||||
|
|
@ -124,6 +128,14 @@ func (printer *TablePrinter) AddRow(r Row) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (printer *TablePrinter) SortByColumn(col int) {
|
||||||
|
if col < printer.NumCols() {
|
||||||
|
sort.Slice(printer.Rows, func(i, j int) bool {
|
||||||
|
return printer.Rows[i][col] < printer.Rows[j][col]
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (printer *TablePrinter) Print() {
|
func (printer *TablePrinter) Print() {
|
||||||
colWidths := printer.computeColumnWidthds()
|
colWidths := printer.computeColumnWidthds()
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue