diff --git a/.vim/syntax/html.vim b/.vim/syntax/html.vim new file mode 100644 index 0000000..cde5269 --- /dev/null +++ b/.vim/syntax/html.vim @@ -0,0 +1,337 @@ +" Vim syntax file +" Language: HTML +" Maintainer: Jorge Maldonado Ventura +" Previous Maintainer: Claudio Fleiner +" Repository: https://notabug.org/jorgesumle/vim-html-syntax +" Last Change: 2018 May 31 +" Included patch from Jay Sitter to add WAI-ARIA htmlArg keywords +" + +" Please check :help html.vim for some comments and a description of the options + +" quit when a syntax file was already loaded +if !exists("main_syntax") + if exists("b:current_syntax") + finish + endif + let main_syntax = 'html' +endif + +let s:cpo_save = &cpo +set cpo&vim + +syntax spell toplevel + +syn case ignore + +" mark illegal characters +syn match htmlError "[<>&]" + + +" tags +syn region htmlString contained start=+"+ end=+"+ contains=htmlSpecialChar,javaScriptExpression,@htmlPreproc +syn region htmlString contained start=+'+ end=+'+ contains=htmlSpecialChar,javaScriptExpression,@htmlPreproc +syn match htmlValue contained "=[\t ]*[^'" \t>][^ \t>]*"hs=s+1 contains=javaScriptExpression,@htmlPreproc +syn region htmlEndTag start=++ contains=htmlTagN,htmlTagError +syn region htmlTag start=+<[^/]+ end=+>+ fold contains=htmlTagN,htmlString,htmlArg,htmlValue,htmlTagError,htmlEvent,htmlCssDefinition,@htmlPreproc,@htmlArgCluster +syn match htmlTagN contained +<\s*[-a-zA-Z0-9]\++hs=s+1 contains=htmlTagName,htmlSpecialTagName,@htmlTagNameCluster +syn match htmlTagN contained +]<"ms=s+1 + + +" tag names +syn keyword htmlTagName contained address applet area a base basefont +syn keyword htmlTagName contained big blockquote br caption center +syn keyword htmlTagName contained cite code dd dfn dir div dl dt font +syn keyword htmlTagName contained form hr html img +syn keyword htmlTagName contained input isindex kbd li link map menu +syn keyword htmlTagName contained meta ol option param pre p samp span +syn keyword htmlTagName contained select small sub sup +syn keyword htmlTagName contained table td textarea th tr tt ul var xmp +syn match htmlTagName contained "\<\(b\|i\|u\|h[1-6]\|em\|strong\|head\|body\|title\)\>" + +" new html 4.0 tags +syn keyword htmlTagName contained abbr acronym bdo button col label +syn keyword htmlTagName contained colgroup fieldset iframe ins legend +syn keyword htmlTagName contained object optgroup q s tbody tfoot thead + +" new html 5 tags +syn keyword htmlTagName contained article aside audio bdi canvas data +syn keyword htmlTagName contained datalist details embed figcaption figure +syn keyword htmlTagName contained footer header hgroup keygen main mark +syn keyword htmlTagName contained menuitem meter nav output picture +syn keyword htmlTagName contained progress rb rp rt rtc ruby section +syn keyword htmlTagName contained slot source template time track video wbr + +" legal arg names +syn keyword htmlArg contained action +syn keyword htmlArg contained align alink alt archive background bgcolor +syn keyword htmlArg contained border bordercolor cellpadding +syn keyword htmlArg contained cellspacing checked class clear code codebase color +syn keyword htmlArg contained cols colspan content coords enctype face +syn keyword htmlArg contained gutter height hspace id +syn keyword htmlArg contained link lowsrc marginheight +syn keyword htmlArg contained marginwidth maxlength method name prompt +syn keyword htmlArg contained rel rev rows rowspan scrolling selected shape +syn keyword htmlArg contained size src start target text type url +syn keyword htmlArg contained usemap ismap valign value vlink vspace width wrap +syn match htmlArg contained "\<\(http-equiv\|href\|title\)="me=e-1 + +" aria attributes +syn match htmlArg contained "\<\(aria-activedescendant\|aria-atomic\)\>" +syn match htmlArg contained "\<\(aria-autocomplete\|aria-busy\|aria-checked\)\>" +syn match htmlArg contained "\<\(aria-colcount\|aria-colindex\|aria-colspan\)\>" +syn match htmlArg contained "\<\(aria-controls\|aria-current\)\>" +syn match htmlArg contained "\<\(aria-describedby\|aria-details\)\>" +syn match htmlArg contained "\<\(aria-disabled\|aria-dropeffect\)\>" +syn match htmlArg contained "\<\(aria-errormessage\|aria-expanded\)\>" +syn match htmlArg contained "\<\(aria-flowto\|aria-grabbed\|aria-haspopup\)\>" +syn match htmlArg contained "\<\(aria-hidden\|aria-invalid\)\>" +syn match htmlArg contained "\<\(aria-keyshortcuts\|aria-label\)\>" +syn match htmlArg contained "\<\(aria-labelledby\|aria-level\|aria-live\)\>" +syn match htmlArg contained "\<\(aria-modal\|aria-multiline\)\>" +syn match htmlArg contained "\<\(aria-multiselectable\|aria-orientation\)\>" +syn match htmlArg contained "\<\(aria-owns\|aria-placeholder\|aria-posinset\)\>" +syn match htmlArg contained "\<\(aria-pressed\|aria-readonly\|aria-relevant\)\>" +syn match htmlArg contained "\<\(aria-required\|aria-roledescription\)\>" +syn match htmlArg contained "\<\(aria-rowcount\|aria-rowindex\|aria-rowspan\)\>" +syn match htmlArg contained "\<\(aria-selected\|aria-setsize\|aria-sort\)\>" +syn match htmlArg contained "\<\(aria-valuemax\|aria-valuemin\)\>" +syn match htmlArg contained "\<\(aria-valuenow\|aria-valuetext\)\>" +syn keyword htmlArg contained role + +" Netscape extensions +syn keyword htmlTagName contained frame noframes frameset nobr blink +syn keyword htmlTagName contained layer ilayer nolayer spacer +syn keyword htmlArg contained frameborder noresize pagex pagey above below +syn keyword htmlArg contained left top visibility clip id noshade +syn match htmlArg contained "\" + +" Microsoft extensions +syn keyword htmlTagName contained marquee + +" html 4.0 arg names +syn match htmlArg contained "\<\(accept-charset\|label\)\>" +syn keyword htmlArg contained abbr accept accesskey axis char charoff charset +syn keyword htmlArg contained cite classid codetype compact data datetime +syn keyword htmlArg contained declare defer dir disabled for frame +syn keyword htmlArg contained headers hreflang lang language longdesc +syn keyword htmlArg contained multiple nohref nowrap object profile readonly +syn keyword htmlArg contained rules scheme scope span standby style +syn keyword htmlArg contained summary tabindex valuetype version + +" html 5 arg names +syn keyword htmlArg contained allowfullscreen async autocomplete autofocus +syn keyword htmlArg contained autoplay challenge contenteditable contextmenu +syn keyword htmlArg contained controls crossorigin default dialog dirname +syn keyword htmlArg contained download draggable dropzone form formaction +syn keyword htmlArg contained formenctype formmethod formnovalidate formtarget +syn keyword htmlArg contained hidden high icon inputmode keytype kind list loop +syn keyword htmlArg contained low max min minlength muted nonce novalidate open +syn keyword htmlArg contained optimum pattern placeholder poster preload +syn keyword htmlArg contained radiogroup required reversed sandbox spellcheck +syn keyword htmlArg contained sizes srcset srcdoc srclang step title translate +syn keyword htmlArg contained typemustmatch + +" special characters +syn match htmlSpecialChar "&#\=[0-9A-Za-z]\{1,8};" + +" Comments (the real ones or the old netscape ones) +if exists("html_wrong_comments") + syn region htmlComment start=++ contains=htmlPreStmt,htmlPreError,htmlPreAttr +syn match htmlPreStmt contained "\)" + syn region htmlCssDefinition matchgroup=htmlArg start='style="' keepend matchgroup=htmlString end='"' contains=css.*Attr,css.*Prop,cssComment,cssLength,cssColor,cssURL,cssImportant,cssError,cssString,@htmlPreproc + hi def link htmlStyleArg htmlString +endif + +if main_syntax == "html" + " synchronizing (does not always work if a comment includes legal + " html tags, but doing it right would mean to always start + " at the first line, which is too slow) + syn sync match htmlHighlight groupthere NONE "<[/a-zA-Z]" + syn sync match htmlHighlight groupthere javaScript " 800 || v:version == 800 && has("patch1038") + hi def htmlStrike term=strikethrough cterm=strikethrough gui=strikethrough + else + hi def htmlStrike term=underline cterm=underline gui=underline + endif + endif +endif + +hi def link htmlPreStmt PreProc +hi def link htmlPreError Error +hi def link htmlPreProc PreProc +hi def link htmlPreAttr String +hi def link htmlPreProcAttrName PreProc +hi def link htmlPreProcAttrError Error +hi def link htmlSpecial Special +hi def link htmlSpecialChar Special +hi def link htmlString String +hi def link htmlStatement Statement +hi def link htmlComment Comment +hi def link htmlCommentPart Comment +hi def link htmlValue String +hi def link htmlCommentError htmlError +hi def link htmlTagError htmlError +hi def link htmlEvent javaScript +hi def link htmlError Error + +hi def link javaScript Special +hi def link javaScriptExpression javaScript +hi def link htmlCssStyleComment Comment +hi def link htmlCssDefinition Special + +let b:current_syntax = "html" + +if main_syntax == 'html' + unlet main_syntax +endif + +let &cpo = s:cpo_save +unlet s:cpo_save +" vim: ts=8 diff --git a/.vimrc b/.vimrc index 320e022..e52310d 100644 --- a/.vimrc +++ b/.vimrc @@ -155,7 +155,7 @@ function! GitBranch() function! StatuslineGit() let l:branchname = GitBranch() return strlen(l:branchname) > 0?' '.l:branchname.' ':'' - endfunction +endfunction set laststatus=2 "always show statusline @@ -173,3 +173,11 @@ set statusline+=\[%{&fileformat}\] set statusline+=\ %p%% set statusline+=\ %l:%c set statusline+=\ + +let s:host_vimrc = $HOME '.vimrc' . '_' . hostname() + +" if there is a host-specific vimrc, load it (.vimrc_hostname) +if filereadable(s:host_vimrc) + execute 'source ' . s:host_vimrc +endif +