From 8b5607d0f703f3350e1dddb9940505b535eb72ab Mon Sep 17 00:00:00 2001 From: Adam Stankiewicz Date: Fri, 13 Sep 2013 17:30:58 +0200 Subject: [PATCH] Add html5 support --- autoload/htmlcomplete.vim | 861 ++++++++++++++++++++++++++++++++++++ autoload/xml/aria.vim | 232 ++++++++++ autoload/xml/html5.vim | 803 +++++++++++++++++++++++++++++++++ build | 1 + indent/html.vim | 344 ++++++++++++++ syntax/html.vim | 108 +++++ syntax/html/aria.vim | 37 ++ syntax/html/rdfa.vim | 11 + syntax/javascript/html5.vim | 43 ++ 9 files changed, 2440 insertions(+) create mode 100644 autoload/htmlcomplete.vim create mode 100644 autoload/xml/aria.vim create mode 100644 autoload/xml/html5.vim create mode 100644 indent/html.vim create mode 100644 syntax/html.vim create mode 100644 syntax/html/aria.vim create mode 100644 syntax/html/rdfa.vim create mode 100644 syntax/javascript/html5.vim diff --git a/autoload/htmlcomplete.vim b/autoload/htmlcomplete.vim new file mode 100644 index 0000000..6da9be2 --- /dev/null +++ b/autoload/htmlcomplete.vim @@ -0,0 +1,861 @@ +" Vim completion script +" Language: HTML and XHTML +" Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl ) +" Last Change: 2006 Oct 19 +" Modified: othree +" Changes: Add HTML5, WAI-ARIA support +" Last Change: 2010 Sep 25 + +if !exists('g:aria_attributes_complete') + let g:aria_attributes_complete = 1 +endif + +function! htmlcomplete#CompleteTags(findstart, base) + if a:findstart + " locate the start of the word + let line = getline('.') + let start = col('.') - 1 + let curline = line('.') + let compl_begin = col('.') - 2 + while start >= 0 && line[start - 1] =~ '\(\k\|[!:.-]\)' + let start -= 1 + endwhile + " Handling of entities {{{ + if start >= 0 && line[start - 1] =~ '&' + let b:entitiescompl = 1 + let b:compl_context = '' + return start + endif + " }}} + " Handling of ' + if 0 < searchpair(css, '', csse, 'nWb') + \ && 0 < searchpair(css, '', csse, 'nW') + " we're inside style + if getline(lnum) !~ css && getline(a:lnum) !~ csse + if restore_ic == 0 + setlocal noic + endif + if s:cssindent == '' + return cindent(a:lnum) + else + execute 'let ind = ' . s:cssindent + return ind + endif + endif + if getline(a:lnum) =~ csse + return indent(searchpair(css, '', csse, 'nWb')) + endif + endif + + if getline(lnum) =~ '\c' + " line before the current line a:lnum contains + " a closing . --> search for line before + " starting
 to restore the indent.
+        let preline = prevnonblank(search('\c
', 'bW') - 1)
+        if preline > 0
+            if restore_ic == 0
+              setlocal noic
+            endif
+
+            if 0 == match(getline(a:lnum), '^\s*HtmlIndentSum(lnum, -1)
+    let ind = ind + HtmlIndentSum(a:lnum, 0)
+
+    " Fix for conditional comment
+    if getline(a:lnum) =~ '\c'
+        let ind = ind - 1
+    endif
+
+    if restore_ic == 0
+        setlocal noic
+    endif
+
+    return indent(lnum) + (&sw * ind)
+endfun
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
+
+" [-- EOF /indent/html.vim --]
diff --git a/syntax/html.vim b/syntax/html.vim
new file mode 100644
index 0000000..1cd8601
--- /dev/null
+++ b/syntax/html.vim
@@ -0,0 +1,108 @@
+" Vim syntax file
+" Language:	HTML (version 5)
+" Maintainer:	Rodrigo Machado 
+" URL:		http://rm.blog.br/vim/syntax/html.vim
+" Last Change:  2009 Aug 19
+" License:      Public domain
+"               (but let me know if you like :) )
+"
+" Note: This file just adds the new tags from HTML 5
+"       and don't replace default html.vim syntax file
+"
+" Modified:     othree 
+" Changes:      update to Draft 13 January 2011
+"               add complete new attributes
+"               add microdata Attributes
+"               add bdi element
+" Modified:     htdebeer 
+" Changes:      add common SVG elements and attributes for inline SVG
+
+" HTML 5 tags
+syn keyword htmlTagName contained article aside audio canvas command
+syn keyword htmlTagName contained datalist details dialog embed figcaption figure footer
+syn keyword htmlTagName contained header hgroup keygen main mark meter menu nav output
+syn keyword htmlTagName contained progress ruby rt rp section source summary template time track video data
+syn keyword htmlTagName contained wbr bdi
+
+" SVG tags
+" http://www.w3.org/TR/SVG/
+" as found in http://www.w3.org/TR/SVG/eltindex.html
+syn keyword htmlTagName contained svg 
+syn keyword htmlTagName contained altGlyph altGlyphDef altGlyphItem 
+syn keyword htmlTagName contained animate animateColor animateMotion animateTransform 
+syn keyword htmlTagName contained circle ellipse rect line polyline polygon image path
+syn keyword htmlTagName contained clipPath color-profile cursor 
+syn keyword htmlTagName contained defs desc g symbol view use switch foreignObject
+syn keyword htmlTagName contained filter feBlend feColorMatrix feComponentTransfer feComposite feConvolveMatrix feDiffuseLighting feDisplacementMap feDistantLight feFlood feFuncA feFuncB feFuncG feFuncR feGaussianBlur feImage feMerge feMergeNode feMorphology feOffset fePointLight feSpecularLighting feSpotLight feTile feTurbulence 
+syn keyword htmlTagName contained font font-face font-face-format font-face-name font-face-src font-face-uri 
+syn keyword htmlTagName contained glyph glyphRef hkern 
+syn keyword htmlTagName contained linearGradient marker mask pattern radialGradient set stop
+syn keyword htmlTagName contained missing-glyph mpath 
+syn keyword htmlTagName contained text textPath tref tspan vkern
+
+" HTML 5 arguments
+" Core Attributes
+syn keyword htmlArg contained accesskey class contenteditable contextmenu dir 
+syn keyword htmlArg contained draggable hidden id lang spellcheck style tabindex title translate
+" Event-handler Attributes
+syn keyword htmlArg contained onabort onblur oncanplay oncanplaythrough onchange
+syn keyword htmlArg contained onclick oncontextmenu ondblclick ondrag ondragend ondragenter ondragleave ondragover 
+syn keyword htmlArg contained ondragstart ondrop ondurationchange onemptied onended onerror onfocus onformchange 
+syn keyword htmlArg contained onforminput oninput oninvalid onkeydown onkeypress onkeyup onload onloadeddata 
+syn keyword htmlArg contained onloadedmetadata onloadstart onmousedown onmousemove onmouseout onmouseover onmouseup
+syn keyword htmlArg contained onmousewheel onpause onplay onplaying onprogress onratechange onreadystatechange 
+syn keyword htmlArg contained onscroll onseeked onseeking onselect onshow onstalled onsubmit onsuspend ontimeupdate 
+syn keyword htmlArg contained onvolumechange onwaiting
+" XML Attributes
+syn keyword htmlArg contained xml:lang xml:space xml:base xmlns
+" new features
+" 
+syn keyword htmlArg contained onafterprint onbeforeprint onbeforeunload onblur onerror onfocus onhashchange onload 
+syn keyword htmlArg contained onmessage onoffline ononline onpopstate onredo onresize onstorage onundo onunload
+"