diff options
Diffstat (limited to 'doc/asciidoc/vim/ftdetect/asciidoc_filetype.vim')
-rw-r--r-- | doc/asciidoc/vim/ftdetect/asciidoc_filetype.vim | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/doc/asciidoc/vim/ftdetect/asciidoc_filetype.vim b/doc/asciidoc/vim/ftdetect/asciidoc_filetype.vim new file mode 100644 index 0000000..c8f7028 --- /dev/null +++ b/doc/asciidoc/vim/ftdetect/asciidoc_filetype.vim @@ -0,0 +1,53 @@ +" Vim filetype detection file +" Language: AsciiDoc +" Author: Stuart Rackham <srackham@gmail.com> +" Last Change: AsciiDoc 8.2.0 +" URL: http://www.methods.co.nz/asciidoc/ +" Licence: GPL (http://www.gnu.org) +" Remarks: Vim 6 or greater + +" COMMENT OUT ONE OF THE TWO FOLLOWING COMMANDS +" The first sets asciidoc syntax highlighting on all .txt files, the second +" only existing files *.txt that appear to be AsciiDoc files. + +au BufNewFile,BufRead *.asciidoc,*.txt,README,TODO,CHANGELOG,NOTES setfiletype asciidoc +"au BufRead *.txt,README,TODO,CHANGELOG,NOTES call s:FTasciidoc() + +" This function checks for a valid AsciiDoc document title after first +" skipping any leading comments. +function! s:FTasciidoc() + let in_comment_block = 0 + let n = 1 + while n < 50 + let line = getline(n) + let n = n + 1 + if line =~ '^/\{4,}$' + if ! in_comment_block + let in_comment_block = 1 + else + let in_comment_block = 0 + endif + continue + endif + if in_comment_block + continue + endif + if line !~ '\(^//\)\|\(^\s*$\)' + break + endif + endwhile + if line !~ '.\{3,}' + return + endif + let len = len(line) + let line = getline(n) + if line !~ '[-=]\{3,}' + return + endif + if len < len(line) - 3 || len > len(line) + 3 + return + endif + setfiletype asciidoc +endfunction + +" vim: et sw=2 ts=2 sts=2: |