1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
" Vim syntax file
" Language: Melodactyl configuration file
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" TODO: make this melodactyl 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 melodactylCommandStart "\%(^\s*:\=\)\@<=" nextgroup=melodactylCommand,melodactylAutoCmd
syn keyword melodactylCommand run ab[breviate] abc[lear] addo[ns] au[tocmd] ba[ck] bd[elete] bw[ipeout] bun[load] tabc[lose]
\ bma[rk] bmarks b[uffer] buffers files ls tabs ca[bbrev] cabc[lear] cd chd[ir] cm[ap] cmapc[lear] cno[remap] colo[rscheme]
\ comc[lear] com[mand] contexts cuna[bbrev] cunm[ap] delbm[arks] delc[ommand] delmac[ros] delm[arks] delqm[arks] dels[tyle]
\ dia[log] displayp[ane] dp[ane] dpope[n] doautoa[ll] do[autocmd] downl[oads] dl dpcl[ose] ec[ho] echoe[rr] echom[sg] em[enu]
\ exe[cute] exta[dd] extde[lete] extd[isable] exte[nable] extens[ions] exts exto[ptions] extp[references] extu[pdate]
\ exu[sage] f[ilter] fini[sh] fo[rward] fw frameo[nly] ha[rdcopy] h[elp] helpa[ll] hi[ghlight] hist[ory] hs ia[bbrev]
\ iabc[lear] im[ap] imapc[lear] ino[remap] iuna[bbrev] iunm[ap] javas[cript] js ju[mps] keepa[lt] let load loadplugins lpl
\ macros map mapc[lear] ma[rk] marks mediav[iew] mes[sages] messc[lear] mkm[elodactylrc] nm[ap] nmapc[lear] nno[remap]
\ noh[lsearch] no[remap] norm[al] nunm[ap] o[pen] optionu[sage] pa[geinfo] pagest[yle] pas playern[ext] playerpa[use]
\ playerp[lay] playerpr[ev] players[top] pm[ap] pmapc[lear] pno[remap] pref[erences] prefs punm[ap] pw[d] qma[rk] qmarks
\ qu[eue] q[uit] quita[ll] qa[ll] redr[aw] re[load] reloada[ll] res[tart] runt[ime] sav[eas] w[rite] scrip[tnames] see[k]
\ se[t] setg[lobal] setl[ocal] sil[ent] sort[view] so[urce] st[op] stopa[ll] sty[le] styled[isable] styd[isable] stylee[nable]
\ stye[nable] stylet[oggle] styt[oggle] tab taba[ttach] tabde[tach] tabd[o] bufd[o] tabdu[plicate] tabl[ast] bl[ast] tabm[ove]
\ tabn[ext] tn[ext] bn[ext] tabo[nly] tabopen t[open] tabnew tabp[revious] tp[revious] tabN[ext] tN[ext] bp[revious] bN[ext]
\ tabr[ewind] tabfir[st] br[ewind] bf[irst] time tm[ap] tmapc[lear] tno[remap] toolbarh[ide] tbh[ide] toolbars[how] tbs[how]
\ toolbart[oggle] tbt[oggle] tunm[ap] una[bbreviate] unl[et] unm[ap] verb[ose] ve[rsion] vie[wsource] viu[sage] vm[ap]
\ vmapc[lear] vno[remap] vol[ume] vunm[ap] wqa[ll] wq xa[ll] y[ank] zo[om]
\ contained
syn match melodactylCommand "!" contained
syn keyword melodactylAutoCmd au[tocmd] contained nextgroup=melodactylAutoEventList skipwhite
syn keyword melodactylAutoEvent BookmarkAdd ColorScheme DOMLoad DownloadPost Fullscreen LocationChange PageLoadPre PageLoad
\ ShellCmdPost TrackChangePre TrackChange ViewChangePre ViewChange StreamStart StreamPause StreamEnd StreamStop Enter
\ LeavePre Leave
\ contained
syn match melodactylAutoEventList "\(\a\+,\)*\a\+" contained contains=melodactylAutoEvent
syn region melodactylSet matchgroup=melodactylCommand start="\%(^\s*:\=\)\@<=\<\%(setl\%[ocal]\|setg\%[lobal]\|set\=\)\=\>"
\ end="$" keepend oneline contains=melodactylOption,melodactylString
syn keyword melodactylOption activate act altwildmode awim autocomplete au cdpath cd complete cpt defsearch ds editor
\ encoding enc eventignore ei extendedhinttags eht fileencoding fenc followhints fh guioptions go helpfile hf hintinputs hin
\ hintkeys hk hintmatching hm hinttags ht hinttimeout hto history hi laststatus ls loadplugins lpl mapleader ml maxitems
\ messages msgs newtab nextpattern pageinfo pa popups pps previouspattern repeat runtimepath rtp scroll scr shell sh
\ shellcmdflag shcf showstatuslinks ssli showtabline stal suggestengines titlestring urlseparator us verbose vbs wildanchor
\ wia wildcase wic wildignore wig wildmode wim wildsort wis wordseparators wsp
\ contained nextgroup=melodactylSetMod
let s:toggleOptions = ["banghist", "bh", "errorbells", "eb", "exrc", "ex", "fullscreen", "fs", "hlsearch", "hls",
\ "ignorecase", "ic", "incsearch", "is", "insertmode", "im", "jsdebugger", "jsd", "linksearch", "lks", "more", "online",
\ "showmode", "smd", "shuffle", "smartcase", "scs", "strictfocus", "sf", "usermode", "um", "visualbell", "vb"]
execute 'syn match melodactylOption "\<\%(no\|inv\)\=\%(' .
\ join(s:toggleOptions, '\|') .
\ '\)\>!\=" contained nextgroup=melodactylSetMod'
syn match melodactylSetMod "\%(\<[a-z_]\+\)\@<=&" contained
syn region melodactylJavaScript start="\%(^\s*\%(javascript\|js\)\s\+\)\@<=" end="$" contains=@javascriptTop keepend oneline
syn region melodactylJavaScript matchgroup=melodactylJavaScriptDelimiter
\ 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 melodactylCss start="' . s:cssRegionStart . '" end="$" contains=@cssTop keepend oneline'
execute 'syn region melodactylCss matchgroup=melodactylCssDelimiter'
\ 'start="' . s:cssRegionStart . '<<\s*\z(\h\w*\)"hs=s+2 end="^\z1$" contains=@cssTop fold'
syn match melodactylNotation "<[0-9A-Za-z-]\+>"
syn match melodactylComment +".*$+ contains=melodactylTodo,@Spell
syn keyword melodactylTodo FIXME NOTE TODO XXX contained
syn region melodactylString start="\z(["']\)" end="\z1" skip="\\\\\|\\\z1" oneline
syn match melodactylLineComment +^\s*".*$+ contains=melodactylTodo,@Spell
" NOTE: match vim.vim highlighting group names
hi def link melodactylAutoCmd melodactylCommand
hi def link melodactylAutoEvent Type
hi def link melodactylCommand Statement
hi def link melodactylComment Comment
hi def link melodactylJavaScriptDelimiter Delimiter
hi def link melodactylCssDelimiter Delimiter
hi def link melodactylNotation Special
hi def link melodactylLineComment Comment
hi def link melodactylOption PreProc
hi def link melodactylSetMod melodactylOption
hi def link melodactylString String
hi def link melodactylTodo Todo
let b:current_syntax = "melodactyl"
let &cpo = s:cpo_save
unlet s:cpo_save
" vim: tw=130 et ts=4 sw=4:
|