Skip to content

Instantly share code, notes, and snippets.

@RWJMurphy
Last active August 29, 2015 14:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save RWJMurphy/ff01a7d575b6729ce34f to your computer and use it in GitHub Desktop.
Save RWJMurphy/ff01a7d575b6729ce34f to your computer and use it in GitHub Desktop.
DF Init & Raw file syntax highlighting for vim - WIP
if exists("b:current_syntax")
finish
endif
" # matches and keywords
" ## Tags
syntax cluster initTags contains=@initTagNames,initTagDelimiter,@initValues
syntax region initTag start=/\v\[/ end=/\v[\]\n]/ contains=@initTags
syntax match initTagDelimiter /\v:/ contained
" highlight link initTag String
highlight link initTagDelimiter Delimiter
" ### Tags that take either YES or NO
syntax keyword initBoolTagName SOUND INTRO WINDOWED RESIZABLE BLACK_SPACE GRAPHICS GRAPHICS_BLACK_SPACE contained
syntax keyword initBoolTagName SINGLE_BUFFER TOPMOST FPS ARB_SYNC VSYNC MOUSE MOUSE_PICTURE COMPRESSED_SAVES contained
syntax keyword initYesValue YES contained
syntax keyword initNoValue NO contained
syntax cluster initTagNames add=initBoolTagName
syntax cluster initValues add=initYesValue,initNoValue
highlight link initBoolTagName Keyword
highlight link initYesValue Boolean
highlight link initNoValue Boolean
" ### Tags that take a numeric value
syntax keyword initNumericTagName VOLUME WINDOWEDX WINDOWEDY FULLSCREENX FULLSCREENY contained
syntax keyword initNumericTagName GRAPHICS_WINDOWEDX GRAPHICS_WINDOWEDY GRAPHICS_FULLSCREENX GRAPHICS_FULLSCREENY contained
syntax keyword initNumericTagName TRUETYPE FPS_CAP G_FPS_CAP ZOOM_SPEED KEY_HOLD_MS KEY_REPEAT_MS contained
syntax keyword initNumericTagName KEY_REPEAT_ACCEL_LIMIT KEY_REPEAT_ACCEL_START MACRO_MS RECENTER_INTERFACE_SHUTDOWN_MS contained
syntax match initNumericValue /\v[0-9]+/ contained
syntax cluster initTagNames add=initNumericTagName
syntax cluster initValues add=initNumericValue
highlight link initNumericTagName Keyword
highlight link initNumericValue Number
" ### Tags that take a filename
syntax region initFileTag start=/\v\[(GRAPHICS_)?(FULL)?FONT/ end=/\v[\]\n]/ contains=initFileTagName,initFileValue,initTagDelimiter
syntax keyword initFileTagName FONT FULLFONT GRAPHICS_FONT GRAPHICS_FULLFONT contained
syntax match initFileValue /\v:@<=[a-zA-Z0-9._]+\]@=/ contained
syntax cluster initTags add=initFileTag
highlight link initFileTagName Keyword
highlight link initFileValue String
" ### Tags with their own specific set of values
syntax keyword initPrintModeTagName PRINT_MODE contained
syntax match initPrintModeValue /\v(2D(|SW|ASYNC)|STANDARD|PARTIAL:[0-9]+|(ACCUM|FRAME)_BUFFER|VBO)/ contained
syntax cluster initTagNames add=initPrintModeTagName
syntax cluster initValues add=initPrintModeValue
highlight link initPrintModeTagName Keyword
highlight link initPrintModeValue Keyword
syntax keyword initTextureParamTagName TEXTURE_PARAM contained
syntax match initTextureParamValue /\v(LINEAR|NEAREST)/ contained
syntax cluster initTagNames add=initTextureParamTagName
syntax cluster initValues add=initTextureParamValue
highlight link initTextureParamTagName Keyword
highlight link initTextureParamValue Keyword
syntax keyword initPriorityTagName PRIORITY contained
syntax match initPriorityValue /\v(LOW|HIGH)/ contained
syntax cluster initTagNames add=initPriorityTagName
syntax cluster initValues add=initTexturePriorityValue
highlight link initPriorityTagName Keyword
highlight link initPriorityValue Keyword
" ## Comments
syntax match initComment "^\(\s*\[.*$\)\@!.*$"
highlight link initComment Comment
let b:current_syntax = "dwarf_fortress"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment