Vim で JavaScript の e4x をハイライトする

~/.vim/syntax/javascript.vim

syn include @javaScriptXML syntax/xml.vim
syn region javaScriptE4X matchgroup=xmlTag start="<\z(\k\{-}\)>" end="</\z1>" contains=@javaScriptXML
unlet! b:current_syntax
  • start= の部分をわざわざ \k にしてるのは、マルチバイト文字もタグ名として認識させたかったため。何か問題があるようなら \w あたりを使えばいい。
  • b:current_syntax の扱いがこれで正しいのか微妙。とりあえずちゃんと動く。
  • タグの閉じ忘れとかがあるとちゃんとハイライトが終わらないので、チェックにも便利かも。