Skip to content

Instantly share code, notes, and snippets.

@RWJMurphy
Last active August 29, 2015 14:03
Show Gist options
  • Select an option

  • Save RWJMurphy/ff01a7d575b6729ce34f to your computer and use it in GitHub Desktop.

Select an option

Save RWJMurphy/ff01a7d575b6729ce34f to your computer and use it in GitHub Desktop.

Revisions

  1. Reed Kraft-Murphy revised this gist Jul 18, 2014. 1 changed file with 72 additions and 29 deletions.
    101 changes: 72 additions & 29 deletions dwarf_fortress.vim
    Original file line number Diff line number Diff line change
    @@ -2,43 +2,86 @@ if exists("b:current_syntax")
    finish
    endif

    " Comments
    syntax match initComment "^\(\s*\[.*$\)\@!.*$"

    " Tags that take either YES or NO
    syntax keyword initBoolTagName SOUND INTRO WINDOWED RESIZABLE BLACK_SPACE GRAPHICS GRAPHICS_BLACK_SPACE
    syntax keyword initBoolTagName SINGLE_BUFFER TOPMOST FPS ARB_SYNC VSYNC MOUSE MOUSE_PICTURE COMPRESSED_SAVES
    " # matches and keywords

    syntax keyword boolValue YES NO
    " ## Tags
    syntax cluster initTags contains=@initTagNames,initTagDelimiter,@initValues
    syntax region initTag start=/\v\[/ end=/\v[\]\n]/ contains=@initTags
    syntax match initTagDelimiter /\v:/ contained

    " Tags that take a numeric value
    syntax keyword initNumericTagName VOLUME WINDOWEDX WINDOWEDY FULLSCREENX FULLSCREENY
    syntax keyword initNumericTagName GRAPHICS_WINDOWEDX GRAPHICS_WINDOWEDY GRAPHICS_FULLSCREENX GRAPHICS_FULLSCREENY
    syntax keyword initNumericTagName TRUETYPE FPS_CAP G_FPS_CAP ZOOM_SPEED KEY_HOLD_MS KEY_REPEAT_MS
    syntax keyword initNumericTagName KEY_REPEAT_ACCEL_LIMIT KEY_REPEAT_ACCEL_START MACRO_MS RECENTER_INTERFACE_SHUTDOWN_MS
    " highlight link initTag String
    highlight link initTagDelimiter Delimiter

    " Tags with their own specific set of values
    " [PRINT_MODE:2D]
    " [TEXTURE_PARAM:LINEAR]
    " [PRIORITY:NORMAL]
    syntax keyword initPrintMode PRINT_MODE
    syntax keyword initTextureParam TEXTURE_PARAM
    syntax keyword initPriority PRIORITY
    " ### 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

    " Tags that take a filename
    " [FONT:curses_640x300.png]
    " [FULLFONT:curses_800x600.png]
    " [GRAPHICS_FONT:curses_square_16x16.png]
    " [GRAPHICS_FULLFONT:curses_square_16x16.png]
    syntax keyword initYesValue YES contained
    syntax keyword initNoValue NO contained

    highlight link initComment Comment
    syntax cluster initTagNames add=initBoolTagName
    syntax cluster initValues add=initYesValue,initNoValue

    highlight link initBoolTagName Keyword
    highlight link boolValue Boolean
    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 initPrintMode Keyword
    highlight link initTexttureParam Keyword
    highlight link initPriority 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"
  2. Reed Kraft-Murphy renamed this gist Jul 11, 2014. 1 changed file with 0 additions and 0 deletions.
    File renamed without changes.
  3. Reed Kraft-Murphy created this gist Jul 11, 2014.
    44 changes: 44 additions & 0 deletions dwarf_fortress.cim
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,44 @@
    if exists("b:current_syntax")
    finish
    endif

    " Comments
    syntax match initComment "^\(\s*\[.*$\)\@!.*$"

    " Tags that take either YES or NO
    syntax keyword initBoolTagName SOUND INTRO WINDOWED RESIZABLE BLACK_SPACE GRAPHICS GRAPHICS_BLACK_SPACE
    syntax keyword initBoolTagName SINGLE_BUFFER TOPMOST FPS ARB_SYNC VSYNC MOUSE MOUSE_PICTURE COMPRESSED_SAVES

    syntax keyword boolValue YES NO

    " Tags that take a numeric value
    syntax keyword initNumericTagName VOLUME WINDOWEDX WINDOWEDY FULLSCREENX FULLSCREENY
    syntax keyword initNumericTagName GRAPHICS_WINDOWEDX GRAPHICS_WINDOWEDY GRAPHICS_FULLSCREENX GRAPHICS_FULLSCREENY
    syntax keyword initNumericTagName TRUETYPE FPS_CAP G_FPS_CAP ZOOM_SPEED KEY_HOLD_MS KEY_REPEAT_MS
    syntax keyword initNumericTagName KEY_REPEAT_ACCEL_LIMIT KEY_REPEAT_ACCEL_START MACRO_MS RECENTER_INTERFACE_SHUTDOWN_MS

    " Tags with their own specific set of values
    " [PRINT_MODE:2D]
    " [TEXTURE_PARAM:LINEAR]
    " [PRIORITY:NORMAL]
    syntax keyword initPrintMode PRINT_MODE
    syntax keyword initTextureParam TEXTURE_PARAM
    syntax keyword initPriority PRIORITY

    " Tags that take a filename
    " [FONT:curses_640x300.png]
    " [FULLFONT:curses_800x600.png]
    " [GRAPHICS_FONT:curses_square_16x16.png]
    " [GRAPHICS_FULLFONT:curses_square_16x16.png]

    highlight link initComment Comment

    highlight link initBoolTagName Keyword
    highlight link boolValue Boolean

    highlight link initNumericTagName Keyword
    highlight link initPrintMode Keyword
    highlight link initTexttureParam Keyword
    highlight link initPriority Keyword

    let b:current_syntax = "dwarf_fortress"