diff options
Diffstat (limited to 'vim/.vim/syntax')
-rw-r--r-- | vim/.vim/syntax/levdes.vim | 304 | ||||
-rw-r--r-- | vim/.vim/syntax/nhdes.vim | 99 | ||||
-rw-r--r-- | vim/.vim/syntax/perl.vim | 1 |
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 |