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

Method PrevLinePtr

pkg/util/logview/logview.go:107–128  ·  view source on GitHub ↗
(linePtr *LinePtr)

Source from the content-addressed store, hash-verified

105}
106
107func (lv *LogView) PrevLinePtr(linePtr *LinePtr) (*LinePtr, error) {
108 if linePtr == nil {
109 return nil, fmt.Errorf("linePtr is nil")
110 }
111 numLines := int64(0)
112 offset := linePtr.Offset
113 for {
114 var err error
115 prevOffset, err := lv.MultiBuf.PrevLine(offset)
116 if err == ErrBOF {
117 return nil, nil
118 }
119 if err != nil {
120 return nil, err
121 }
122 numLines++
123 if lv.isLineMatch(prevOffset) {
124 return &LinePtr{Offset: prevOffset, RealLineNum: linePtr.RealLineNum - numLines, LineNum: linePtr.LineNum - 1}, nil
125 }
126 offset = prevOffset
127 }
128}
129
130func (lv *LogView) Move(linePtr *LinePtr, offset int) (int, *LinePtr, error) {
131 var n int

Callers 1

MoveMethod · 0.95

Calls 2

isLineMatchMethod · 0.95
PrevLineMethod · 0.80

Tested by

no test coverage detected