From c6d1c431211a97ca7c07481bc2bca77e4db4c7e3 Mon Sep 17 00:00:00 2001 From: Mark Jaquith Date: Thu, 24 Apr 2025 16:00:07 -0400 Subject: [PATCH 1/2] Modernize with slices.Delete --- lister/list.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lister/list.go b/lister/list.go index f398b74..3b26853 100644 --- a/lister/list.go +++ b/lister/list.go @@ -2,6 +2,7 @@ package lister import ( "github.com/joshmedeski/sesh/v2/model" + "slices" ) type ( @@ -41,8 +42,7 @@ func (l *RealLister) List(opts ListOptions) (model.SeshSessions, error) { sessionsCopy := sessions.OrderedIndex for i, ses := range sessionsCopy { if attachedSession.Name == sessions.Directory[ses].Name { - sessions.OrderedIndex = append(sessions.OrderedIndex[:i], - sessions.OrderedIndex[i+1:]...) + sessions.OrderedIndex = slices.Delete(sessions.OrderedIndex, i, i+1) } } } From b15cb145803925588e5e1bdfc686c6bdf601902a Mon Sep 17 00:00:00 2001 From: Mark Jaquith Date: Thu, 24 Apr 2025 16:52:29 -0400 Subject: [PATCH 2/2] Defer hiding the attached session until after its duplicates have been removed fixes #249 --- lister/list.go | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/lister/list.go b/lister/list.go index 3b26853..2f20dfa 100644 --- a/lister/list.go +++ b/lister/list.go @@ -37,15 +37,6 @@ func (l *RealLister) List(opts ListOptions) (model.SeshSessions, error) { if err != nil { return model.SeshSessions{}, err } - if opts.HideAttached { - attachedSession, _ := GetAttachedTmuxSession(l) - sessionsCopy := sessions.OrderedIndex - for i, ses := range sessionsCopy { - if attachedSession.Name == sessions.Directory[ses].Name { - sessions.OrderedIndex = slices.Delete(sessions.OrderedIndex, i, i+1) - } - } - } fullOrderedIndex = append(fullOrderedIndex, sessions.OrderedIndex...) for _, i := range sessions.OrderedIndex { fullDirectory[i] = sessions.Directory[i] @@ -66,6 +57,16 @@ func (l *RealLister) List(opts ListOptions) (model.SeshSessions, error) { fullOrderedIndex = fullOrderedIndex[:destIndex] } + if opts.HideAttached { + attachedSession, _ := GetAttachedTmuxSession(l) + for i, index := range fullOrderedIndex { + if fullDirectory[index].Name == attachedSession.Name { + fullOrderedIndex = slices.Delete(fullOrderedIndex, i, i+1) + break + } + } + } + return model.SeshSessions{ OrderedIndex: fullOrderedIndex, Directory: fullDirectory,