summaryrefslogtreecommitdiffstats
path: root/autoload/jsx_pretty/syntax.vim
diff options
context:
space:
mode:
Diffstat (limited to 'autoload/jsx_pretty/syntax.vim')
-rw-r--r--autoload/jsx_pretty/syntax.vim218
1 files changed, 0 insertions, 218 deletions
diff --git a/autoload/jsx_pretty/syntax.vim b/autoload/jsx_pretty/syntax.vim
deleted file mode 100644
index eac1f92a..00000000
--- a/autoload/jsx_pretty/syntax.vim
+++ /dev/null
@@ -1,218 +0,0 @@
-if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'jsx') != -1
- finish
-endif
-
-function! jsx_pretty#syntax#highlight()
-
- let s:highlight_close_tag = get(g:, 'vim_jsx_pretty_highlight_close_tag', 0)
-
- " <tag id="sample">
- " ~~~~~~~~~~~~~~~~~
- " and self close tag
- " <tag id="sample" />
- " ~~~~~~~~~~~~~~~~~~~
- syntax region jsxTag
- \ start=+<+
- \ matchgroup=jsxOpenPunct
- \ end=+>+
- \ matchgroup=NONE
- \ end=+\(/\_s*>\)\@=+
- \ contained
- \ contains=jsxOpenTag,jsxEscapeJs,jsxAttrib,jsComment,@javascriptComments,javaScriptLineComment,javaScriptComment,typescriptLineComment,typescriptComment,jsxSpreadOperator
- \ keepend
- \ extend
-
- " <tag></tag>
- " ~~~~~~~~~~~
- " and fragment
- " <></>
- " ~~~~~
- " and self close tag
- " <tag />
- " ~~~~~~~
- syntax region jsxElement
- \ start=+<\_s*\(>\|\${\|\z(\<[-:_\.\$0-9A-Za-z]\+\>\)\)+
- \ end=+/\_s*>+
- \ end=+<\_s*/\_s*\z1\_s*>+
- \ contains=jsxElement,jsxEscapeJs,jsxTag,jsxComment,jsxCloseString,jsxCloseTag,@Spell
- \ keepend
- \ extend
- \ contained
- \ fold
-
- " detect jsx region
- syntax region jsxRegion
- \ start=+\(\(\_[([,?:=+\-*/<>{}]\|&&\|||\|=>\|\<return\|\<default\|\<await\|\<yield\)\_s*\)\@<=<\_s*\(>\|\z(\(script\)\@!\<[_\$A-Za-z][-:_\.\$0-9A-Za-z]*\>\)\(\_s*\([-+*)\]}&|?]\|/\([/*]\|\_s*>\)\@!\)\)\@!\)+
- \ end=++
- \ contains=jsxElement
-
- " <tag key={this.props.key}>
- " ~~~~~~~~~~~~~~~~
- syntax region jsxEscapeJs
- \ start=+{+
- \ end=++
- \ extend
- \ contained
- \ contains=jsBlock,javascriptBlock,javaScriptBlockBuildIn,typescriptBlock
-
- " <tag key={this.props.key}>
- " ~~~~
- " and fragment start tag
- " <>
- " ~~
- exe 'syntax region jsxOpenTag
- \ matchgroup=jsxOpenPunct
- \ start=+<+
- \ end=+>+
- \ matchgroup=NONE
- \ end=+\>+
- \ contained
- \ contains=jsxTagName
- \ nextgroup=jsxAttrib
- \ skipwhite
- \ skipempty ' .(s:highlight_close_tag ? 'transparent' : '')
-
- " <foo.bar>
- " ~
- syntax match jsxDot +\.+ contained display
-
- " <foo:bar>
- " ~
- syntax match jsxNamespace +:+ contained display
-
- " <tag id="sample">
- " ~
- syntax match jsxEqual +=+ contained display nextgroup=jsxString,jsxEscapeJs,jsxRegion skipwhite
-
- " <tag />
- " ~~
- syntax match jsxCloseString +/\_s*>+ contained
-
- " </tag>
- " ~~~~~~
- " and fragment close tag
- " </>
- " ~~~
- syntax region jsxCloseTag
- \ matchgroup=jsxClosePunct
- \ start=+<\_s*/+
- \ end=+>+
- \ contained
- \ contains=jsxTagName
-
- " <tag key={this.props.key}>
- " ~~~
- syntax match jsxAttrib
- \ +\<[-A-Za-z_][-:_\$0-9A-Za-z]*\>+
- \ contained
- \ nextgroup=jsxEqual
- \ skipwhite
- \ skipempty
- \ contains=jsxAttribKeyword
- \ display
-
- " <MyComponent ...>
- " ~~~~~~~~~~~
- " NOT
- " <someCamel ...>
- " ~~~~~
- exe 'syntax match jsxComponentName
- \ +\<[A-Z][\$0-9A-Za-z]\+\>+
- \ contained
- \ display ' .(s:highlight_close_tag ? 'transparent' : '')
-
- " <tag key={this.props.key}>
- " ~~~
- exe 'syntax match jsxTagName
- \ +\<[-:_\.\$0-9A-Za-z]\+\>+
- \ contained
- \ contains=jsxComponentName,jsxDot,jsxNamespace
- \ nextgroup=jsxAttrib
- \ skipempty
- \ skipwhite
- \ display ' .(s:highlight_close_tag ? 'transparent' : '')
-
- " <tag id="sample">
- " ~~~~~~~~
- " and
- " <tag id='sample'>
- " ~~~~~~~~
- syntax region jsxString start=+\z(["']\)+ skip=+\\\%(\z1\|$\)+ end=+\z1+ contained contains=@Spell display
-
- let s:tags = get(g:, 'vim_jsx_pretty_template_tags', ['html', 'raw'])
- let s:enable_tagged_jsx = !empty(s:tags)
-
- " add support to JSX inside the tagged template string
- " https://github.com/developit/htm
- if s:enable_tagged_jsx
- exe 'syntax region jsxTaggedRegion
- \ start=+\%('. join(s:tags, '\|') .'\)\@<=`+ms=s+1
- \ end=+`+me=e-1
- \ extend
- \ contained
- \ containedin=jsTemplateString,javascriptTemplate,javaScriptStringT,typescriptStringB
- \ contains=jsxElement'
-
- syntax region jsxEscapeJs
- \ start=+\${+
- \ end=++
- \ extend
- \ contained
- \ contains=jsTemplateExpression,javascriptTemplateSubstitution,javaScriptEmbed,typescriptInterpolation
-
- syntax region jsxOpenTag
- \ matchgroup=jsxOpenPunct
- \ start=+<\%(\${\)\@=+
- \ matchgroup=NONE
- \ end=++
- \ contained
- \ contains=jsxEscapeJs
- \ nextgroup=jsxAttrib,jsxSpreadOperator
- \ skipwhite
- \ skipempty
-
- syntax keyword jsxAttribKeyword class contained display
-
- syntax match jsxSpreadOperator +\.\.\.+ contained display nextgroup=jsxEscapeJs skipwhite
-
- syntax match jsxCloseTag +<//>+ display
-
- syntax match jsxComment +<!--\_.\{-}-->+ display
- endif
-
- " Highlight the tag name
- highlight def link jsxTag Function
- highlight def link jsxTagName Identifier
- highlight def link jsxComponentName Function
-
- highlight def link jsxAttrib Type
- highlight def link jsxAttribKeyword jsxAttrib
- highlight def link jsxEqual Operator
- highlight def link jsxString String
- highlight def link jsxDot Operator
- highlight def link jsxNamespace Operator
-
- " Highlight the jsxCloseString (i.e. />), jsxPunct (i.e. <,>) and jsxCloseTag (i.e. <//>)
- highlight def link jsxCloseString Comment
- highlight def link jsxPunct jsxCloseString
- highlight def link jsxOpenPunct jsxPunct
- highlight def link jsxClosePunct jsxPunct
- highlight def link jsxCloseTag jsxCloseString
-
- highlight def link jsxComment Comment
- highlight def link jsxSpreadOperator Operator
-
- if s:highlight_close_tag
- highlight! def link jsxOpenPunct jsxTag
- highlight! def link jsxCloseString Identifier
- endif
-
- let s:vim_jsx_pretty_colorful_config = get(g:, 'vim_jsx_pretty_colorful_config', 0)
-
- if s:vim_jsx_pretty_colorful_config == 1
- highlight def link jsObjectKey Label
- highlight def link jsArrowFuncArgs Type
- highlight def link jsFuncArgs Type
- endif
-
-endfunction