Merge pull request #1084 from jtolds/master
home toggles between start of line and start of text
This commit is contained in:
commit
6ef273accd
2 changed files with 17 additions and 1 deletions
|
@ -435,7 +435,11 @@ func (v *View) StartOfLine(usePlugin bool) bool {
|
|||
|
||||
v.deselect(0)
|
||||
|
||||
v.Cursor.Start()
|
||||
if v.Cursor.X != 0 {
|
||||
v.Cursor.Start()
|
||||
} else {
|
||||
v.Cursor.StartOfText()
|
||||
}
|
||||
|
||||
if usePlugin {
|
||||
return PostActionCall("StartOfLine", v)
|
||||
|
|
|
@ -333,6 +333,18 @@ func (c *Cursor) Start() {
|
|||
c.LastVisualX = c.GetVisualX()
|
||||
}
|
||||
|
||||
// StartOfText moves the cursor to the first non-whitespace rune of
|
||||
// the line it is on
|
||||
func (c *Cursor) StartOfText() {
|
||||
c.Start()
|
||||
for IsWhitespace(c.RuneUnder(c.X)) {
|
||||
if c.X == Count(c.buf.Line(c.Y)) {
|
||||
break
|
||||
}
|
||||
c.Right()
|
||||
}
|
||||
}
|
||||
|
||||
// GetCharPosInLine gets the char position of a visual x y
|
||||
// coordinate (this is necessary because tabs are 1 char but
|
||||
// 4 visual spaces)
|
||||
|
|
Loading…
Reference in a new issue