1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
|
" Vim syntax file
" Language: BDF font definition
" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
" Latest Revision: 2005-06-27
if exists("b:current_syntax")
finish
endif
let s:cpo_save = &cpo
set cpo&vim
syn region bdfFontDefinition transparent matchgroup=bdfKeyword
\ start='^STARTFONT\>' end='^ENDFONT\>'
\ contains=bdfComment,bdfFont,bdfSize,
\ bdfBoundingBox,bdfProperties,bdfChars,bdfChar
syn match bdfNumber contained display
\ '\<\%(\x\+\|[+-]\=\d\+\%(\.\d\+\)*\)'
syn keyword bdfTodo contained FIXME TODO XXX NOTE
syn region bdfComment contained start='^COMMENT\>' end='$'
\ contains=bdfTodo,@Spell
syn region bdfFont contained matchgroup=bdfKeyword
\ start='^FONT\>' end='$'
syn region bdfSize contained transparent matchgroup=bdfKeyword
\ start='^SIZE\>' end='$' contains=bdfNumber
syn region bdfBoundingBox contained transparent matchgroup=bdfKeyword
\ start='^FONTBOUNDINGBOX' end='$'
\ contains=bdfNumber
syn region bdfProperties contained transparent matchgroup=bdfKeyword
\ start='^STARTPROPERTIES' end='^ENDPROPERTIES'
\ contains=bdfNumber,bdfString,bdfProperty,
\ bdfXProperty
syn keyword bdfProperty contained FONT_ASCENT FONT_DESCENT DEFAULT_CHAR
syn match bdfProperty contained '^\S\+'
syn keyword bdfXProperty contained FONT_ASCENT FONT_DESCENT DEFAULT_CHAR
\ FONTNAME_REGISTRY FOUNDRY FAMILY_NAME
\ WEIGHT_NAME SLANT SETWIDTH_NAME PIXEL_SIZE
\ POINT_SIZE RESOLUTION_X RESOLUTION_Y SPACING
\ CHARSET_REGISTRY CHARSET_ENCODING COPYRIGHT
\ ADD_STYLE_NAME WEIGHT RESOLUTION X_HEIGHT
\ QUAD_WIDTH FONT AVERAGE_WIDTH
syn region bdfString contained start=+"+ skip=+""+ end=+"+
syn region bdfChars contained display transparent
\ matchgroup=bdfKeyword start='^CHARS' end='$'
\ contains=bdfNumber
syn region bdfChar transparent matchgroup=bdfKeyword
\ start='^STARTCHAR' end='^ENDCHAR'
\ contains=bdfEncoding,bdfWidth,bdfAttributes,
\ bdfBitmap
syn region bdfEncoding contained transparent matchgroup=bdfKeyword
\ start='^ENCODING' end='$' contains=bdfNumber
syn region bdfWidth contained transparent matchgroup=bdfKeyword
\ start='^SWIDTH\|DWIDTH\|BBX' end='$'
\ contains=bdfNumber
syn region bdfAttributes contained transparent matchgroup=bdfKeyword
\ start='^ATTRIBUTES' end='$'
syn keyword bdfBitmap contained BITMAP
if exists("bdf_minlines")
let b:bdf_minlines = bdf_minlines
else
let b:bdf_minlines = 30
endif
exec "syn sync ccomment bdfChar minlines=" . b:bdf_minlines
hi def link bdfKeyword Keyword
hi def link bdfNumber Number
hi def link bdfTodo Todo
hi def link bdfComment Comment
hi def link bdfFont String
hi def link bdfProperty Identifier
hi def link bdfXProperty Identifier
hi def link bdfString String
hi def link bdfChars Keyword
hi def link bdfBitmap Keyword
let b:current_syntax = "bdf"
let &cpo = s:cpo_save
unlet s:cpo_save
|