-
-
Save rcmachado/256840 to your computer and use it in GitHub Desktop.
" Vim syntax file | |
" Language: HTML (version 5) | |
" Maintainer: Rodrigo Machado <[email protected]> | |
" URL: http://gist.github.com/256840 | |
" Last Change: 2010 Aug 26 | |
" License: Public domain | |
" (but let me know if you liked it :) ) | |
" | |
" Note: This file just adds the new tags from HTML 5 | |
" and don't replace default html.vim syntax file | |
" HTML 5 tags | |
syn keyword htmlTagName contained article aside audio bb canvas command datagrid | |
syn keyword htmlTagName contained datalist details dialog embed figure footer | |
syn keyword htmlTagName contained header hgroup keygen mark meter nav output | |
syn keyword htmlTagName contained progress time ruby rt rp section time video | |
syn keyword htmlTagName contained source figcaption | |
" HTML 5 arguments | |
syn keyword htmlArg contained autofocus autocomplete placeholder min max step | |
syn keyword htmlArg contained contenteditable contextmenu draggable hidden item | |
syn keyword htmlArg contained itemprop list sandbox subject spellcheck | |
syn keyword htmlArg contained novalidate seamless pattern formtarget manifest | |
syn keyword htmlArg contained formaction formenctype formmethod formnovalidate | |
syn keyword htmlArg contained sizes scoped async reversed sandbox srcdoc | |
syn keyword htmlArg contained hidden role | |
syn match htmlArg "\<\(aria-[\-a-zA-Z0-9_]\+\)=" contained | |
syn match htmlArg contained "\s*data-[-a-zA-Z0-9_]\+" |
Applied previous sugestion from dekimsey
What's the best way of auto-including this? I've set up an AutoCmd to auto run syntax include $VIM/syntax/html5.vim
on BufEnter, but is there a better way?
@amackera You can just save the file as ~/.vim/after/syntax/html.vim
. That way, Vim’s html.vim
is loaded, and then this file is.
@remiprev Thanks, that's what I was looking for. I knew that there had to be an easier way.
Thanks for this!
If anyone wants to add proper indentation of HTML5 elements, you must make a local copy of indent/html.vim
(e.g., ~/.vim/indent/html.vim
) if you don't already have one, then find the section around line 35 that starts:
" [-- <ELEMENT ? - - ...> --]
call <SID>HtmlIndentPush('a')
call <SID>HtmlIndentPush('abbr')
call <SID>HtmlIndentPush('acronym')
And follow the same pattern to add rules for HTML5 tags:
call <SID>HtmlIndentPush('article')
call <SID>HtmlIndentPush('aside')
call <SID>HtmlIndentPush('audio')
call <SID>HtmlIndentPush('canvas')
call <SID>HtmlIndentPush('details')
call <SID>HtmlIndentPush('figcaption')
call <SID>HtmlIndentPush('figure')
call <SID>HtmlIndentPush('footer')
call <SID>HtmlIndentPush('header')
call <SID>HtmlIndentPush('hgroup')
call <SID>HtmlIndentPush('mark')
call <SID>HtmlIndentPush('menu')
call <SID>HtmlIndentPush('meter')
call <SID>HtmlIndentPush('nav')
call <SID>HtmlIndentPush('output')
call <SID>HtmlIndentPush('progress')
call <SID>HtmlIndentPush('section')
call <SID>HtmlIndentPush('summary')
call <SID>HtmlIndentPush('time')
call <SID>HtmlIndentPush('video')
Here's one I've generated for css file :
" Vim syntax file " Language: Cascading Style Sheets " Maintainer: Andrew Scott [email protected] " Last Change: 2010 Jul 28 syn keyword cssTagName article aside audio bb canvas command datagrid syn keyword cssTagName datalist details dialog embed figure footer syn keyword cssTagName header hgroup keygen mark meter nav output syn keyword cssTagName progress time ruby rt rp section time video syn keyword cssTagName source figcaption
Thanks Rodrigo, your html5 syntax worked a treat.
@jdbartlett I tried your suggestion for indentation, but it didn't work for me. Are there any other tweaks that you had to do to get it to work? Gotchas that I need to be aware of?
Works :) tnx
@andrewle I had the same problem, until I noticed that the indentation file I'd copied had the following at line 19:
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
finish
endif
Since I was putting my indent file in an /after directory, it of course was ditching out immediately. Deleting these lines fixed it.
Came looking for html5 tags added to GVim html syntax coloring. hokapoka's idea for css is the frosting-on-the-cake. More importantly, I think I've been inspired to make a new syntax list for Maptool, a java program that has it's own macro system built-in.
tyvm!
I like it !! thx :)
Works like a charm! Hokapoka too! Thanks!
I love it. This is what I want.
Hey folks, I think that @othree has made a better work here:
https://github.com/othree/html5.vim
Thanks!
good job
great work and thanks for the link of html5.vim
So, sometime, especially if I'm working with D3, my HTML5 documents have CSS, JavaScript, and SVG all embedded in the HTML code. Is there a simple way for syntax highlight all of this?
You can switch the filetype while you're in the CSS portion or whatever -- :set filetype=css
or set filetype=javascript
etc. I set up a mapping to make it easier, e.g. nnoremap <leader>ftc :set filetype=css<cr>
.
I was able to get the data highlighting working with my vim (7.0.237) using the following statement without any problems with the prior data keyword. At least, none that I am aware of.
syn match htmlArg contained "\s*data-[-a-zA-Z0-9_]+"