aboutsummaryrefslogtreecommitdiffhomepage
path: root/.vim/my/ftplugin/todolist.vim
diff options
context:
space:
mode:
Diffstat (limited to '.vim/my/ftplugin/todolist.vim')
-rw-r--r--.vim/my/ftplugin/todolist.vim71
1 files changed, 0 insertions, 71 deletions
diff --git a/.vim/my/ftplugin/todolist.vim b/.vim/my/ftplugin/todolist.vim
deleted file mode 100644
index e65faa3..0000000
--- a/.vim/my/ftplugin/todolist.vim
+++ /dev/null
@@ -1,71 +0,0 @@
-scriptencoding utf-8
-
-
-if exists('b:did_ftplugin_todolist')
- finish
-endif
-
-
-
-inoremap <silent> <buffer> <expr> <Space> <SID>checkbox(0, ' ')
-inoremap <silent> <buffer> <expr> x <SID>checkbox(1, 'x')
-
-nnoremap <silent> <buffer> <Plug>(todolist-toggle-checkbox) :<C-u>call <SID>toggle_checkbox()<CR>
-nnoremap <silent> <buffer> <Plug>(todolist-toggle-checkbox-rec) :<C-u>call <SID>toggle_checkbox_rec()<CR>
-
-
-function! s:checkbox(check, char)
- let line = getline('.')
- if line =~# '^\s*$' && len(line) % shiftwidth() == 0
- if a:check
- return '[x] '
- else
- return '[ ] '
- endif
- else
- return a:char
- endif
-endfunction
-
-
-function! s:toggle_checkbox()
- call s:toggle_checkbox_internal(line('.'), -1)
-endfunction
-
-
-function! s:toggle_checkbox_rec()
- let checked = s:toggle_checkbox_internal(line('.'), -1)
- if checked == -1
- return
- endif
- if line('.') == line('$')
- return
- endif
-
- let indent_lv = indent('.')
- for l in range(line('.') + 1, line('$'))
- if indent(l) <= indent_lv
- break
- end
- call s:toggle_checkbox_internal(l, checked)
- endfor
-endfunction
-
-
-function! s:toggle_checkbox_internal(line_num, ck_force)
- let line = getline(a:line_num)
- let match = matchlist(line, '^\(\s*\)\[\([x ]\)\]\(.*\)')
- if empty(match)
- return -1
- endif
-
- let [whole, spaces, ck, rest; _] = match
- let checked = a:ck_force == -1 ? ck == 'x' : a:ck_force
- let line = spaces . '[' . (checked ? ' ' : 'x') . ']' . rest
- call setline(a:line_num, line)
- return checked
-endfunction
-
-
-
-let b:did_ftplugin_todolist = 1