1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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:
|