summaryrefslogtreecommitdiffstats
path: root/vim/syntax
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2015-12-12 16:23:07 -0500
committerJesse Luehrs <doy@tozt.net>2015-12-12 16:24:50 -0500
commit462637c1555c55738404e1ea56b9fcb3ac636a30 (patch)
tree20298287f50489564aca61bd1fda149faa92693a /vim/syntax
parentdd986a677bae51943b83565daf1900c4451d9898 (diff)
downloadconf-462637c1555c55738404e1ea56b9fcb3ac636a30.tar.gz
conf-462637c1555c55738404e1ea56b9fcb3ac636a30.zip
update levdes.vim
Diffstat (limited to 'vim/syntax')
-rw-r--r--vim/syntax/levdes.vim254
1 files changed, 193 insertions, 61 deletions
diff --git a/vim/syntax/levdes.vim b/vim/syntax/levdes.vim
index 1a9c5a7..a4f1982 100644
--- a/vim/syntax/levdes.vim
+++ b/vim/syntax/levdes.vim
@@ -8,7 +8,7 @@
" 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, add this line:
+" * 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.
@@ -27,7 +27,7 @@ syn include @desLua syntax/lua.vim
syn case match
syn match desLuaBlock /\(lua\)\?\s\+{{/ contained
-syn match desOtherLuaBlock /^\(prelude\|lua\|validate\)\?\s*{{/ contained
+syn match desOtherLuaBlock /^\(prelude\|lua\|validate\|epilogue\|veto\)\?\s*{{/ contained
syn match desLuaBlockEnd /}}/ contained
"syn match desColonLine /^\s*:/ contained
@@ -37,76 +37,198 @@ syn region desLua start=/^\s*\(lua\)\?\s*{{/ end=/}}\s*$/ contains=@desLuaGroup,
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+=-
-syn keyword desSubstDec SUBST: contained
-syn keyword desNsubstDec NSUBST: contained
-syn keyword desShuffleDec SHUFFLE: contained
+" 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=desSubstDec,desSubstArg,desSubstSep,@desMapElements keepend
+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
-syn region desNsubst start=/^NSUBST:\s*/ end=/$/ contains=desNsubstDec,desSubstArg,desSubstSep,@desMapElements 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 region desShuffle start=/^SHUFFLE:\s*/ end=/$/ contains=desShuffleDec,desMapFrag keepend
+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 NAME: ORIENT: DEPTH: PLACE: MONS: FLAGS: default-depth: TAGS: CHANCE: WEIGHT: ITEM: KFEAT: KMONS: KITEM: COLOUR: KMASK: KPROP: MARKER: LFLAGS: BFLAGS: LROCKCOL: LFLOORCOL: LFLOORTILE: LROCKTILE: FTILE: RTILE: TILE: SUBVAULT: FHEIGHT:
-syn keyword desOrientation encompass north south east west northeast northwest southeast southwest float
+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 entry pan lab bazaar allow_dup dummy mini_float minotaur
-syn keyword desOrientation no_pool_fixup no_wall_fixup no_monster_gen generate_awake no_item_gen no_tele_control not_mappable no_magic_map no_secret_doors generate_loot no_dump patrolling
-syn keyword desOrientation Temple Orc Elf Lair Swamp Shoal Slime Snake Hive Vault Blade Crypt Tomb Hell Dis Geh Coc Tar
-syn keyword desOrientation D: contained
+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
-syn match desComment "^\s*#.*$"
+" KFEAT
+syn keyword desOrientation known mimic
-syn match desEntry "\<\w*_entry\>"
-" 'transparent' is a Vim syntax keyword???
-syn match desTransparent "transparent"
+" 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:\d*"
+syn match desWeight "w\(eight\)\=:\d*"
+syn match desWeight "q:\d*\(-\d*\)\="
syn match desSlash "/"
syn keyword desMapBookend MAP ENDMAP contained
-syn match desMapFloor /\./ contained
-syn match desMapWall /x/ contained
-syn match desMapDoor /[+=]/ contained
+syn match desMapWall /x/ contained
+syn match desMapPermaWall /X/ contained
syn match desMapStoneWall /c/ contained
-syn match desMapCrystalWall /b/ contained
+syn match desMapGlassWall /[mno]/ contained
syn match desMapMetalWall /v/ contained
-syn match desMapWaxWall /a/ contained
-syn match desMapMonst /[0-9]/ contained
-syn match desMapGold /\$/ contained
-syn match desMapLava /l/ contained
-syn match desMapWater /w/ 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 desMapTrap /\^/ contained
-syn match desMapTree /t/ contained
+syn match desMapStairs /[}{)(\]\[]/ contained
+syn match desMapTrap /[\^~]/ contained
+syn match desMapGold /\$/ contained
syn match desMapValuable /[%*|]/ contained
-syn match desMapRune /O/ contained
-syn cluster desMapElements contains=desMapBookend,desMapWall,desMapFloor
-syn cluster desMapElements add=desMapMonst,desMapCrystalWall,desMapGold
-syn cluster desMapElements add=desMapLava,desMapMetalWall,desMapDoor
-syn cluster desMapElements add=desMapStoneWall,desMapWater,desMapShallow
-syn cluster desMapElements add=desMapTrap,desMapEntry,desMapWaxWall,desMapTree
+syn match desMapMonst /[0-9]/ contained
-syn cluster desMapElements add=desMapRune,desMapValuable
+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 desSubstDec Statement
-hi link desNsubstDec Statement
-hi link desShuffleDec Statement
+hi link desVaultname Identifier
hi link desMapBookend Statement
hi link desLuaBlock Statement
hi link desOtherLuaBlock Statement
@@ -123,48 +245,58 @@ 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?
+" post-loading, like "normal" highlights do. Does someone know how?
if &bg == "dark"
hi desMapWall guifg=darkgray term=bold gui=bold ctermfg=white
- hi desMapCrystalWall guifg=#009040 term=bold gui=bold ctermfg=green
+ 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 desMapWaxWall guifg=#a0a000 gui=bold ctermfg=yellow
+ hi desMapCrystalWall guifg=#009040 term=bold gui=bold ctermfg=green
+ hi desMapTree guifg=#00aa00 ctermfg=darkgreen
hi desMapFloor guifg=#008000 ctermfg=darkgray
- hi desMapMonst guifg=red ctermfg=red
- hi desMapLava guifg=red gui=bold ctermfg=darkred
- hi desMapTrap guifg=red gui=bold ctermfg=darkred
- hi desMapWater guifg=lightblue ctermfg=darkblue
- hi desMapShallow guifg=lightcyan ctermfg=darkcyan
- hi desMapGold guifg=#c09000 ctermfg=yellow
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 desMapTree guifg=#00aa00 ctermfg=darkgreen
+ 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 desMapRune guifg=orange gui=bold ctermfg=magenta
+ hi desMapMonst guifg=red ctermfg=red
else
hi desMapWall guifg=darkgray term=bold gui=bold ctermfg=brown
- hi desMapCrystalWall guifg=#009040 term=bold gui=bold ctermfg=green
+ 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 desMapWaxWall guifg=#a0a000 gui=bold ctermfg=yellow
+ hi desMapCrystalWall guifg=#009040 term=bold gui=bold ctermfg=green
+ hi desMapTree guifg=#00aa00 ctermfg=darkgreen
hi desMapFloor guifg=#008000 ctermfg=lightgray
- hi desMapMonst guifg=red ctermfg=darkred
- hi desMapLava guifg=red gui=bold ctermfg=red
- hi desMapTrap guifg=red gui=bold ctermfg=red
- hi desMapWater guifg=lightblue ctermfg=darkblue
- hi desMapShallow guifg=lightcyan ctermfg=darkcyan
- hi desMapGold guifg=#c09000 ctermfg=yellow
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 desMapTree guifg=#00aa00 ctermfg=darkgreen
+ 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 desMapRune guifg=orange gui=bold ctermfg=white
+ hi desMapMonst guifg=red ctermfg=darkred
endif
syn sync minlines=45