commit 99d65f0
delthas
·
2024-07-16 18:08:32 +0000 UTC
parent fcd4e9d
Sort powered users by power level Instead of just alphabetically between them.
3 files changed,
+18,
-12
M
app.go
+1,
-5
1@@ -743,11 +743,7 @@ func (app *App) handleKeyEvent(ev vaxis.Key) {
2 if app.win.InputDeleteWord() {
3 app.typing()
4 }
5- } else if keyMatches(ev, vaxis.KeyBackspace, 0) {
6- if app.win.InputBackspace() {
7- app.typing()
8- }
9- } else if keyMatches(ev, vaxis.KeyBackspace, vaxis.ModShift) {
10+ } else if keyMatches(ev, vaxis.KeyBackspace, 0) || keyMatches(ev, vaxis.KeyBackspace, vaxis.ModShift) {
11 if app.win.InputBackspace() {
12 app.typing()
13 }
+4,
-1
1@@ -298,7 +298,10 @@ func (s *Session) Names(target string) []Member {
2 Self: true,
3 })
4 }
5- sort.Sort(members(names))
6+ sort.Sort(members{
7+ m: names,
8+ prefixes: s.prefixSymbols,
9+ })
10 return names
11 }
12
+13,
-6
1@@ -470,24 +470,31 @@ type Member struct {
2 Self bool // Added by senpai
3 }
4
5-type members []Member
6+type members struct {
7+ m []Member
8+ prefixes string
9+}
10
11 func (m members) Len() int {
12- return len(m)
13+ return len(m.m)
14 }
15
16 func (m members) Less(i, j int) bool {
17- if m[i].PowerLevel != "" && m[j].PowerLevel == "" {
18+ if m.m[i].PowerLevel != "" && m.m[j].PowerLevel == "" {
19 return true
20- } else if m[i].PowerLevel == "" && m[j].PowerLevel != "" {
21+ } else if m.m[i].PowerLevel == "" && m.m[j].PowerLevel != "" {
22 return false
23+ } else if m.m[i].PowerLevel != m.m[j].PowerLevel {
24+ pi := strings.IndexByte(m.prefixes, m.m[i].PowerLevel[0])
25+ pj := strings.IndexByte(m.prefixes, m.m[j].PowerLevel[0])
26+ return pi < pj
27 } else {
28- return strings.ToLower(m[i].Name.Name) < strings.ToLower(m[j].Name.Name)
29+ return strings.ToLower(m.m[i].Name.Name) < strings.ToLower(m.m[j].Name.Name)
30 }
31 }
32
33 func (m members) Swap(i, j int) {
34- m[i], m[j] = m[j], m[i]
35+ m.m[i], m.m[j] = m.m[j], m.m[i]
36 }
37
38 // ParseNameReply parses the last parameter of RPL_NAMREPLY, according to the