Support line:col in JumpLine

Closes #1000
This commit is contained in:
Zachary Yedidia
2018-01-17 19:09:50 -05:00
parent 3924e363d1
commit 16e9068cb9

View File

@@ -1623,21 +1623,38 @@ func (v *View) JumpLine(usePlugin bool) bool {
}
// Prompt for line number
message := fmt.Sprintf("Jump to line (1 - %v) # ", v.Buf.NumLines)
linestring, canceled := messenger.Prompt(message, "", "LineNumber", NoCompletion)
message := fmt.Sprintf("Jump to line:col (1 - %v) # ", v.Buf.NumLines)
input, canceled := messenger.Prompt(message, "", "LineNumber", NoCompletion)
if canceled {
return false
}
lineint, err := strconv.Atoi(linestring)
lineint = lineint - 1 // fix offset
if err != nil {
messenger.Error(err) // return errors
return false
var lineInt int
var colInt int
var err error
if strings.Contains(input, ":") {
split := strings.Split(input, ":")
lineInt, err = strconv.Atoi(split[0])
if err != nil {
messenger.Message("Invalid line number")
return false
}
colInt, err = strconv.Atoi(split[1])
if err != nil {
messenger.Message("Invalid column number")
return false
}
} else {
lineInt, err = strconv.Atoi(input)
if err != nil {
messenger.Message("Invalid line number")
return false
}
}
lineInt--
// Move cursor and view if possible.
if lineint < v.Buf.NumLines && lineint >= 0 {
v.Cursor.X = 0
v.Cursor.Y = lineint
if lineInt < v.Buf.NumLines && lineInt >= 0 {
v.Cursor.X = colInt
v.Cursor.Y = lineInt
if usePlugin {
return PostActionCall("JumpLine", v)