Add scrollmargin option, rename scrollSpeed to scrollspeed for consistency, make help.md more consistent (replaced some spaces with tabs)

This commit is contained in:
Camille Scholtz
2016-05-20 19:44:16 +02:00
parent 096221fd0e
commit 116b247439
5 changed files with 86 additions and 75 deletions

View File

@@ -149,7 +149,8 @@ func HandleCommand(input string, view *View) {
if strings.Contains(flags, "c") {
// The 'check' flag was used
Search(search, view, true)
view.Relocate(0)
scrollmargin := int(settings["scrollmargin"].(float64))
view.Relocate(scrollmargin)
Redraw(view)
choice, canceled := messenger.YesNoPrompt("Perform replacement? (y,n)")
if canceled {

View File

@@ -121,7 +121,8 @@ func Search(searchStr string, v *View, down bool) {
v.Cursor.curSelection[0] = charPos + match[0]
v.Cursor.curSelection[1] = charPos + match[1]
v.Cursor.x, v.Cursor.y = FromCharPos(charPos+match[1]-1, v.Buf)
if v.Relocate(4) {
scrollmargin := int(settings["scrollmargin"].(float64))
if v.Relocate(scrollmargin) {
v.matches = Match(v)
}
lastSearch = searchStr

View File

@@ -81,7 +81,8 @@ func DefaultSettings() map[string]interface{} {
"tabsToSpaces": false,
"ruler": true,
"statusline": true,
"scrollSpeed": float64(2),
"scrollmargin": float64(3),
"scrollspeed": float64(2),
}
}

View File

@@ -205,11 +205,14 @@ func (v *View) ReOpen() {
func (v *View) Relocate(x int) bool {
ret := false
cy := v.Cursor.y
if cy < v.Topline {
if cy < v.Topline+x && cy > x-1 {
v.Topline = cy - x
ret = true
} else if cy < v.Topline {
v.Topline = cy
ret = true
}
if cy > v.Topline+v.height-1 {
if cy > v.Topline+v.height-1-x {
v.Topline = cy - v.height + 1 + x
ret = true
}
@@ -257,6 +260,7 @@ func (v *View) HandleEvent(event tcell.Event) {
// This bool determines whether the view is relocated at the end of the function
// By default it's true because most events should cause a relocate
relocate := true
scrollmargin := int(settings["scrollmargin"].(float64))
switch e := event.(type) {
case *tcell.EventResize:
@@ -368,17 +372,17 @@ func (v *View) HandleEvent(event tcell.Event) {
}
case tcell.WheelUp:
// Scroll up
scrollSpeed := int(settings["scrollSpeed"].(float64))
v.ScrollUp(scrollSpeed)
scrollspeed := int(settings["scrollspeed"].(float64))
v.ScrollUp(scrollspeed)
case tcell.WheelDown:
// Scroll down
scrollSpeed := int(settings["scrollSpeed"].(float64))
v.ScrollDown(scrollSpeed)
scrollspeed := int(settings["scrollspeed"].(float64))
v.ScrollDown(scrollspeed)
}
}
if relocate {
v.Relocate(0)
v.Relocate(scrollmargin)
}
if settings["syntax"].(bool) {
v.matches = Match(v)