From f0fd9acc4bcc4233a4bc661f23626abe496a3cee Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Fri, 15 Nov 2024 08:40:22 +0100 Subject: vim-patch:9.1.0865: filetype: org files are not recognized Problem: filetype: org files are not recognized Solution: detect '*.org' files as 'org' filetype, include filetype and syntax plugin (Luca Saccarola) closes: vim/vim#16054 https://github.com/vim/vim/commit/0684800c853ee5bd6e6736389b1a6ebe6a16a741 Co-authored-by: Luca Saccarola --- runtime/ftplugin/org.vim | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 runtime/ftplugin/org.vim (limited to 'runtime/ftplugin') diff --git a/runtime/ftplugin/org.vim b/runtime/ftplugin/org.vim new file mode 100644 index 0000000000..45a5e19d49 --- /dev/null +++ b/runtime/ftplugin/org.vim @@ -0,0 +1,37 @@ +" Vim filetype plugin file +" Language: Org +" Maintainer: Luca Saccarola +" Last Change: 2024 Nov 14 + +if exists("b:did_ftplugin") + finish +endif +let b:did_ftplugin = 1 + +if exists('b:undo_ftplugin') + let b:undo_ftplugin .= "|setl cms< com< fo< flp<" +else + let b:undo_ftplugin = "setl cms< com< fo< flp<" +endif + +setl commentstring=#\ %s +setl comments=fb:*,fb:-,fb:+,b:#,b:\: + +setl formatoptions+=nql +setl formatlistpat=^\\s*\\(\\(\\d\\|\\a\\)\\+[.)]\\|[+-]\\)\\s\\+ + +function OrgFoldExpr() + let l:depth = match(getline(v:lnum), '\(^\*\+\)\@<=\( .*$\)\@=') + if l:depth > 0 && synIDattr(synID(v:lnum, 1, 1), 'name') =~# '\m^orgHeadline' + return ">" . l:depth + endif + return "=" +endfunction + +if has("folding") && get(g:, 'org_folding', 0) + setl foldexpr=OrgFoldExpr() + setl foldmethod=expr + let b:undo_ftplugin .= "|setl foldexpr< foldmethod<" +endif + +" vim: ts=8 sts=2 sw=2 et -- cgit