|
55 | 55 | " matches before pos. |
56 | 56 | let s:z = has('patch-7.4.984') ? 'z' : '' |
57 | 57 |
|
58 | | -let s:syng_com = 'comment\|doc' |
59 | 58 | " Expression used to check whether we should skip a match with searchpair(). |
60 | 59 | let s:skip_expr = "s:SynAt(line('.'),col('.')) =~? b:syng_strcom" |
| 60 | +let s:in_comm = s:skip_expr[:-14] . "'comment\\|doc'" |
61 | 61 |
|
62 | 62 | let s:rel = has('reltime') |
63 | 63 | " searchpair() wrapper |
@@ -162,9 +162,8 @@ endfunction |
162 | 162 | function s:PreviousToken() |
163 | 163 | let l:col = col('.') |
164 | 164 | if search('\m\k\{1,}\|\S','ebW') |
165 | | - if (strpart(getline('.'),col('.')-2,2) == '*/' || line('.') != a:firstline && |
166 | | - \ getline('.')[:col('.')-1] =~ '\/\/') && s:SynAt(line('.'),col('.')) =~? s:syng_com |
167 | | - if s:SearchLoop('\S\ze\_s*\/[/*]','bW',"s:SynAt(line('.'),col('.')) =~? s:syng_com") |
| 165 | + if search('\m\*\%#\/\|\/\/\%<'.a:firstline.'l','nbW',line('.')) && eval(s:in_comm) |
| 166 | + if s:SearchLoop('\S\ze\_s*\/[/*]','bW',s:in_comm) |
168 | 167 | return s:Token() |
169 | 168 | endif |
170 | 169 | call cursor(a:firstline, l:col) |
@@ -325,7 +324,7 @@ function GetJavascriptIndent() |
325 | 324 | let s:stack = [''] + map(synstack(v:lnum,1),"synIDattr(v:val,'name')") |
326 | 325 |
|
327 | 326 | " start with strings,comments,etc. |
328 | | - if s:stack[-1] =~? s:syng_com |
| 327 | + if s:stack[-1] =~? 'comment\|doc' |
329 | 328 | if l:line =~ '^\s*\*' |
330 | 329 | return cindent(v:lnum) |
331 | 330 | elseif l:line !~ '^\s*\/[/*]' |
|
0 commit comments