Skip to content

Commit 671932d

Browse files
committed
Fix indentation of multiple-line template string
1 parent 1927505 commit 671932d

File tree

1 file changed

+22
-1
lines changed

1 file changed

+22
-1
lines changed

indent/svelte.vim

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,14 @@ function! GetSvelteIndent()
115115
let cursyns = s:SynsSOL(v:lnum)
116116
let cursyn = get(cursyns, 0, '')
117117

118-
if s:SynHTML(cursyn) && !s:IsMultipleLineSvelteExpression(curline, cursyns)
118+
if s:IsMultipleLineTemplateString(curline, cursyns)
119+
call s:Log('current line is multiline template string expression')
120+
if !s:IsMultipleLineTemplateString(prevline, prevsyns)
121+
let ind = indent(v:lnum - 1) + &sw
122+
else
123+
let ind = indent(v:lnum - 1)
124+
endif
125+
elseif s:SynHTML(cursyn) && !s:IsMultipleLineSvelteExpression(curline, cursyns)
119126
call s:Log('syntax: html')
120127
let ind = XmlIndentGet(v:lnum, 0)
121128
if prevline =~? s:empty_tag
@@ -243,6 +250,20 @@ function! s:IsMultipleLineSvelteExpression(curline, syns)
243250
return 0
244251
endfunction
245252

253+
function! s:IsMultipleLineTemplateString(curline, syns)
254+
if a:curline =~ '^\s*{.*}\s*$'
255+
return 0
256+
endif
257+
258+
for syn in a:syns
259+
if syn ==? 'javaScriptTemplateString'
260+
return 1
261+
endif
262+
endfor
263+
264+
return 0
265+
endfunction
266+
246267
function! s:SynBlockBody(syn)
247268
return a:syn ==? 'svelteBlockBody'
248269
endfunction

0 commit comments

Comments
 (0)