bib.vim (6004B)
1 " Vim syntax file 2 " Language: BibTeX (bibliographic database format for (La)TeX) 3 " Maintainer: Bernd Feige <Bernd.Feige@gmx.net> 4 " Filenames: *.bib 5 " Last Change: 2017 Sep 29 6 7 " Thanks to those who pointed out problems with this file or supplied fixes! 8 9 " Initialization 10 " ============== 11 " quit when a syntax file was already loaded 12 if exists("b:current_syntax") 13 finish 14 endif 15 16 let s:cpo_save = &cpo 17 set cpo&vim 18 19 " Ignore case 20 syn case ignore 21 22 " Keywords 23 " ======== 24 syn keyword bibType contained article book booklet conference inbook 25 syn keyword bibType contained incollection inproceedings manual 26 syn keyword bibType contained mastersthesis misc phdthesis 27 syn keyword bibType contained proceedings techreport unpublished 28 syn keyword bibType contained string preamble 29 30 syn keyword bibEntryKw contained address annote author booktitle chapter 31 syn keyword bibEntryKw contained crossref edition editor howpublished 32 syn keyword bibEntryKw contained institution journal key month note 33 syn keyword bibEntryKw contained number organization pages publisher 34 syn keyword bibEntryKw contained school series title type volume year 35 36 " biblatex keywords, cf. http://mirrors.ctan.org/macros/latex/contrib/biblatex/doc/biblatex.pdf 37 syn keyword bibType contained mvbook bookinbook suppbook collection mvcollection suppcollection 38 syn keyword bibType contained online patent periodical suppperiodical mvproceedings reference 39 syn keyword bibType contained mvreference inreference report set thesis xdata customa customb 40 syn keyword bibType contained customc customd custome customf electronic www artwork audio bibnote 41 syn keyword bibType contained commentary image jurisdiction legislation legal letter movie music 42 syn keyword bibType contained performance review software standard video 43 44 syn keyword bibEntryKw contained abstract isbn issn keywords url 45 syn keyword bibEntryKw contained addendum afterwordannotation annotation annotator authortype 46 syn keyword bibEntryKw contained bookauthor bookpagination booksubtitle booktitleaddon 47 syn keyword bibEntryKw contained commentator date doi editora editorb editorc editortype 48 syn keyword bibEntryKw contained editoratype editorbtype editorctype eid entrysubtype 49 syn keyword bibEntryKw contained eprint eprintclass eprinttype eventdate eventtitle 50 syn keyword bibEntryKw contained eventtitleaddon file foreword holder indextitle 51 syn keyword bibEntryKw contained introduction isan ismn isrn issue issuesubtitle 52 syn keyword bibEntryKw contained issuetitle iswc journalsubtitle journaltitle label 53 syn keyword bibEntryKw contained language library location mainsubtitle maintitle 54 syn keyword bibEntryKw contained maintitleaddon nameaddon origdate origlanguage 55 syn keyword bibEntryKw contained origlocation origpublisher origtitle pagetotal 56 syn keyword bibEntryKw contained pagination part pubstate reprinttitle shortauthor 57 syn keyword bibEntryKw contained shorteditor shorthand shorthandintro shortjournal 58 syn keyword bibEntryKw contained shortseries shorttitle subtitle titleaddon translator 59 syn keyword bibEntryKw contained urldate venue version volumes entryset execute gender 60 syn keyword bibEntryKw contained langid langidopts ids indexsorttitle options presort 61 syn keyword bibEntryKw contained related relatedoptions relatedtype relatedstring 62 syn keyword bibEntryKw contained sortkey sortname sortshorthand sorttitle sortyear xdata 63 syn keyword bibEntryKw contained xref namea nameb namec nameatype namebtype namectype 64 syn keyword bibEntryKw contained lista listb listc listd liste listf usera userb userc 65 syn keyword bibEntryKw contained userd usere userf verba verbb verbc archiveprefix pdf 66 syn keyword bibEntryKw contained primaryclass 67 68 " Non-standard: 69 " AMS mref http://www.ams.org/mref 70 syn keyword bibNSEntryKw contained mrclass mrnumber mrreviewer fjournal coden 71 72 " Clusters 73 " ======== 74 syn cluster bibVarContents contains=bibUnescapedSpecial,bibBrace,bibParen,bibMath 75 " This cluster is empty but things can be added externally: 76 "syn cluster bibCommentContents 77 78 " Matches 79 " ======= 80 syn match bibUnescapedSpecial contained /[^\\][%&]/hs=s+1 81 syn match bibKey contained /\s*[^ \t}="]\+,/hs=s,he=e-1 nextgroup=bibField 82 syn match bibVariable contained /[^{}," \t=]/ 83 syn region bibComment start=/./ end=/^\s*@/me=e-1 contains=@bibCommentContents nextgroup=bibEntry 84 syn region bibMath contained start=/\(\\\)\@<!\$/ end=/\$/ skip=/\(\\\$\)/ 85 syn region bibQuote contained start=/"/ end=/"/ skip=/\(\\"\)/ contains=@bibVarContents 86 syn region bibBrace contained start=/{/ end=/}/ skip=/\(\\[{}]\)/ contains=@bibVarContents 87 syn region bibParen contained start=/(/ end=/)/ skip=/\(\\[()]\)/ contains=@bibVarContents 88 syn region bibField contained start="\S\+\s*=\s*" end=/[}),]/me=e-1 contains=bibEntryKw,bibNSEntryKw,bibBrace,bibParen,bibQuote,bibVariable 89 syn region bibEntryData contained start=/[{(]/ms=e+1 end=/[})]/me=e-1 contains=bibKey,bibField,bibComment3 90 " Actually, 5.8 <= Vim < 6.0 would ignore the `fold' keyword anyway, but Vim<5.8 would produce 91 " an error, so we explicitly distinguish versions with and without folding functionality: 92 syn region bibEntry start=/@\S\+\s*[{(]/ end=/^\s*[})]/ transparent fold contains=bibType,bibEntryData nextgroup=bibComment 93 syn region bibComment2 start=/@Comment\s*[{(]/ end=/^\s*[})]/me=e-1 contains=@bibCommentContents nextgroup=bibEntry 94 " biblatex style comments inside a bibEntry 95 syn match bibComment3 "%.*" 96 97 " Synchronization 98 " =============== 99 syn sync match All grouphere bibEntry /^\s*@/ 100 syn sync maxlines=200 101 syn sync minlines=50 102 103 " Highlighting defaults 104 " ===================== 105 " Define the default highlighting. 106 " Only when an item doesn't have highlighting yet 107 108 hi def link bibType Identifier 109 hi def link bibEntryKw Statement 110 hi def link bibNSEntryKw PreProc 111 hi def link bibKey Special 112 hi def link bibVariable Constant 113 hi def link bibUnescapedSpecial Error 114 hi def link bibComment Comment 115 hi def link bibComment2 Comment 116 hi def link bibComment3 Comment 117 118 let b:current_syntax = "bib" 119 120 let &cpo = s:cpo_save 121 unlet s:cpo_save