MCPcopy Create free account
hub / github.com/wavetermdev/waveterm / Move

Method Move

pkg/util/logview/logview.go:130–167  ·  view source on GitHub ↗
(linePtr *LinePtr, offset int)

Source from the content-addressed store, hash-verified

128}
129
130func (lv *LogView) Move(linePtr *LinePtr, offset int) (int, *LinePtr, error) {
131 var n int
132 if offset > 0 {
133 for {
134 nextLinePtr, err := lv.NextLinePtr(linePtr)
135 if err == io.EOF {
136 break
137 }
138 if err != nil {
139 return 0, nil, err
140 }
141 linePtr = nextLinePtr
142 n++
143 if n == offset {
144 break
145 }
146 }
147 return n, linePtr, nil
148 }
149 if offset < 0 {
150 for {
151 prevLinePtr, err := lv.PrevLinePtr(linePtr)
152 if err == ErrBOF {
153 break
154 }
155 if err != nil {
156 return 0, nil, err
157 }
158 linePtr = prevLinePtr
159 n--
160 if n == offset {
161 break
162 }
163 }
164 return n, linePtr, nil
165 }
166 return 0, linePtr, nil
167}
168
169func (lv *LogView) LastLinePtr(linePtr *LinePtr) (*LinePtr, error) {
170 if linePtr == nil {

Callers

nothing calls this directly

Calls 2

NextLinePtrMethod · 0.95
PrevLinePtrMethod · 0.95

Tested by

no test coverage detected