aboutsummaryrefslogtreecommitdiff
path: root/autoload/insert_timeout.vim
diff options
context:
space:
mode:
authorTom Ryder <tom@sanctum.geek.nz>2019-06-05 23:05:16 +1200
committerTom Ryder <tom@sanctum.geek.nz>2019-06-05 23:05:16 +1200
commitfc387d5e861b4804ce00eb61e2086dc0ecfafe0f (patch)
tree98dd25fba445fca0a536c37fc4d879628fc41e2a /autoload/insert_timeout.vim
parentMerge branch 'hotfix/v1.0.1' (diff)
parentBump VERSION (diff)
downloadvim-insert-timeout-fc387d5e861b4804ce00eb61e2086dc0ecfafe0f.tar.gz
vim-insert-timeout-fc387d5e861b4804ce00eb61e2086dc0ecfafe0f.zip
Merge branch 'release/v2.0.0'HEADv2.0.0master
* release/v2.0.0: Refactor to use dynamic autocmds
Diffstat (limited to 'autoload/insert_timeout.vim')
-rw-r--r--autoload/insert_timeout.vim27
1 files changed, 17 insertions, 10 deletions
diff --git a/autoload/insert_timeout.vim b/autoload/insert_timeout.vim
index 8ca3e7c..3dfe9ad 100644
--- a/autoload/insert_timeout.vim
+++ b/autoload/insert_timeout.vim
@@ -1,14 +1,21 @@
-" Set update time to configured variable or default 20 seconds
-function! insert_timeout#Enter() abort
+" Set update time to configured variable or default 20 seconds for duration of
+" insert
+function! insert_timeout#() abort
+
+ " Save current value of 'updatetime' into script variable
let s:updatetime = &updatetime
+
+ " Set 'updatetime' to configured variable or default
let &updatetime = get(g:, 'insert_timeout_duration', 20000)
-endfunction
-" Restore update time to its previous value
-function! insert_timeout#Leave() abort
- if !exists('s:updatetime')
- return
- endif
- let &updatetime = s:updatetime
- unlet s:updatetime
+ " Restore 'updatetime' when insert mode ends
+ autocmd insert_timeout InsertLeave *
+ \ let &updatetime = s:updatetime
+ \|autocmd! insert_timeout InsertLeave
+
+ " Stop the insert after 'updatetime' seconds
+ autocmd insert_timeout CursorHoldI *
+ \ stopinsert
+ \|autocmd! insert_timeout CursorHoldI
+
endfunction