summaryrefslogtreecommitdiff
path: root/start/signify/autoload/sy/jump.vim
diff options
context:
space:
mode:
authorMichael Smith <mikesmiffy128@gmail.com>2022-05-22 22:47:23 +0100
committerMichael Smith <mikesmiffy128@gmail.com>2022-05-22 22:47:23 +0100
commit95aea6b533e71e478d61d18fac71cca116c56a4d (patch)
tree1a1f42f723772258cc54551495826768f374474a /start/signify/autoload/sy/jump.vim
Add all the plugins I currently use
Diffstat (limited to 'start/signify/autoload/sy/jump.vim')
-rw-r--r--start/signify/autoload/sy/jump.vim29
1 files changed, 29 insertions, 0 deletions
diff --git a/start/signify/autoload/sy/jump.vim b/start/signify/autoload/sy/jump.vim
new file mode 100644
index 0000000..69756b1
--- /dev/null
+++ b/start/signify/autoload/sy/jump.vim
@@ -0,0 +1,29 @@
+" vim: et sw=2 sts=2
+
+scriptencoding utf-8
+
+" Function: #next_hunk {{{1
+function! sy#jump#next_hunk(count)
+ execute sy#util#return_if_no_changes()
+
+ let lnum = line('.')
+ let hunks = filter(copy(b:sy.hunks), 'v:val.start > lnum')
+ let hunk = get(hunks, a:count - 1, get(hunks, -1, {}))
+
+ if !empty(hunk)
+ execute 'sign jump '. hunk.ids[0] .' buffer='. b:sy.buffer
+ endif
+endfunction
+
+" Function: #prev_hunk {{{1
+function! sy#jump#prev_hunk(count)
+ execute sy#util#return_if_no_changes()
+
+ let lnum = line('.')
+ let hunks = filter(copy(b:sy.hunks), 'v:val.start < lnum')
+ let hunk = get(hunks, 0 - a:count, get(hunks, 0, {}))
+
+ if !empty(hunk)
+ execute 'sign jump '. hunk.ids[0] .' buffer='. b:sy.buffer
+ endif
+endfunction