Skip to content

Commit ef1ccd7

Browse files
committed
WIP Read all lines from task when jumping to bottom
1 parent 1b98c1b commit ef1ccd7

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

pkg/gui/controllers/view_selection_controller.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,11 @@ func (self *ViewSelectionController) handleGotoTop() error {
100100
}
101101

102102
func (self *ViewSelectionController) handleGotoBottom() error {
103+
if manager, ok := (*self.viewBufferManagerMap)[self.context.GetViewName()]; ok {
104+
manager.ReadToEnd()
105+
// TODO: how can we block here until reading is done?
106+
}
107+
103108
v := self.Context().GetView()
104109
self.handleLineChange(v.ViewLinesHeight())
105110
return nil

pkg/tasks/tasks.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,12 @@ func (self *ViewBufferManager) ReadLines(n int) {
103103
})
104104
}
105105

106+
func (self *ViewBufferManager) ReadToEnd() {
107+
go utils.Safe(func() {
108+
self.readLines <- LinesToRead{Total: -1, InitialRefreshAfter: -1}
109+
})
110+
}
111+
106112
func (self *ViewBufferManager) NewCmdTask(start func() (*exec.Cmd, io.Reader), prefix string, linesToRead LinesToRead, onDoneFn func()) func(TaskOpts) error {
107113
return func(opts TaskOpts) error {
108114
var onDoneOnce sync.Once
@@ -233,7 +239,7 @@ func (self *ViewBufferManager) NewCmdTask(start func() (*exec.Cmd, io.Reader), p
233239
case <-opts.Stop:
234240
break outer
235241
case linesToRead := <-self.readLines:
236-
for i := 0; i < linesToRead.Total; i++ {
242+
for i := 0; linesToRead.Total == -1 || i < linesToRead.Total; i++ {
237243
var ok bool
238244
var line []byte
239245
select {

0 commit comments

Comments
 (0)