diff options
author | Jesse Luehrs <doy@tozt.net> | 2015-12-12 16:23:07 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2015-12-12 16:24:50 -0500 |
commit | 462637c1555c55738404e1ea56b9fcb3ac636a30 (patch) | |
tree | 20298287f50489564aca61bd1fda149faa92693a /vim/syntax | |
parent | dd986a677bae51943b83565daf1900c4451d9898 (diff) | |
download | conf-462637c1555c55738404e1ea56b9fcb3ac636a30.tar.gz conf-462637c1555c55738404e1ea56b9fcb3ac636a30.zip |
update levdes.vim
Diffstat (limited to 'vim/syntax')
-rw-r--r-- | vim/syntax/levdes.vim | 254 |
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 |