MCPcopy Index your code
hub / github.com/codehamr/codehamr / snapCursorOutOfChip

Method snapCursorOutOfChip

internal/tui/prompt.go:148–161  ·  view source on GitHub ↗

snapCursorOutOfChip snaps a cursor sitting strictly inside a chip to the nearer boundary. Returns the (possibly adjusted) offset so callers skip a second cursorRuneOffset read.

()

Source from the content-addressed store, hash-verified

146// nearer boundary. Returns the (possibly adjusted) offset so callers skip a
147// second cursorRuneOffset read.
148func (p *promptInput) snapCursorOutOfChip() int {
149 cur := p.cursorRuneOffset()
150 for _, chip := range p.spans {
151 if cur > chip.start && cur < chip.end {
152 target := chip.end
153 if cur-chip.start < chip.end-cur {
154 target = chip.start
155 }
156 p.setCursorRuneOffset(target)
157 return target
158 }
159 }
160 return cur
161}
162
163// chipAtBoundary returns the chip whose start (atStart=true) or end
164// (atStart=false) coincides with cur, the check Backspace/Delete/Left/Right share.

Callers 4

UpdateMethod · 0.95
handlePageKeyMethod · 0.95
handleChipKeyMethod · 0.95
insertChipMethod · 0.95

Calls 2

cursorRuneOffsetMethod · 0.95
setCursorRuneOffsetMethod · 0.95

Tested by

no test coverage detected