summaryrefslogtreecommitdiffstats
path: root/vim/.vim/syntax
diff options
context:
space:
mode:
Diffstat (limited to 'vim/.vim/syntax')
-rw-r--r--vim/.vim/syntax/levdes.vim304
-rw-r--r--vim/.vim/syntax/nhdes.vim99
-rw-r--r--vim/.vim/syntax/perl.vim1
3 files changed, 404 insertions, 0 deletions
diff --git a/vim/.vim/syntax/levdes.vim b/vim/.vim/syntax/levdes.vim
new file mode 100644
index 0000000..a4f1982
--- /dev/null
+++ b/vim/.vim/syntax/levdes.vim
@@ -0,0 +1,304 @@
+" Vim syntax file
+" Language: Dungeon Crawl level design (.des) files.
+" Maintainer: Darshan Shaligram <scintilla@gmail.com>
+" Last Change: 2007 Jun 28
+" Remark: Basic Vim syntax highlighting for Dungeon Crawl Stone Soup
+" level design (.des) files.
+"
+" How to use this:
+" * Put levdes.vim (this file) under ~/.vim/syntax (or similar directory for
+" your system - usually C:\Program Files\Vim\vimfiles\syntax on Windows).
+" * In your .vimrc, or in a new file ~/.vim/ftdetect/levdes.vim, add this line:
+" au BufRead,BufNewFile *.des set syntax=levdes
+" Thereafter, any .des files you edit in (g)vim will use syntax highlighting.
+
+if version < 600
+ syntax clear
+elseif exists("b:current_syntax")
+ finish
+endif
+
+if !exists("main_syntax")
+ let main_syntax = 'des'
+endif
+
+syn include @desLua syntax/lua.vim
+
+syn case match
+
+syn match desLuaBlock /\(lua\)\?\s\+{{/ contained
+syn match desOtherLuaBlock /^\(prelude\|lua\|validate\|epilogue\|veto\)\?\s*{{/ contained
+syn match desLuaBlockEnd /}}/ contained
+"syn match desColonLine /^\s*:/ contained
+
+syn cluster desLuaGroup contains=desLuaBlock,desOtherLuaBlock,desLuaBlockEnd
+
+syn region desLua start=/^\s*\(lua\)\?\s*{{/ end=/}}\s*$/ contains=@desLuaGroup,@desLua keepend
+syn region desLuaCol start=/^\s*:/ end=/$/ contains=@desLuaGroup,@desLua keepend
+syn region desVal start=/^\s*validate\?\s*{{/ end=/}}\s*$/ contains=@desLuaGroup,@desLua keepend
+syn region desPre start=/^\s*prelude\?\s*{{/ end=/}}\s*$/ contains=@desLuaGroup,@desLua keepend
+syn region desEpi start=/^\s*epilogue\?\s*{{/ end=/}}\s*$/ contains=@desLuagroup,@deslua keepend
+syn region desVet start=/^\s*veto\?\s*{{/ end=/}}\s*$/ contains=@desLuagroup,@deslua keepend
+
+setlocal iskeyword+=:
+setlocal iskeyword+=-
+
+" These have extra matching going on, so not in desDeclarator (global)
+syn keyword desDec NAME: COLOUR: SUBST: NSUBST: SHUFFLE: CLEAR: LROCKCOL: LFLOORCOL: contained
+
+syn region desSubst start=/^SUBST:\s*/ end=/$/ contains=desDec,desSubstArg,desSubstSep,@desMapElements keepend
+syn region desNsubst start=/^NSUBST:\s*/ end=/$/ contains=desDec,desSubstArg,desSubstSep,@desMapElements keepend
+syn region desShuffle start=/^SHUFFLE:\s*/ end=/$/ contains=desDec,desMapFrag keepend
+syn region desClear start=/^CLEAR:\s*/ end=/$/ contains=desDec,desSubstArg keepend
+syn region desColourline start=/^\(COLOUR\|L[A-Z]*COL\):/ end=/$/ contains=desDec,desColour keepend
+
+" Absolutely always highlight the vault name as just that
+syn region desNameline start=/^NAME:/ end=/$/ contains=desDec,desVaultname keepend
+syn match desVaultname /\w*/ contained
+
+syn match desGod contained /ashenzari\|beogh\|cheibriados\|dithmenos\|elyvilon/
+syn match desGod contained /fedhas\|gozag\|jiyva\|kikubaaqudgha\|lugonu/
+syn match desGod contained /makhleb\|nemelex_xobeh\|okawaru\|qazlal\|ru/
+syn match desGod contained /sif_muna\|trog\|vehumet\|xom\|yredelemnul\|zin/
+syn match desGod contained /the_shining_one/
+
+syn keyword desDeclarator ORIENT: DEPTH: PLACE: MONS: FLAGS: default-depth: TAGS: CHANCE: WEIGHT:
+syn keyword desDeclarator ITEM: KFEAT: KMONS: KITEM: KMASK: KPROP: MARKER: WELCOME:
+syn keyword desDeclarator LFLOORTILE: LROCKTILE: FTILE: RTILE: TILE: SUBVAULT: FHEIGHT: DESC: ORDER:
+
+" keywords
+" ORIENT
+syn keyword desOrientation north south east west northwest northeast southwest southeast encompass float centre
+
+" DEPTH | PLACE
+syn keyword desOrientation Depths Temple Orc Elf Lair Swamp Shoals Snake Spider Slime Vaults Blade Crypt Tomb
+"Note: `Zot` totally highlights in e.g. the items `rune of Zot` and `Orb of Zot`. Not worth fixing.
+syn keyword desOrientation Hell Dis Geh Coc Tar Zot Forest Abyss Pan Zig Lab Bazaar Trove Sewer Ossuary
+syn keyword desOrientation Bailey IceCv Volcano WizLab
+
+"Note: This is the list above, but lower-cased
+syn match desBranch contained /d\|temple\|orc\|elf\|lair\|swamp\|shoals\|snake\|spider\|slime\|vaults\|blade\|crypt\|tomb/
+syn match desBranch contained /hell\|dis\|geh\|coc\|tar\|zot\|forest\|abyss\|pan\|zig\|lab\|bazaar\|trove\|sewer\|ossuary/
+syn match desBranch contained /bailey\|icecv\|volcano\|wizlab/
+
+syn match desBranchname contained /dungeon\|depths\|temple\|orcish_mines\|elven_halls\|lair\|swamp\|shoals/
+syn match desBranchname contained /snake_pit\|spider_nest\|slime_pits\|vaults\|hall_of_blades\|crypt\|tomb/
+syn match desBranchname contained /hell\|dis\|gehenna\|cocytus\|tartarus\|zot\|forest\|abyss\|pandemonium/
+syn match desBranchname contained /ziggurat\|labyrinth\|bazaar\|trove\|sewer\|ossuary/
+syn match desBranchname contained /bailey\|ice_cave\|volcano\|wizlab/
+
+" TAGS
+" in abyss.cc
+syn keyword desOrientation abyss_exit
+" in decks.cc and dgn-labyrinth.cc (without `minotaur` because monster)
+syn keyword desOrientation lab generate_loot
+" from dlua.ziggurat
+syn keyword desOrientation ziggurat_pillar centered
+" map building in dungeon.cc (`transparent` is handled later)
+"Note: `dummy` mis-catches `training dummy` about half as often as actually used as tag
+syn keyword desOrientation dummy arrival no_exits extra ruin layout pan decor
+syn keyword desOrientation allow_dup uniq luniq
+syn keyword desOrientation no_hmirror no_vmirror no_rotate
+syn keyword desOrientation no_dump
+" vault placement in maps.cc
+syn keyword desOrientation unrand place_unique special_room tutorial
+syn keyword desOrientation water_ok overwrite_floor_cell replace_portal
+" V vault building (mostly dlua/v_layouts and v_rooms)
+syn keyword desOrientation vaults_room vaults_empty vaults_hard no_windows preserve_wall
+
+" ITEM | KITEM (in mapdef.cc, without `random`)
+syn keyword desOrientation randbook any good_item star_item superb_item gold nothing
+syn keyword desOrientation acquire mundane damaged cursed randart not_cursed useful unobtainable
+syn keyword desOrientation mimic no_mimic no_pickup no_uniq allow_uniq
+"Note: `rotting` removed here which often caught `rotting devil` but was unused as item tag
+syn keyword desOrientation corpse chunk skeleton never_decay
+
+" MONS | KMONS (in mapdef.cc)
+syn keyword desOrientation fix_slot priest_spells actual_spells god_gift
+syn keyword desOrientation generate_awake patrolling band
+syn keyword desOrientation hostile friendly good_neutral fellow_slime strict_neutral neutral
+"Note: `spectre` removed: mis-catches `silent spectre` but was unused as modifier (`spectral` exists)
+syn keyword desOrientation zombie skeleton simulacrum spectral
+syn keyword desOrientation seen always_corpse never_corpse
+syn keyword desOrientation base nonbase
+syn keyword desOrientation n_suf n_adj n_rpl n_the
+syn keyword desOrientation name_suffix name_adjective name_replace name_definite
+syn keyword desOrientation n_des n_spe n_zom n_noc
+syn keyword desOrientation name_descriptor name_species name_zombie name_nocorpse
+
+" COLOUR
+" Base
+syn keyword desColour contained blue green cyan red magenta brown darkgrey
+syn keyword desColour contained lightblue lightgreen lightcyan lightred lightmagenta yellow lightgrey white
+" Elemental
+syn keyword desColour contained fire ice earth electricity air poison water magic mutagenic warp enchant
+syn keyword desColour contained heal holy dark death unholy vehumet beogh crystal blood smoke slime jewel
+syn keyword desColour contained elven dwarven orcish flash kraken floor rock mist shimmer_blue decay
+syn keyword desColour contained silver gold iron bone elven_brick waves tree mangrove tornado liquefied
+syn keyword desColour contained orb_glow disjunction random
+
+" TILE
+syn keyword desOrientation no_random
+
+" KFEAT
+syn keyword desOrientation known mimic
+
+" abyss TAGS in mapdef.cc
+syn keyword desOrientation abyss abyss_rune
+syn keyword desOrientation overwritable
+" KMASK (in mapdef.cc)
+syn keyword desOrientation vault no_item_gen no_monster_gen no_pool_fixup no_wall_fixup opaque no_trap_gen
+
+" KPROP
+syn keyword desOrientation bloody highlight mold no_cloud_gen no_tele_into no_submerge no_tide no_jiyva
+
+syn match desComment "^\s*#.*$&"
+
+"Note: `;` and `|` are necessary due to monster/randbook `spells:`,
+" `.` can be an empty spell slot and `'` is contained in certain spell names,
+" `$` and `-` are used in depth definitions (but `,` should not match there).
+syn match desProperty /\w*:[[:alnum:]_\.';|\$-]\+/ contains=desAttribute
+" Without `oneline` this wraps around and matches e.g. some SUBST: on the next line
+syn region desAttribute start=/\</ end=/:/ contained oneline
+
+syn match desEntry "\<\w*_entry\>" contains=desBranch
+syn match desEntry "\<serial_\w*\>"
+syn match desEntry "\<no_species_\w\w\>"
+syn match desEntry "\<\(no\)\=layout_\w*\>"
+syn match desEntry "\<l\=uniq_\w*\>"
+syn match desEntry "\<chance_\w*\>"
+syn match desEntry "\<fallback_\w*\>"
+syn match desEntry "\<vaults_entry_\w*\>" contains=desBranch
+syn match desEntry "\<vaults_orient_\w\>"
+syn match desEntry "\<altar_\w*\>" contains=desGod
+syn match desEntry "\<uniq_altar_\w*\>" contains=desGod
+syn match desEntry "\<temple_overflow_\w*\>" contains=desGod
+syn match desEntry "\<overflow_altar_\w*\>" contains=desGod
+syn match desEntry "\<enter_\w*\>" contains=desBranchname
+syn match desEntry "\<exit_\w*\>" contains=desBranchname
+syn match desEntry "\<ruin_\w*\>" contains=desBranchname
+
+" 'transparent' is a Vim syntax keyword
+syn match desTransparent "\<transparent\>"
+syn match desRange "\d*-\d*"
+syn match desNumber "\s\d*"
+syn match desWeight "w\(eight\)\=:\d*"
+syn match desWeight "q:\d*\(-\d*\)\="
+syn match desSlash "/"
+
+syn keyword desMapBookend MAP ENDMAP contained
+syn match desMapWall /x/ contained
+syn match desMapPermaWall /X/ contained
+syn match desMapStoneWall /c/ contained
+syn match desMapGlassWall /[mno]/ contained
+syn match desMapMetalWall /v/ contained
+syn match desMapCrystalWall /b/ contained
+syn match desMapTree /t/ contained
+
+syn match desMapFloor /\./ contained
+syn match desMapDoor /[+=]/ contained
+
+syn match desMapShallow /W/ contained
+syn match desMapWater /w/ contained
+syn match desMapLava /l/ contained
+
+syn match desMapEntry /@/ contained
+syn match desMapStairs /[}{)(\]\[]/ contained
+syn match desMapTrap /[\^~]/ contained
+
+syn match desMapGold /\$/ contained
+syn match desMapValuable /[%*|]/ contained
+
+syn match desMapMonst /[0-9]/ contained
+
+syn cluster desMapElements contains=desMapBookend
+syn cluster desMapElements add=desMapWall,desMapPermaWall,desMapStoneWall,desMapGlassWall,desMapCrystalWall,desMapMetalWall,desMapTree
+syn cluster desMapElements add=desMapFloor,desMapDoor
+syn cluster desMapElements add=desMapShallow,desMapWater,desMapLava
+syn cluster desMapElements add=desMapEntry,desMapStairs,desMapTrap
+syn cluster desMapElements add=desMapGold,desMapValuable
+syn cluster desMapElements add=desMapMons
+
+syn match desSubstArg /\S/ contained nextgroup=desSubstSep skipwhite
+syn match desSubstSep /[:=]/ contained nextgroup=desMapFrag skipwhite
+syn match desColourSep /[:=]/ contained nextgroup=desColour skipwhite
+syn region desMapFrag start=/./ end=/$/ contains=@desMapElements contained
+
+syn region desMap start=/^\s*\<MAP\>\s*$/ end=/^\s*\<ENDMAP\>\s*$/ contains=@desMapElements keepend
+
+hi link desDec Statement
+hi link desDeclarator Statement
+hi link desVaultname Identifier
+hi link desMapBookend Statement
+hi link desLuaBlock Statement
+hi link desOtherLuaBlock Statement
+hi link desLuaBlockEnd Statement
+"hi link desColonLine Statement
+hi link desComment Comment
+hi link desMap String
+hi link desSubstArg String
+hi link desRange String
+hi link desEntry Type
+hi link desNumber String
+hi link desWeight String
+hi link desSlash Comment
+
+hi link desSubstSep Type
+hi link desOrientation Type
+hi link desAttribute Type
+hi link desProperty Special
+hi link desGod Special
+hi link desBranch Special
+hi link desBranchname Special
+hi link desColour Type
+hi link desTransparent Type
+
+" It would be really nice if this worked for people who switch bg
+" post-loading, like "normal" highlights do. Does someone know how?
+if &bg == "dark"
+ hi desMapWall guifg=darkgray term=bold gui=bold ctermfg=white
+ hi desMapPermaWall guifg=#a0a000 gui=bold ctermfg=yellow
+ hi desMapStoneWall guifg=black gui=bold ctermfg=gray
+ hi desMapGlassWall guifg=lightcyan ctermfg=lightcyan
+ hi desMapMetalWall guifg=#004090 term=bold gui=bold ctermfg=lightblue
+ hi desMapCrystalWall guifg=#009040 term=bold gui=bold ctermfg=green
+ hi desMapTree guifg=#00aa00 ctermfg=darkgreen
+ hi desMapFloor guifg=#008000 ctermfg=darkgray
+ hi desMapDoor guifg=brown gui=bold ctermfg=white
+ hi desMapShallow guifg=lightcyan ctermfg=darkcyan
+ hi desMapWater guifg=lightblue ctermfg=darkblue
+ hi desMapLava guifg=red gui=bold ctermfg=darkred
+
+ hi desMapEntry guifg=black guibg=white gui=bold ctermfg=white ctermbg=black
+ hi desMapStairs guifg=orange gui=bold ctermfg=magenta
+ hi desMapTrap guifg=red gui=bold ctermfg=darkred
+
+ hi desMapGold guifg=#c09000 ctermfg=yellow
+ hi desMapValuable guifg=darkgreen gui=bold ctermfg=yellow
+ hi desMapMonst guifg=red ctermfg=red
+else
+ hi desMapWall guifg=darkgray term=bold gui=bold ctermfg=brown
+ hi desMapPermaWall guifg=#a0a000 gui=bold ctermfg=yellow
+ hi desMapStoneWall guifg=black gui=bold ctermfg=darkgray
+ hi desMapGlassWall guifg=lightcyan ctermfg=lightcyan
+ hi desMapMetalWall guifg=#004090 term=bold gui=bold ctermfg=blue
+ hi desMapCrystalWall guifg=#009040 term=bold gui=bold ctermfg=green
+ hi desMapTree guifg=#00aa00 ctermfg=darkgreen
+ hi desMapFloor guifg=#008000 ctermfg=lightgray
+ hi desMapDoor guifg=brown gui=bold ctermfg=black ctermbg=brown
+ hi desMapShallow guifg=lightcyan ctermfg=darkcyan
+ hi desMapWater guifg=lightblue ctermfg=darkblue
+ hi desMapLava guifg=red gui=bold ctermfg=red
+
+ hi desMapEntry guifg=black guibg=white gui=bold ctermfg=white ctermbg=black
+ hi desMapStairs guifg=orange gui=bold ctermfg=white
+ hi desMapTrap guifg=red gui=bold ctermfg=red
+
+ hi desMapGold guifg=#c09000 ctermfg=yellow
+ hi desMapValuable guifg=darkgreen gui=bold ctermfg=lightgreen
+ hi desMapMonst guifg=red ctermfg=darkred
+endif
+
+syn sync minlines=45
+
+let b:current_syntax="levdes"
diff --git a/vim/.vim/syntax/nhdes.vim b/vim/.vim/syntax/nhdes.vim
new file mode 100644
index 0000000..dcafdf3
--- /dev/null
+++ b/vim/.vim/syntax/nhdes.vim
@@ -0,0 +1,99 @@
+" Vim syntax file
+" Language: NetHack DES file
+" Author: Pasi Kallinen <paxed@alt.org>
+" Version: 20061119
+" Copyright: Copyright (c) 2006 Pasi Kallinen
+" Licence: You may redistribute this under the same terms as NetHack itself
+
+if exists("b:current_syntax")
+ finish
+endif
+
+syn sync minlines=30
+
+" we're case sensitive
+syn case match
+
+" some keywords use '-'
+setlocal iskeyword+=-
+
+syn region nhDesComment start=/^[ \t]*#/ end=/$/
+
+syn keyword nhDesCommandNoArgs
+ \ NOMAP RANDOM_CORRIDORS WALLIFY
+
+syn keyword nhDesCommandWithArgs
+ \ ALTAR BRANCH CHANCE CONTAINER CORRIDOR DOOR DRAWBRIDGE ENGRAVING
+ \ FLAGS FOUNTAIN GEOMETRY GOLD INIT_MAP LADDER LEVEL MAZE MAZEWALK
+ \ MESSAGE MONSTER NAME NON_DIGGABLE NON_PASSWALL OBJECT POOL PORTAL
+ \ RANDOM_MONSTERS RANDOM_OBJECTS RANDOM_PLACES REGION ROOM SINK STAIR
+ \ SUBROOM TELEPORT_REGION TRAP
+
+syn keyword nhDesRegister
+ \ align monster object place
+
+syn keyword nhDesConstant
+ \ altar arboreal asleep awake blessed bottom broken burn center chaos
+ \ closed coaligned \contained cursed down dust east engrave false filled
+ \ half-left half-right hardfloor hostile law left levregion lit locked
+ \ mark m_feature m_monster m_object neutral noalign nodoor nommap
+ \ noncoaligned none north noteleport open peaceful random right sanctum
+ \ shortsighted shrine south top true uncursed unfilled unlit up west
+
+syn region nhDesString start=/"/ end=/"/
+syn match nhDesChar /'.'/
+
+syn match nhDesCoord /(\s*\d\+\s*,\s*\d\+\s*)/
+syn match nhDesRegion /(\s*\d\+\s*,\s*\d\+\s*,\s*\d\+\s*,\s*\d\+\s*)/
+
+syn match nhDesMapCharDoor /[+S]/ contained
+syn match nhDesMapCharFloor /[\.B]/ contained
+syn match nhDesMapCharCorridor /[#H]/ contained
+syn match nhDesMapCharWall /[\-\| ]/ contained
+syn match nhDesMapCharWater /[WP}{]/ contained
+syn match nhDesMapCharThrone /\\/ contained
+syn match nhDesMapCharAir /A/ contained
+syn match nhDesMapCharCloud /C/ contained
+syn match nhDesMapCharLava /L/ contained
+syn match nhDesMapCharSink /K/ contained
+syn match nhDesMapCharIce /I/ contained
+syn match nhDesMapCharTree /T/ contained
+syn match nhDesMapCharIronbars /F/ contained
+syn match nhDesMapCharLinenum /[0123456789]/ contained
+" TODO: Any better way to do this?
+syn match nhDesMapCharError /[^+S\.B#H\-\| WP}{\\ACLKITF0-9]/ contained
+
+syn region nhDesMap matchgroup=nhDesCommandNoArgs start=/^MAP$/ end=/^ENDMAP$/
+ \ contains=nhDesMapCharError,nhDesMapCharDoor,nhDesMapCharFloor,
+ \ nhDesMapCharCorridor,nhDesMapCharWall,nhDesMapCharWater,
+ \ nhDesMapCharThrone,nhDesMapCharAir,nhDesMapCharCloud,nhDesMapCharLava,
+ \ nhDesMapCharSink,nhDesMapCharIce,nhDesMapCharTree,nhDesMapCharIronbars,
+ \ nhDesMapCharLinenum
+
+hi def link nhDesComment Comment
+hi def link nhDesCommandNoArgs KeyWord
+hi def link nhDesCommandWithArgs KeyWord
+hi def link nhDesRegister Constant
+hi def link nhDesConstant Constant
+hi def link nhDesString String
+hi def link nhDesChar String
+hi def link nhDesCoord Number
+hi def link nhDesRegion Number
+
+highlight nhDesMapCharDoor ctermbg=black ctermfg=brown guibg=black guifg=brown
+highlight nhDesMapCharFloor ctermbg=black ctermfg=grey guibg=black guifg=grey
+highlight nhDesMapCharCorridor ctermbg=black ctermfg=grey guibg=black guifg=grey
+highlight nhDesMapCharWall ctermbg=black ctermfg=grey guibg=black guifg=grey
+highlight nhDesMapCharWater ctermbg=black ctermfg=darkblue guibg=black guifg=darkblue
+highlight nhDesMapCharThrone ctermbg=black ctermfg=yellow guibg=black guifg=yellow
+highlight nhDesMapCharAir ctermbg=black ctermfg=lightblue guibg=black guifg=lightblue
+highlight nhDesMapCharCloud ctermbg=black ctermfg=grey guibg=black guifg=grey
+highlight nhDesMapCharLava ctermbg=black ctermfg=red guibg=black guifg=red
+highlight nhDesMapCharSink ctermbg=black ctermfg=grey guibg=black guifg=grey
+highlight nhDesMapCharIce ctermbg=black ctermfg=lightblue guibg=black guifg=lightblue
+highlight nhDesMapCharTree ctermbg=black ctermfg=green guibg=black guifg=green
+highlight nhDesMapCharIronbars ctermbg=black ctermfg=cyan guibg=black guifg=cyan
+highlight nhDesMapCharLinenum ctermbg=black ctermfg=darkgrey guibg=black guifg=darkgrey
+highlight nhDesMapCharError ctermbg=red ctermfg=yellow guibg=red guifg=yellow
+
+let b:current_syntax = "nhdes"
diff --git a/vim/.vim/syntax/perl.vim b/vim/.vim/syntax/perl.vim
new file mode 100644
index 0000000..c70fa27
--- /dev/null
+++ b/vim/.vim/syntax/perl.vim
@@ -0,0 +1 @@
+let perl_sub_signatures = 1