diff options
Diffstat (limited to 'extras/vim/syntax/uzbl.vim')
-rw-r--r-- | extras/vim/syntax/uzbl.vim | 138 |
1 files changed, 138 insertions, 0 deletions
diff --git a/extras/vim/syntax/uzbl.vim b/extras/vim/syntax/uzbl.vim new file mode 100644 index 0000000..30b07c2 --- /dev/null +++ b/extras/vim/syntax/uzbl.vim @@ -0,0 +1,138 @@ +" Vim syntax file +" Language: Uzbl config syntax +" Maintainer: Mason Larobina <mason.larobina@gmail.com> +" Contributors: Gregor Uhlenheuer (kongo2002) +" Pawel Tomak (grodzik) <pawel.tomak@gmail.com> +" Version: 0.1 +" +" Installing: +" To install this syntax file place it in your `~/.vim/syntax/` directory. +" +" To enable automatic uzbl-config file type detection create a new file +" `~/.vim/ftdetect/uzbl.vim` with the following lines inside: +" +" au BufRead,BufNewFile ~/.config/uzbl/* set filetype=uzbl +" au BufRead,BufNewFile */uzbl/config set filetype=uzbl +" +" Issues: +" 1. Hilighting inside @[]@, @()@, @<>@ and string regions would be nice. +" 2. Accidentally matches keywords inside strings. +" + +if version < 600 + syntax clear +elseif exists("b:current_syntax") + finish +endif + +syn keyword uzblKeyword back forward scroll reload reload_ign_cache stop +syn keyword uzblKeyword zoom_in zoom_out toggle_zoom_type uri script +syn keyword uzblKeyword toggle_status spawn sync_spawn sync_sh talk_to_socket +syn keyword uzblKeyword exit search search_reverse search_clear dehilight set +syn keyword uzblKeyword dump_config dump_config_as_events chain print event +syn keyword uzblKeyword request menu_add menu_link_add menu_image_add +syn keyword uzblKeyword menu_editable_add menu_separator menu_link_separator +syn keyword uzblKeyword menu_image_separator menu_editable_separator +syn keyword uzblKeyword menu_remove menu_link_remove menu_image_remove +syn keyword uzblKeyword menu_editable_remove hardcopy include + +syn match uzblKeyword /\.\@<!sh\s\+/ +syn match uzblKeyword /\.\@<!js\s\+/ + +" Comments +syn match uzblTodo /TODO:/ contained +syn region uzblComment display start=/^#/ end=/$/ contains=uzblTodo + +" Comment headings +syn region uzblSection display start=/^# ===/ end=/$/ +syn region uzblSubSection display start=/^# ---/ end=/$/ + +" Integer and float matching +syn match uzblPercent display /\s\(+\|-\|\)\(\d\+.\d\+\|\d\+\)%\(\s\|\n\)/ +syn match uzblInt display /\s\(+\|-\|\)\d\+\(\s\|\n\)/ +syn match uzblFloat display /\s\(+\|-\|\)\d\+.\d\+\(\s\|\n\)/ + +" Handler arguments +syn match uzblArgs display /$\d\+/ + +" Hex colors +syn match uzblHexCol display /#\x\{3}\%(\x\{3}\)\=/ + +" Matches @INTERNAL_VAR and @{INTERNAL_VAR} +syn match uzblInternalExpand display /@[A-Z_]\+/ +syn match uzblInternalExpand display /@{[A-Z_]\+}/ + +" Matches $ENVIRON_VAR +syn match uzblEnvironVariable display /$[A-Za-z0-9_]\+/ + +" Matches @some_var and @{some_var} +syn match uzblExpand display /@[A-Za-z0-9_\.]\+/ +syn match uzblExpand display /@{[A-Za-z0-9_\.]\+}/ + +" Matches @command_alias at the beginning of a line. +syn match uzblFunctExpand display /^@[A-Za-z0-9_\.]\+/ +syn match uzblFunctExpand display /^@{[A-Za-z0-9_\.]\+}/ + +" Matches literal \, \@var and \@{var} +syn match uzblEscape display /\\\\/ +syn match uzblEscape display /\\@/ +syn match uzblEscape display /\\@[A-Za-z0-9_\.]\+/ +syn match uzblEscape display /\\@{[A-Za-z0-9_\.]\+}/ + +" Match @[ xml data ]@ regions +syn region uzblXMLEscape display start=+@\[+ end=+\]@+ end=+$+ +syn region uzblEscape start=+\\@\[+ end=+\]\\@+ + +" Match @( shell command )@ regions +syn region uzblShellExec display start=+@(+ end=+)@+ end=+$+ +syn region uzblEscape start=+\\@(+ end=+)\\@+ + +" Match @< javascript command >@ regions +syn region uzblJSExec display start=+@<+ end=+>@+ end=+$+ +syn region uzblEscape start=+\\@<+ end=+>\\@+ + +" Match quoted regions +syn region uzblString display start=+'+ end=+'+ end=+$+ contains=uzblExpand,uzblEscape,uzblHexCol,uzblArgs,uzblInternalExpand,uzblEnvironVariable,uzblXMLEscape,uzblShellExec,uzblJSExec +syn region uzblString display start=+"+ end=+"+ end=+$+ contains=uzblExpand,uzblEscape,uzblHexCol,uzblArgs,uzblInternalExpand,uzblEnvironVariable,uzblXMLEscape,uzblShellExec,uzblJSExec + +if version >= 508 || !exists("did_uzbl_syn_inits") + if version <= 508 + let did_uzbl_syn_inits = 1 + command -nargs=+ HiLink hi link <args> + else + command -nargs=+ HiLink hi def link <args> + endif + + HiLink uzblComment Comment + HiLink uzblTodo Todo + + HiLink uzblSection Folded + HiLink uzblSubSection SpecialComment + + HiLink uzblKeyword Keyword + + HiLink uzblInt Number + HiLink uzblPercent Number + HiLink uzblFloat Float + + HiLink uzblHexCol Constant + + HiLink uzblArgs Identifier + + HiLink uzblExpand Type + HiLink uzblFunctExpand Macro + HiLink uzblEnvironVariable Number + HiLink uzblInternalExpand Identifier + + HiLink uzblXMLEscape Macro + HiLink uzblShellExec Macro + HiLink uzblJSExec Macro + + HiLink uzblEscape Special + + HiLink uzblString String + + delcommand HiLink +endif + +let b:current_syntax = 'uzbl' |