diff options
Diffstat (limited to '.vim/my/indent/todolist.vim')
| -rw-r--r-- | .vim/my/indent/todolist.vim | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/.vim/my/indent/todolist.vim b/.vim/my/indent/todolist.vim new file mode 100644 index 0000000..0640a93 --- /dev/null +++ b/.vim/my/indent/todolist.vim @@ -0,0 +1,32 @@ +if exists('b:did_indent') + finish +endif + + +setlocal indentexpr=TodolistIndent() + + +function! TodolistIndent() + if v:lnum == 0 + return 0 + endif + + let line = getline(v:lnum - 1) + if s:starts_with_checkbox(line) + return indent(v:lnum - 1) + else + return 0 + endif +endfunction + + +function! s:starts_with_checkbox(line) + if a:line =~# '^\s*\[[ x]\]' + return 1 + else + return 0 + endif +endfunction + + +let b:did_indent = 1 |
