m/fzf
1
0
mirror of https://github.com/junegunn/fzf.git synced 2025-11-17 15:53:39 -05:00

Add --tac option and reverse display order of --no-sort

DISCLAIMER: This is a backward incompatible change
This commit is contained in:
Junegunn Choi
2015-02-26 01:42:15 +09:00
parent 4a1752d3fc
commit c1aa5c5f33
14 changed files with 148 additions and 70 deletions

View File

@@ -87,10 +87,28 @@ func (a ByRelevance) Less(i, j int) bool {
irank := a[i].Rank(true)
jrank := a[j].Rank(true)
return compareRanks(irank, jrank)
return compareRanks(irank, jrank, false)
}
func compareRanks(irank Rank, jrank Rank) bool {
// ByRelevanceTac is for sorting Items
type ByRelevanceTac []*Item
func (a ByRelevanceTac) Len() int {
return len(a)
}
func (a ByRelevanceTac) Swap(i, j int) {
a[i], a[j] = a[j], a[i]
}
func (a ByRelevanceTac) Less(i, j int) bool {
irank := a[i].Rank(true)
jrank := a[j].Rank(true)
return compareRanks(irank, jrank, true)
}
func compareRanks(irank Rank, jrank Rank, tac bool) bool {
if irank.matchlen < jrank.matchlen {
return true
} else if irank.matchlen > jrank.matchlen {
@@ -103,8 +121,5 @@ func compareRanks(irank Rank, jrank Rank) bool {
return false
}
if irank.index <= jrank.index {
return true
}
return false
return (irank.index <= jrank.index) != tac
}