" Vim syntax file " Language: JSX " Maintainer: Fuji, Goro (gfx) " URL: http://github.com/jsx/jsx.vim " License: MIT License " For version 5.x: Clear all syntax items " For version 6.x: Quit when a syntax file was already loaded " tuning parameters: if !exists("main_syntax") if version < 600 syntax clear elseif exists("b:current_syntax") finish endif let main_syntax = 'jsx' endif " Drop fold if it set but vim doesn't support it. if version < 600 && exists("jsx_fold") unlet jsx_fold endif " jsx syn keyword jsxCommentTodo contained TODO FIXME XXX TBD syn match jsxLineComment "\/\/.*" contains=@Spell,jsxCommentTodo syn match jsxCommentSkip "^[ \t]*\*\($\|[ \t]\+\)" syn region jsxComment start="/\*" end="\*/" contains=@Spell,jsxCommentTodo syn match jsxEscape /\\x\x\{2\}\|\\u\x\{4\}\|\\./ syn region jsxString start=+"+ skip=+\\\\\|\\"+ end=+"\|$+ contains=jsxEscape,@Special syn region jsxString start=+'+ skip=+\\\\\|\\'+ end=+'\|$+ contains=jsxEscape,@htmlPreproc syn region jsxString start=+"""+ end=+"""+ keepend contains=jsxEscape,@htmlPreproc syn region jsxString start=+'''+ end=+'''+ keepend contains=jsxEscape,@htmlPreproc " 15.10.1 Patterns (ECMA 262 5th) syn match jsxRegExpMeta /\\[\\bwWsSdD]/ syn region jsxRegExp start=+/[^/*]+me=e-1 skip=+\\\\\|\\/+ end=+/[gim]*\s*$+ end=+/[gim]*\s*[;.,)\]}]+me=e-1 contains=@htmlPreproc,jsxRegExpMeta,jsxEscape oneline " see the JSX parser syn match jsxInteger /\<\d\+\>\|\<0[xX][0-9a-fA-F]\+\>/ syn match jsxFloat /\<\%(\d\+\.\d\+\|\d\+\.\|\.\d\+\)\%([eE][+-]\=\d\+\)\=\>/ syn match jsxFloatX /\<\d\+\%([eE][+-]\=\d\+\)\>/ syn keyword jsxSpecialNumbers NaN Infinity syn keyword jsxConditional if else switch syn keyword jsxRepeat while for do syn keyword jsxBranch break continue syn keyword jsxOperator new delete in instanceof typeof as __noconvert__ syn keyword jsxType Array boolean Boolean Date number Number Map int Object string String RegExp JSON Nullable variant void JSX Transferable ArrayBuffer ArrayBufferView Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array DataView syn keyword jsxException Error EvalError RangeError ReferenceError SyntaxError TypeError URIError syn keyword jsxStatement return var const yield syn keyword jsxBoolean true false syn keyword jsxNull null syn keyword jsxIdentifier this super __FILE__ __LINE__ syn keyword jsxLabel case default syn keyword jsxException try catch finally throw syn keyword jsxClass class interface mixin syn keyword jsxModifiers final override native __fake__ extends abstract static implements __readonly__ __pure__ syn keyword jsxImport import from into syn keyword jsxEntryPoint _Main _Test " reserved by ECMA-262 but not used in JSX syn keyword jsxReserved enum export let private public protected arguments with " reserved by Google Closure Compiler " defined in src/com/google/javascript/rhino/TokenStream.java syn keyword jsxGCCReserved byte char double float long short goto synchronized throws transient volatile syn keyword jsxDebug debugger assert log " jsxdoc syn region jsxDocComment start="/\*\*" end="\*/" contains=@Spell,jsxDocTags,jsxCommentTodo syn match jsxDocTags contained /@\(param\|return\)\>/ syn match jsxDocTags contained /@\(see\|deprecated\|since\)\>/ syn match jsxDocTags contained /@\(author\|version\)\>/ if exists("jsx_fold") syn match jsxFunction "\" syn region jsxFunctionFold start="\.*[^};]$" end="^\z1}.*$" transparent fold keepend syn sync match jsxSync grouphere jsxFunctionFold "\" syn sync match jsxSync grouphere NONE "^}" setlocal foldmethod=syntax setlocal foldtext=getline(v:foldstart) else syn keyword jsxFunction function syn match jsxBraces "[{}\[\]]" syn match jsxParens "[()]" endif syn sync fromstart syn sync maxlines=100 if main_syntax == "jsx" syn sync ccomment jsxComment endif " Define the default highlighting. " For version 5.7 and earlier: only when not done already " For version 5.8 and later: only when an item doesn't have highlighting yet if version >= 508 || !exists("did_jsx_syn_inits") if version < 508 let did_jsx_syn_inits = 1 command -nargs=+ HiLink hi link else command -nargs=+ HiLink hi def link endif HiLink jsxDocComment Comment HiLink jsxDocTags Special HiLink jsxComment Comment HiLink jsxLineComment Comment HiLink jsxCommentTodo Todo HiLink jsxEscape Special HiLink jsxString String HiLink jsxInteger Number HiLink jsxFloat Number HiLink jsxFloatX Number HiLink jsxSpecialNumbers Number HiLink jsxConditional Conditional HiLink jsxRepeat Repeat HiLink jsxBranch Conditional HiLink jsxOperator Operator HiLink jsxType Type HiLink jsxStatement Statement HiLink jsxFunction Function HiLink jsxBraces Function HiLink jsxNull Constant HiLink jsxBoolean Boolean HiLink jsxRegExp String HiLink jsxIdentifier Identifier HiLink jsxLabel Label HiLink jsxException Exception HiLink jsxClass Structure HiLink jsxModifiers Structure HiLink jsxImport Special HiLink jsxEntryPoint Keyword HiLink jsxReserved Error HiLink jsxGCCReserved Error HiLink jsxDebug Debug delcommand HiLink endif let b:current_syntax = 'jsx' if main_syntax == 'jsx' unlet main_syntax endif " vim: ts=8 " vim: noexpandtab