diff options
Diffstat (limited to '')
-rw-r--r-- | indent/org.vim | 137 |
1 files changed, 0 insertions, 137 deletions
diff --git a/indent/org.vim b/indent/org.vim deleted file mode 100644 index d9e363dc..00000000 --- a/indent/org.vim +++ /dev/null @@ -1,137 +0,0 @@ -if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'org') != -1 - finish -endif - -" Delete the next line to avoid the special indention of items -if !exists("g:org_indent") - let g:org_indent = 0 -endif - -setlocal foldtext=GetOrgFoldtext() -setlocal fillchars-=fold:- -setlocal fillchars+=fold:\ -setlocal foldexpr=GetOrgFolding() -setlocal foldmethod=expr -setlocal indentexpr=GetOrgIndent() -setlocal nolisp -setlocal nosmartindent -setlocal autoindent - -if has('python3') - let s:py_env = 'python3 << EOF' -else - let s:py_env = 'python << EOF' -endif - -function! GetOrgIndent() - if g:org_indent == 0 - return -1 - endif - -exe s:py_env -from orgmode._vim import indent_orgmode -indent_orgmode() -EOF - - if exists('b:indent_level') - let l:tmp = b:indent_level - unlet b:indent_level - return l:tmp - else - return -1 - endif -endfunction - -function! GetOrgFolding() - let l:mode = mode() - if l:mode == 'i' - " the cache size is limited to 3, because vim queries the current and - " both surrounding lines when the user is typing in insert mode. The - " cache is shared between GetOrgFolding and GetOrgFoldtext - if ! exists('b:org_folding_cache') - let b:org_folding_cache = {} - endif - - if has_key(b:org_folding_cache, v:lnum) - if match(b:org_folding_cache[v:lnum], '^>') == 0 && - \ match(getline(v:lnum), '^\*\+\s') != 0 - " when the user pastes text or presses enter, it happens that - " the cache starts to confuse vim's folding abilities - " these entries can safely be removed - unlet b:org_folding_cache[v:lnum] - - " the fold text cache is probably also damaged, delete it as - " well - unlet! b:org_foldtext_cache - else - return b:org_folding_cache[v:lnum] - endif - endif - - exe s:py_env -from orgmode._vim import fold_orgmode -fold_orgmode(allow_dirty=True) -EOF - else - - exe s:py_env -from orgmode._vim import fold_orgmode -fold_orgmode() -EOF - endif - - if exists('b:fold_expr') - let l:tmp = b:fold_expr - unlet b:fold_expr - if l:mode == 'i' - if ! has_key(b:org_folding_cache, v:lnum) - if len(b:org_folding_cache) > 3 - let b:org_folding_cache = {} - endif - let b:org_folding_cache[v:lnum] = l:tmp - endif - endif - return l:tmp - else - return -1 - endif -endfunction - -function! SetOrgFoldtext(text) - let b:foldtext = a:text -endfunction - -function! GetOrgFoldtext() - let l:mode = mode() - if l:mode == 'i' - " add a separate cache for fold text - if ! exists('b:org_foldtext_cache') || - \ ! has_key(b:org_foldtext_cache, 'timestamp') || - \ b:org_foldtext_cache['timestamp'] > (localtime() + 10) - let b:org_foldtext_cache = {'timestamp': localtime()} - endif - - if has_key(b:org_foldtext_cache, v:foldstart) - return b:org_foldtext_cache[v:foldstart] - endif - exe s:py_env -from orgmode._vim import fold_text -fold_text(allow_dirty=True) -EOF - else - unlet! b:org_foldtext_cache - exec s:py_env -from orgmode._vim import fold_text -fold_text() -EOF - endif - - if exists('b:foldtext') - let l:tmp = b:foldtext - unlet b:foldtext - if l:mode == 'i' - let b:org_foldtext_cache[v:foldstart] = l:tmp - endif - return l:tmp - endif -endfunction |