diff options
author | Adam Stankiewicz <sheerun@sher.pl> | 2019-09-06 16:47:37 +0200 |
---|---|---|
committer | Adam Stankiewicz <sheerun@sher.pl> | 2019-09-06 16:47:37 +0200 |
commit | fbc2af9e820d85e17cd08023f4dcc66545735d58 (patch) | |
tree | 90888d9d5776591951b2d36ae1362bf8b0c37ca2 /after/indent | |
parent | d4f252565ad7098658f91bcbdf33dcce697bfb63 (diff) | |
download | vim-polyglot-4.0.2.tar.gz vim-polyglot-4.0.2.zip |
Remove styled components, fixes #432v4.0.2
Diffstat (limited to 'after/indent')
-rw-r--r-- | after/indent/javascript.vim | 171 | ||||
-rw-r--r-- | after/indent/jsx.vim | 3 | ||||
-rw-r--r-- | after/indent/typescript.vim | 3 |
3 files changed, 0 insertions, 177 deletions
diff --git a/after/indent/javascript.vim b/after/indent/javascript.vim index 90a94349..ea149c78 100644 --- a/after/indent/javascript.vim +++ b/after/indent/javascript.vim @@ -29,174 +29,3 @@ endfunction let &cpo = s:keepcpo unlet s:keepcpo endif -if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'styled-components') == -1 -" Vim syntax file -" Language: styled-components (js/ts) -" Maintainer: Karl Fleischmann <fleischmann.karl@gmail.com> -" URL: https://github.com/styled-components/vim-styled-components - -" initialize variable to check, if the indentation expression is run -" multiple times in a row, which indicates an infinite recursion -let s:is_recursion = 0 - -" store current indentexpr for later -let b:js_ts_indent=&indentexpr - -" set indentexpr for this filetype (styled-components) -setlocal indentexpr=GetStyledIndent() - -" add the following keys to trigger reindenting, when in insert mode -" - *; - Indent and insert on press of ';' key. -" - *<:> - Indent and insert on press of ':' key. -set indentkeys+=*;,*<:>,*<Return> - -fu! s:GetSyntaxNames(lnum, cnum) - return map(synstack(a:lnum, a:cnum), 'synIDattr(v:val, "name")') -endfu - -" re-implement SynSOL of vim-jsx -" TODO: add dependency to the readme and remove duplicate implementation -fu! s:SynSOL(lnum) - return s:GetSyntaxNames(a:lnum, 1) -endfu - -" re-implement SynEOL of vim-jsx -" TODO: add dependency to the readme and remove duplicate implementation -fu! s:SynEOL(lnum, offset) - let l:lnum = prevnonblank(a:lnum) - let l:col = strlen(getline(l:lnum)) - - return s:GetSyntaxNames(l:lnum, l:col + a:offset) -endfu - - -"" Return whether the current line is a jsTemplateString -fu! s:IsStyledDefinition(lnum) - " iterate through all syntax items in the given line - for item in s:SynSOL(a:lnum) - " if syntax-item is a jsTemplateString return 1 - true - " `==#` is a match case comparison of the item - if item ==# 'styledDefinition' - return 1 - endif - endfor - - " fallback to 0 - false - return 0 -endfu - -"" Count occurences of `str` at the beginning of the given `lnum` line -fu! s:CountOccurencesInSOL(lnum, str) - let l:occurence = 0 - - " iterate through all items in the given line - for item in s:SynSOL(a:lnum) - " if the syntax-item equals the given str increment the counter - " `==?` is a case isensitive equal operation - if item ==? a:str - let l:occurence += 1 - endif - endfor - - " return the accumulated count of occurences - return l:occurence -endfu - -"" Count occurences of `str` at the end of the given `lnum` line -fu! s:CountOccurencesInEOL(lnum, str, offset) - let l:occurence = 0 - - " iterate through all items in the given line - for item in s:SynEOL(a:lnum, a:offset) - " if the syntax-item equals the given str increment the counter - " `==?` is a case insensitive equal operation - if item == a:str - let l:occurence += 1 - endif - endfor - - " return the accumulated count of occurences - return l:occurence -endfu - -"" Get the indentation of the current line -fu! GetStyledIndent() - if s:IsStyledDefinition(v:lnum) - let l:baseIndent = 0 - - " find last non-styled line - let l:cnum = v:lnum - while s:IsStyledDefinition(l:cnum) - let l:cnum -= 1 - endwhile - - " get indentation of the last non-styled line as base indentation - let l:baseIndent = indent(l:cnum) - - " incrementally build indentation based on current indentation - " - one shiftwidth for the styled definition region - " - one shiftwidth per open nested definition region - let l:styledIndent = &sw - let l:styledIndent += min([ - \ s:CountOccurencesInSOL(v:lnum, 'styledNestedRegion'), - \ s:CountOccurencesInEOL(v:lnum, 'styledNestedRegion', 0) - \ ]) * &sw - - " decrease indentation by one shiftwidth, if the styled definition - " region ends on the current line - " - either directly via styled definition region, or - " - if the very last - if s:CountOccurencesInEOL(v:lnum, 'styledDefinition', 1) == 0 - let l:styledIndent -= &sw - endif - - " return the base indentation - " (for nested styles inside classes/objects/etc.) plus the actual - " indentation inside the styled definition region - return l:baseIndent + l:styledIndent - elseif len(b:js_ts_indent) - let l:result = 0 - let l:offset = 0 - - " increase indentation by one shiftwidth, if the last line ended on a - " styledXmlRegion and this line does not continue with it - " this is a fix for an incorrectly indented xml prop after a - " glamor-styled styledXmlRegion - if s:CountOccurencesInEOL(v:lnum-1, 'styledXmlRegion', 0) == 1 && - \ s:CountOccurencesInSOL(v:lnum, 'styledXmlRegion') == 0 - let l:offset = &sw - endif - - " make sure `GetStyledIndent` and `GetJsxIndent` don't infinitely - " recurse by incrementing a counter variable, before evaluating the - " stored indent expression - if s:is_recursion == 0 - let s:is_recursion = 1 - let l:result = eval(b:js_ts_indent) - endif - - " `is_recursion` being 0 at this point indicates, that - " `eval(b:js_ts_indent)` did itself evaluate it's stored indentexpr - " and thus it can be assumed, that the current line should be - " indented as JS - if s:is_recursion == 0 - " use one of `GetJavascriptIndent` or `GetJsIndent` if existing - " fallback to cindent, if not - if exists('*GetJavascriptIndent') - let l:result = GetJavascriptIndent() - elseif exists('*GetJsIndent') - let l:result = GetJsIndent() - else - let l:result = cindent(v:lnum) - endif - endif - - " reset `is_recursion` counter and return the indentation value - let s:is_recursion = 0 - return l:result + l:offset - endif - - " if all else fails indent according to C-syntax - return cindent(v:lnum) -endfu -endif diff --git a/after/indent/jsx.vim b/after/indent/jsx.vim deleted file mode 100644 index ac4ceabd..00000000 --- a/after/indent/jsx.vim +++ /dev/null @@ -1,3 +0,0 @@ -if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'styled-components') == -1 -runtime! indent/javascript.vim -endif diff --git a/after/indent/typescript.vim b/after/indent/typescript.vim index c7fbc225..f5e6cb59 100644 --- a/after/indent/typescript.vim +++ b/after/indent/typescript.vim @@ -30,6 +30,3 @@ endfunction let &cpo = s:keepcpo unlet s:keepcpo endif -if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'styled-components') == -1 -runtime! indent/javascript.vim -endif |