blob: cc1a3375694f9568feecbd582d09558ec2c0ec6d [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
Bram Moolenaar214641f2017-03-05 17:04:09 +01002" Language: BDF font definition
3" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
4" Latest Revision: 2006-04-19
Bram Moolenaar071d4272004-06-13 20:20:40 +00005
Bram Moolenaar42eeac32005-06-29 22:40:58 +00006if exists("b:current_syntax")
Bram Moolenaar071d4272004-06-13 20:20:40 +00007 finish
8endif
9
Bram Moolenaar42eeac32005-06-29 22:40:58 +000010let s:cpo_save = &cpo
11set cpo&vim
Bram Moolenaar071d4272004-06-13 20:20:40 +000012
Bram Moolenaar42eeac32005-06-29 22:40:58 +000013syn region bdfFontDefinition transparent matchgroup=bdfKeyword
14 \ start='^STARTFONT\>' end='^ENDFONT\>'
15 \ contains=bdfComment,bdfFont,bdfSize,
16 \ bdfBoundingBox,bdfProperties,bdfChars,bdfChar
Bram Moolenaar071d4272004-06-13 20:20:40 +000017
Bram Moolenaar42eeac32005-06-29 22:40:58 +000018syn match bdfNumber contained display
19 \ '\<\%(\x\+\|[+-]\=\d\+\%(\.\d\+\)*\)'
Bram Moolenaar071d4272004-06-13 20:20:40 +000020
Bram Moolenaar42eeac32005-06-29 22:40:58 +000021syn keyword bdfTodo contained FIXME TODO XXX NOTE
Bram Moolenaar071d4272004-06-13 20:20:40 +000022
Bram Moolenaar42eeac32005-06-29 22:40:58 +000023syn region bdfComment contained start='^COMMENT\>' end='$'
24 \ contains=bdfTodo,@Spell
Bram Moolenaar071d4272004-06-13 20:20:40 +000025
Bram Moolenaar42eeac32005-06-29 22:40:58 +000026syn region bdfFont contained matchgroup=bdfKeyword
27 \ start='^FONT\>' end='$'
Bram Moolenaar071d4272004-06-13 20:20:40 +000028
Bram Moolenaar42eeac32005-06-29 22:40:58 +000029syn region bdfSize contained transparent matchgroup=bdfKeyword
30 \ start='^SIZE\>' end='$' contains=bdfNumber
Bram Moolenaar071d4272004-06-13 20:20:40 +000031
Bram Moolenaar42eeac32005-06-29 22:40:58 +000032syn region bdfBoundingBox contained transparent matchgroup=bdfKeyword
33 \ start='^FONTBOUNDINGBOX' end='$'
34 \ contains=bdfNumber
Bram Moolenaar071d4272004-06-13 20:20:40 +000035
Bram Moolenaar42eeac32005-06-29 22:40:58 +000036syn region bdfProperties contained transparent matchgroup=bdfKeyword
37 \ start='^STARTPROPERTIES' end='^ENDPROPERTIES'
38 \ contains=bdfNumber,bdfString,bdfProperty,
39 \ bdfXProperty
Bram Moolenaar071d4272004-06-13 20:20:40 +000040
Bram Moolenaar42eeac32005-06-29 22:40:58 +000041syn keyword bdfProperty contained FONT_ASCENT FONT_DESCENT DEFAULT_CHAR
42syn match bdfProperty contained '^\S\+'
Bram Moolenaar071d4272004-06-13 20:20:40 +000043
Bram Moolenaar42eeac32005-06-29 22:40:58 +000044syn keyword bdfXProperty contained FONT_ASCENT FONT_DESCENT DEFAULT_CHAR
45 \ FONTNAME_REGISTRY FOUNDRY FAMILY_NAME
46 \ WEIGHT_NAME SLANT SETWIDTH_NAME PIXEL_SIZE
47 \ POINT_SIZE RESOLUTION_X RESOLUTION_Y SPACING
48 \ CHARSET_REGISTRY CHARSET_ENCODING COPYRIGHT
49 \ ADD_STYLE_NAME WEIGHT RESOLUTION X_HEIGHT
50 \ QUAD_WIDTH FONT AVERAGE_WIDTH
Bram Moolenaar071d4272004-06-13 20:20:40 +000051
Bram Moolenaar42eeac32005-06-29 22:40:58 +000052syn region bdfString contained start=+"+ skip=+""+ end=+"+
53
54syn region bdfChars contained display transparent
55 \ matchgroup=bdfKeyword start='^CHARS' end='$'
56 \ contains=bdfNumber
57
58syn region bdfChar transparent matchgroup=bdfKeyword
59 \ start='^STARTCHAR' end='^ENDCHAR'
60 \ contains=bdfEncoding,bdfWidth,bdfAttributes,
61 \ bdfBitmap
62
63syn region bdfEncoding contained transparent matchgroup=bdfKeyword
64 \ start='^ENCODING' end='$' contains=bdfNumber
65
66syn region bdfWidth contained transparent matchgroup=bdfKeyword
67 \ start='^SWIDTH\|DWIDTH\|BBX' end='$'
68 \ contains=bdfNumber
69
70syn region bdfAttributes contained transparent matchgroup=bdfKeyword
71 \ start='^ATTRIBUTES' end='$'
72
73syn keyword bdfBitmap contained BITMAP
Bram Moolenaar071d4272004-06-13 20:20:40 +000074
75if exists("bdf_minlines")
76 let b:bdf_minlines = bdf_minlines
77else
Bram Moolenaar42eeac32005-06-29 22:40:58 +000078 let b:bdf_minlines = 30
Bram Moolenaar071d4272004-06-13 20:20:40 +000079endif
Bram Moolenaar42eeac32005-06-29 22:40:58 +000080exec "syn sync ccomment bdfChar minlines=" . b:bdf_minlines
Bram Moolenaar071d4272004-06-13 20:20:40 +000081
Bram Moolenaar071d4272004-06-13 20:20:40 +000082
Bram Moolenaar42eeac32005-06-29 22:40:58 +000083hi def link bdfKeyword Keyword
84hi def link bdfNumber Number
85hi def link bdfTodo Todo
86hi def link bdfComment Comment
87hi def link bdfFont String
88hi def link bdfProperty Identifier
89hi def link bdfXProperty Identifier
90hi def link bdfString String
91hi def link bdfChars Keyword
92hi def link bdfBitmap Keyword
Bram Moolenaar071d4272004-06-13 20:20:40 +000093
94let b:current_syntax = "bdf"
95
Bram Moolenaar42eeac32005-06-29 22:40:58 +000096let &cpo = s:cpo_save
97unlet s:cpo_save