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