Skip to content

Commit 2ef9a9c

Browse files
authored
refactoring block conditions (#695)
1 parent 01f7804 commit 2ef9a9c

File tree

1 file changed

+11
-15
lines changed

1 file changed

+11
-15
lines changed

indent/javascript.vim

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
" Language: Javascript
33
" Maintainer: Chris Paul ( https://github.com/bounceme )
44
" URL: https://github.com/pangloss/vim-javascript
5-
" Last Change: Octember 31, 2016
5+
" Last Change: November 5, 2016
66

77
" Only load this indent file when no other was loaded.
88
if exists('b:did_indent')
@@ -137,7 +137,7 @@ function s:IsBlock(...)
137137
let l:ln = get(a:000,0,line('.'))
138138
if search('\S','bW')
139139
let char = s:token()
140-
let syn = synIDattr(synID(line('.'),col('.')-(char == '{'),0),'name')
140+
let syn = char =~ '[{>/]' || l:ln != line('.') ? synIDattr(synID(line('.'),col('.')-(char == '{'),0),'name') : ''
141141
if syn =~? '\%(xml\|jsx\)'
142142
return char != '{'
143143
elseif syn =~? 'comment'
@@ -241,20 +241,16 @@ function GetJavascriptIndent()
241241
let num = b:js_cache[1]
242242

243243
let [s:W, pline, isOp, stmt, bL, switch_offset] = [s:sw(), s:Trim(l:lnum),0,0,0,0]
244-
if num
245-
if s:current_char() == '{'
246-
if search(')\_s*\%#','bW')
247-
let stmt = 1
248-
if s:GetPair('(', ')', 'bW', s:skip_expr, 100) > 0 && s:previous_token() ==# 'switch'
249-
let switch_offset = &cino !~ ':' || !has('float') ? s:W :
250-
\ float2nr(str2float(matchstr(&cino,'.*:\zs[-0-9.]*')) * (&cino =~# '.*:[^,]*s' ? s:W : 1))
251-
if l:line =~# '^' . s:expr_case
252-
return indent(num) + switch_offset
253-
endif
254-
let stmt = pline !~# s:expr_case . '$'
244+
if num
245+
if s:current_char() == '{' && s:IsBlock()
246+
let stmt = 1
247+
if s:current_char() == ')' && s:GetPair('(', ')', 'bW', s:skip_expr, 100) > 0 && s:previous_token() ==# 'switch'
248+
let switch_offset = &cino !~ ':' || !has('float') ? s:W :
249+
\ float2nr(str2float(matchstr(&cino,'.*:\zs[-0-9.]*')) * (&cino =~# '.*:[^,]*s' ? s:W : 1))
250+
if l:line =~# '^' . s:expr_case
251+
return indent(num) + switch_offset
255252
endif
256-
elseif s:IsBlock()
257-
let stmt = 1
253+
let stmt = pline !~# s:expr_case . '$'
258254
endif
259255
endif
260256
else

0 commit comments

Comments
 (0)