diff options
Diffstat (limited to 'autoload/jsx_pretty')
| -rw-r--r-- | autoload/jsx_pretty/indent.vim | 6 | ||||
| -rw-r--r-- | autoload/jsx_pretty/syntax.vim | 218 | 
2 files changed, 5 insertions, 219 deletions
| diff --git a/autoload/jsx_pretty/indent.vim b/autoload/jsx_pretty/indent.vim index 428c366d..22ede621 100644 --- a/autoload/jsx_pretty/indent.vim +++ b/autoload/jsx_pretty/indent.vim @@ -90,6 +90,9 @@ function! jsx_pretty#indent#get(js_indent)        else          return prev_ind + s:sw()        endif +    elseif !s:syn_xmlish(prev_syn_sol) && !s:syn_js_comment(prev_syn_sol) && s:syn_jsx_attrib(current_syn) +      " For #79 +      return prev_ind + s:sw()      " {      "   <div></div>      " ##} <-- @@ -176,7 +179,8 @@ function! jsx_pretty#indent#get(js_indent)          return prev_ind + s:sw()        endif      endif -  elseif s:syn_jsx_escapejs(current_syn_eol) +  elseif line =~ '^`' && s:syn_jsx_escapejs(current_syn_eol) +    " For `} of template syntax      let pair_line = searchpair('{', '', '}', 'bW')      return indent(pair_line)    elseif line =~ '^/[/*]' " js comment in jsx tag 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 | 
