summaryrefslogtreecommitdiffstats
path: root/indent
diff options
context:
space:
mode:
authorAdam Stankiewicz <sheerun@sher.pl>2020-11-02 18:19:06 +0100
committerAdam Stankiewicz <sheerun@sher.pl>2020-11-02 18:19:15 +0100
commit0738ad654d4f2f89b77dcb4197011a293e4dfcf3 (patch)
tree25de763b5adbc53b997085bcf8f49d6b09a45cd0 /indent
parent05e21a9e252b283b2d71568ad3b671d7f28fe0bc (diff)
downloadvim-polyglot-0738ad654d4f2f89b77dcb4197011a293e4dfcf3.tar.gz
vim-polyglot-0738ad654d4f2f89b77dcb4197011a293e4dfcf3.zip
Update
Diffstat (limited to 'indent')
-rw-r--r--indent/typescript.vim80
1 files changed, 1 insertions, 79 deletions
diff --git a/indent/typescript.vim b/indent/typescript.vim
index fc9a29e1..0bc143c3 100644
--- a/indent/typescript.vim
+++ b/indent/typescript.vim
@@ -19,7 +19,6 @@ setlocal nosmartindent
" Now, set up our indentation expression and keys that trigger it.
setlocal indentexpr=GetTypescriptIndent()
-setlocal formatexpr=Fixedgq(v:lnum,v:count)
setlocal indentkeys=0{,0},0),0],0\,,!^F,o,O,e
" Only define the function once.
@@ -41,12 +40,6 @@ let s:syng_strcom = 'string\|regex\|comment\c'
" Regex of syntax group names that are strings.
let s:syng_string = 'regex\c'
-" Regex of syntax group names that are strings or documentation.
-let s:syng_multiline = 'comment\c'
-
-" Regex of syntax group names that are line comment.
-let s:syng_linecom = 'linecomment\c'
-
" Expression used to check whether we should skip a match with searchpair().
let s:skip_expr = "synIDattr(synID(line('.'),col('.'),1),'name') =~ '".s:syng_strcom."'"
@@ -85,16 +78,6 @@ function s:IsInString(lnum, col)
return synIDattr(synID(a:lnum, a:col, 1), 'name') =~ s:syng_string
endfunction
-" Check if the character at lnum:col is inside a multi-line comment.
-function s:IsInMultilineComment(lnum, col)
- return !s:IsLineComment(a:lnum, a:col) && synIDattr(synID(a:lnum, a:col, 1), 'name') =~ s:syng_multiline
-endfunction
-
-" Check if the character at lnum:col is a line comment.
-function s:IsLineComment(lnum, col)
- return synIDattr(synID(a:lnum, a:col, 1), 'name') =~ s:syng_linecom
-endfunction
-
" Find line above 'lnum' that isn't empty, in a comment, or in a string.
function s:PrevNonBlankNonString(lnum)
let in_block = 0
@@ -356,7 +339,7 @@ function GetTypescriptIndent()
endif
" If we are in a multi-line comment, cindent does the right thing.
- if s:IsInMultilineComment(v:lnum, 1) && !s:IsLineComment(v:lnum, 1)
+ if yats#IsInMultilineComment(v:lnum, 1) && !yats#IsLineComment(v:lnum, 1)
return cindent(v:lnum)
endif
@@ -442,64 +425,3 @@ endfunction
let &cpo = s:cpo_save
unlet s:cpo_save
-
-function! Fixedgq(lnum, count)
- let l:tw = &tw ? &tw : 80;
-
- let l:count = a:count
- let l:first_char = indent(a:lnum) + 1
-
- if mode() == 'i' " gq was not pressed, but tw was set
- return 1
- endif
-
- " This gq is only meant to do code with strings, not comments
- if s:IsLineComment(a:lnum, l:first_char) || s:IsInMultilineComment(a:lnum, l:first_char)
- return 1
- endif
-
- if len(getline(a:lnum)) < l:tw && l:count == 1 " No need for gq
- return 1
- endif
-
- " Put all the lines on one line and do normal spliting after that
- if l:count > 1
- while l:count > 1
- let l:count -= 1
- normal! J
- endwhile
- endif
-
- let l:winview = winsaveview()
-
- call cursor(a:lnum, l:tw + 1)
- let orig_breakpoint = searchpairpos(' ', '', '\.', 'bcW', '', a:lnum)
- call cursor(a:lnum, l:tw + 1)
- let breakpoint = searchpairpos(' ', '', '\.', 'bcW', s:skip_expr, a:lnum)
-
- " No need for special treatment, normal gq handles edgecases better
- if breakpoint[1] == orig_breakpoint[1]
- call winrestview(l:winview)
- return 1
- endif
-
- " Try breaking after string
- if breakpoint[1] <= indent(a:lnum)
- call cursor(a:lnum, l:tw + 1)
- let breakpoint = searchpairpos('\.', '', ' ', 'cW', s:skip_expr, a:lnum)
- endif
-
-
- if breakpoint[1] != 0
- call feedkeys("r\<CR>")
- else
- let l:count = l:count - 1
- endif
-
- " run gq on new lines
- if l:count == 1
- call feedkeys("gqq")
- endif
-
- return 0
-endfunction