* Added hybrid line numbers
* Changed rulerhybrid to relativeruler, modified documentation accordingly.
* Reverted go.mod and go.sum
I don't know how they got changed but they are good now.
Co-authored-by: Colin Hughes <semilin@pop-os.localdomain>
"readonly": false,
"rmtrailingws": false,
"ruler": true,
+ "relativeruler": false,
"savecursor": false,
"saveundo": false,
"scrollbar": false,
}
func (w *BufWindow) drawLineNum(lineNumStyle tcell.Style, softwrapped bool, maxLineNumLength int, vloc *buffer.Loc, bloc *buffer.Loc) {
- lineNum := strconv.Itoa(bloc.Y + 1)
+ cursorLine := w.Buf.GetActiveCursor().Loc.Y
+ var lineInt int
+ if w.Buf.Settings["relativeruler"] == false || cursorLine == bloc.Y {
+ lineInt = bloc.Y + 1
+ } else {
+ lineInt = bloc.Y - cursorLine
+ }
+ lineNum := strconv.Itoa(util.Abs(lineInt))
// Write the spaces before the line number if necessary
for i := 0; i < maxLineNumLength-len(lineNum); i++ {
default value: `true`
+* `relativeruler`: make line numbers display relatively. If set to true, all lines except
+ for the line that the cursor is located will display the distance from the
+ cursor's line.
+
+ default value: `false`
+
* `savecursor`: remember where the cursor was last time the file was opened and
put it there when you open the file again. Information is saved to
`~/.config/micro/buffers/`