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