1" Vim syntax file 2" Language: BibTeX Bibliography Style 3" Maintainer: Tim Pope <[email protected]> 4" Filenames: *.bst 5" $Id: bst.vim,v 1.2 2007/05/05 18:24:42 vimboss Exp $ 6 7" quit when a syntax file was already loaded 8if exists("b:current_syntax") 9 finish 10endif 11 12setlocal iskeyword=48-57,#,$,',.,A-Z,a-z 13 14syn case ignore 15 16syn match bstString +"[^"]*\%("\|$\)+ contains=bstField,bstType,bstError 17" Highlight the last character of an unclosed string, but only when the cursor 18" is not beyond it (i.e., it is still being edited). Imperfect. 19syn match bstError '[^"]\%#\@!$' contained 20 21syn match bstNumber "#-\=\d\+\>" 22syn keyword bstNumber entry.max$ global.max$ 23syn match bstComment "%.*" 24 25syn keyword bstCommand ENTRY FUNCTION INTEGERS MACRO STRINGS 26syn keyword bstCommand READ EXECUTE ITERATE REVERSE SORT 27syn match bstBuiltIn "\s[-<>=+*]\|\s:=" 28syn keyword bstBuiltIn add.period$ 29syn keyword bstBuiltIn call.type$ change.case$ chr.to.int$ cite$ 30syn keyword bstBuiltIn duplicate$ empty$ format.name$ 31syn keyword bstBuiltIn if$ int.to.chr$ int.to.str$ 32syn keyword bstBuiltIn missing$ 33syn keyword bstBuiltIn newline$ num.names$ 34syn keyword bstBuiltIn pop$ preamble$ purify$ quote$ 35syn keyword bstBuiltIn skip$ stack$ substring$ swap$ 36syn keyword bstBuiltIn text.length$ text.prefix$ top$ type$ 37syn keyword bstBuiltIn warning$ while$ width$ write$ 38syn match bstIdentifier "'\k*" 39syn keyword bstType article book booklet conference 40syn keyword bstType inbook incollection inproceedings 41syn keyword bstType manual mastersthesis misc 42syn keyword bstType phdthesis proceedings 43syn keyword bstType techreport unpublished 44syn keyword bstField abbr address annote author 45syn keyword bstField booktitle chapter crossref comment 46syn keyword bstField edition editor 47syn keyword bstField howpublished institution journal key month 48syn keyword bstField note number 49syn keyword bstField organization 50syn keyword bstField pages publisher 51syn keyword bstField school series 52syn keyword bstField title type 53syn keyword bstField volume year 54 55" Define the default highlighting. 56" Only when an item doesn't have highlighting yet 57command -nargs=+ HiLink hi def link <args> 58 59HiLink bstComment Comment 60HiLink bstString String 61HiLink bstCommand PreProc 62HiLink bstBuiltIn Statement 63HiLink bstField Special 64HiLink bstNumber Number 65HiLink bstType Type 66HiLink bstIdentifier Identifier 67HiLink bstError Error 68delcommand HiLink 69 70let b:current_syntax = "bst" 71 72" vim:set ft=vim sts=4 sw=4: 73