1
0
mirror of https://github.com/gryf/pentadactyl-pm.git synced 2025-12-22 22:08:00 +01:00
Files
pentadactyl-pm/teledactyl/contrib/vim/syntax/teledactyl.vim
2010-12-22 01:26:09 +11:00

104 lines
5.7 KiB
VimL

" Vim syntax file
" Language: Teledactyl configuration file
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" TODO: make this teledactyl specific - shared dactyl config?
if exists("b:current_syntax")
finish
endif
let s:cpo_save = &cpo
set cpo&vim
syn include @javascriptTop syntax/javascript.vim
unlet b:current_syntax
syn include @cssTop syntax/css.vim
unlet b:current_syntax
syn match teledactylCommandStart "\%(^\s*:\=\)\@<=" nextgroup=teledactylCommand,teledactylAutoCmd
syn keyword teledactylCommand run ab[breviate] abc[lear] addo[ns] au[tocmd] bd[elete] bw[ipeout] bun[load] tabc[lose]
\ ca[bbrev] cabc[lear] cd chd[ir] clistk[eys] clk cm[ap] cmapc[lear] cno[remap] colo[rscheme] comc[lear] com[mand] con[tact]
\ contacts addr[essbook] contexts copy[to] cuna[bbrev] cunm[ap] delc[ommand] delmac[ros] delm[arks] dels[tyle] dia[log]
\ doautoa[ll] do[autocmd] ec[ho] echoe[rr] echom[sg] el[se] elsei[f] elif em[enu] empty[trash] en[dif] fi exe[cute] exta[dd]
\ extde[lete] extd[isable] exte[nable] extens[ions] exts exto[ptions] extp[references] extu[pdate] fini[sh] frameo[nly]
\ get[messages] go[to] ha[rdcopy] h[elp] helpa[ll] hi[ghlight] ia[bbrev] iabc[lear] if ilistk[eys] ilk im[ap] imapc[lear]
\ ino[remap] iuna[bbrev] iunm[ap] javas[cript] js keepa[lt] let listc[ommands] lc listk[eys] lk listo[ptions] lo loadplugins
\ lpl macros m[ail] map mapc[lear] ma[rk] marks mes[sages] messc[lear] mkt[eledactylrc] move[to] nlistk[eys] nlk nm[ap]
\ nmapc[lear] nno[remap] noh[lfind] no[remap] norm[al] nunm[ap] pa[geinfo] pagest[yle] pas pref[erences] prefs pw[d] q[uit]
\ re[load] res[tart] runt[ime] sav[eas] w[rite] scrip[tnames] se[t] setg[lobal] setl[ocal] sil[ent] so[urce] st[op] sty[le]
\ styled[isable] styd[isable] stylee[nable] stye[nable] stylet[oggle] styt[oggle] tab tabd[o] bufd[o] tabl[ast] bl[ast]
\ tabn[ext] tn[ext] bn[ext] tabp[revious] tp[revious] tabN[ext] tN[ext] bp[revious] bN[ext] tabr[ewind] tabfir[st] br[ewind]
\ bf[irst] time tlistk[eys] tlk tm[ap] tmapc[lear] tno[remap] tunm[ap] una[bbreviate] unl[et] unm[ap] verb[ose] ve[rsion]
\ vie[wsource] vlistk[eys] vlk vm[ap] vmapc[lear] vno[remap] vunm[ap] y[ank] zo[om]
\ contained
syn match teledactylCommand "!" contained
syn keyword teledactylAutoCmd au[tocmd] contained nextgroup=teledactylAutoEventList skipwhite
syn keyword teledactylAutoEvent DOMLoad FolderLoad PageLoadPre PageLoad Enter Leave LeavePre contained
syn match teledactylAutoEventList "\(\a\+,\)*\a\+" contained contains=teledactylAutoEvent
syn region teledactylSet matchgroup=teledactylCommand start="\%(^\s*:\=\)\@<=\<\%(setl\%[ocal]\|setg\%[lobal]\|set\=\)\=\>"
\ end="$" keepend oneline contains=teledactylOption,teledactylString
syn keyword teledactylOption altwildmode awim archivefolder autocomplete au cdpath cd complete cpt editor eventignore ei
\ extendedhinttags eht fileencoding fenc findcase fc followhints fh guioptions go helpfile hf hintinputs hin hintkeys hk
\ hintmatching hm hinttags ht hinttimeout hto history hi layout loadplugins lpl mapleader ml maxitems messages msgs
\ nextpattern pageinfo pa passkeys pk previouspattern runtimepath rtp scroll scr shell sh shellcmdflag shcf showstatuslinks
\ ssli showtabline stal smtpserver smtp titlestring urlseparator urlsep us verbose vbs wildanchor wia wildcase wic wildignore
\ wig wildmode wim wildsort wis wordseparators wsp
\ contained nextgroup=teledactylSetMod
let s:toggleOptions = ["autoexternal", "ae", "banghist", "bh", "errorbells", "eb", "exrc", "ex", "fullscreen", "fs",
\ "hlfind", "hlf", "incfind", "if", "insertmode", "im", "jsdebugger", "jsd", "more", "online", "showmode", "smd",
\ "strictfocus", "sf", "usermode", "um", "visualbell", "vb"]
execute 'syn match teledactylOption "\<\%(no\|inv\)\=\%(' .
\ join(s:toggleOptions, '\|') .
\ '\)\>!\=" contained nextgroup=teledactylSetMod'
syn match teledactylSetMod "\%(\<[a-z_]\+\)\@<=&" contained
syn region teledactylJavaScript start="\%(^\s*\%(javascript\|js\)\s\+\)\@<=" end="$" contains=@javascriptTop keepend oneline
syn region teledactylJavaScript matchgroup=teledactylJavaScriptDelimiter
\ start="\%(^\s*\%(javascript\|js\)\s\+\)\@<=<<\s*\z(\h\w*\)"hs=s+2 end="^\z1$" contains=@javascriptTop fold
let s:cssRegionStart = '\%(^\s*sty\%[le]!\=\s\+\%(-\%(n\|name\)\%(\s\+\|=\)\S\+\s\+\)\=[^-]\S\+\s\+\)\@<='
execute 'syn region teledactylCss start="' . s:cssRegionStart . '" end="$" contains=@cssTop keepend oneline'
execute 'syn region teledactylCss matchgroup=teledactylCssDelimiter'
\ 'start="' . s:cssRegionStart . '<<\s*\z(\h\w*\)"hs=s+2 end="^\z1$" contains=@cssTop fold'
syn match teledactylNotation "<[0-9A-Za-z-]\+>"
syn match teledactylComment +".*$+ contains=teledactylTodo,@Spell
syn keyword teledactylTodo FIXME NOTE TODO XXX contained
syn region teledactylString start="\z(["']\)" end="\z1" skip="\\\\\|\\\z1" oneline
syn match teledactylLineComment +^\s*".*$+ contains=teledactylTodo,@Spell
" NOTE: match vim.vim highlighting group names
hi def link teledactylAutoCmd teledactylCommand
hi def link teledactylAutoEvent Type
hi def link teledactylCommand Statement
hi def link teledactylComment Comment
hi def link teledactylJavaScriptDelimiter Delimiter
hi def link teledactylCssDelimiter Delimiter
hi def link teledactylNotation Special
hi def link teledactylLineComment Comment
hi def link teledactylOption PreProc
hi def link teledactylSetMod teledactylOption
hi def link teledactylString String
hi def link teledactylTodo Todo
let b:current_syntax = "teledactyl"
let &cpo = s:cpo_save
unlet s:cpo_save
" vim: tw=130 et ts=4 sw=4: