Merge remote-tracking branch 'origin/list' into tool_improvements

This commit is contained in:
Kujtim Hoxha
2025-07-25 16:01:23 +02:00
5 changed files with 18 additions and 29 deletions

View File

@@ -149,8 +149,8 @@ func (s *Slice[T]) Seq() iter.Seq[T] {
}
}
// SeqWithIndex returns an iterator that yields index-value pairs from the slice.
func (s *Slice[T]) SeqWithIndex() iter.Seq2[int, T] {
// Seq2 returns an iterator that yields index-value pairs from the slice.
func (s *Slice[T]) Seq2() iter.Seq2[int, T] {
// Take a snapshot to avoid holding the lock during iteration
items := s.Slice()
return func(yield func(int, T) bool) {

View File

@@ -250,7 +250,7 @@ func TestSlice(t *testing.T) {
var indices []int
var values []string
for i, v := range s.SeqWithIndex() {
for i, v := range s.Seq2() {
indices = append(indices, i)
values = append(values, v)
}

View File

@@ -746,20 +746,16 @@ func (l *list[T]) GetSize() (int, int) {
// GoToBottom implements List.
func (l *list[T]) GoToBottom() tea.Cmd {
if l.offset != 0 {
l.selectedItem = ""
}
l.offset = 0
l.selectedItem = ""
l.direction = DirectionBackward
return l.render()
}
// GoToTop implements List.
func (l *list[T]) GoToTop() tea.Cmd {
if l.offset != 0 {
l.selectedItem = ""
}
l.offset = 0
l.selectedItem = ""
l.direction = DirectionForward
return l.render()
}
@@ -996,14 +992,7 @@ func (l *list[T]) UpdateItem(id string, item T) tea.Cmd {
if hasOldItem && l.direction == DirectionBackward {
// if we are the last item and there is no offset
// make sure to go to the bottom
if inx == l.items.Len()-1 && l.offset == 0 {
cmd = l.GoToBottom()
if cmd != nil {
cmds = append(cmds, cmd)
}
// if the item is at least partially below the viewport
} else if oldPosition < oldItem.end {
if oldPosition < oldItem.end {
newItem, ok := l.renderedItems.Get(item.ID())
if ok {
newLines := newItem.height - oldItem.height

View File

@@ -1,10 +1,10 @@
Item 29
Item 29
Item 29
Item 29
Item 29
Item 29
Item 29
Item 29
Item 29
Testing 
Item 29
Item 29
Item 29
Item 29
Item 29
Item 29
Item 29
Item 29
Item 29
Testing 

View File

@@ -1,5 +1,5 @@
Testing 
Item 0
Testing 
Item 0
Item 1
Item 1
Item 2