aboutsummaryrefslogtreecommitdiff
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
parentMerge branch 'hotfix/v1.0.1' (diff)
parentBump VERSION (diff)
downloadvim-insert-timeout-2.0.0.tar.gz (sig)
vim-insert-timeout-2.0.0.zip
Merge branch 'release/v2.0.0'HEADv2.0.0master
* release/v2.0.0: Refactor to use dynamic autocmds
-rw-r--r--VERSION2
-rw-r--r--autoload/insert_timeout.vim27
-rw-r--r--plugin/insert_timeout.vim6
3 files changed, 19 insertions, 16 deletions
diff --git a/VERSION b/VERSION
index 7dea76e..227cea2 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.0.1
+2.0.0
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
diff --git a/plugin/insert_timeout.vim b/plugin/insert_timeout.vim
index 80915d3..b0abde6 100644
--- a/plugin/insert_timeout.vim
+++ b/plugin/insert_timeout.vim
@@ -15,9 +15,5 @@ let loaded_insert_timeout = 1
augroup insert_timeout
autocmd!
autocmd InsertEnter *
- \ call insert_timeout#Enter()
- autocmd InsertLeave *
- \ call insert_timeout#Leave()
- autocmd CursorHoldI *
- \ stopinsert
+ \ call insert_timeout#()
augroup END