blob: 8fdcd43f2bbcc6ec49548f2ee13ad64aecb427dd [file] [log] [blame]
Bram Moolenaar437df8f2006-04-27 21:47:44 +00001" Vim syntax file
2" Language: BibTeX Bibliography Style
Bram Moolenaarc81e5e72007-05-05 18:24:42 +00003" Maintainer: Tim Pope <vimNOSPAM@tpope.info>
Bram Moolenaar437df8f2006-04-27 21:47:44 +00004" Filenames: *.bst
5" $Id$
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
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000025syn 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
Bram Moolenaar437df8f2006-04-27 21:47:44 +000030syn 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
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000083 HiLink bstError Error
Bram Moolenaar437df8f2006-04-27 21:47:44 +000084 delcommand HiLink
85endif
86
87let b:current_syntax = "bst"
88
89" vim:set ft=vim sts=4 sw=4: