From a4f98d2a9e9dfeb110d4a910ea177432fec88b81 Mon Sep 17 00:00:00 2001 From: Adam Stankiewicz Date: Sat, 12 Mar 2022 15:46:18 +0100 Subject: Update --- indent/julia.vim | 6 +++--- indent/svelte.vim | 16 +++++++++++++++- 2 files changed, 18 insertions(+), 4 deletions(-) (limited to 'indent') diff --git a/indent/julia.vim b/indent/julia.vim index 9f7c4dd0..fabef022 100644 --- a/indent/julia.vim +++ b/indent/julia.vim @@ -92,7 +92,7 @@ function GetJuliaNestingStruct(lnum, ...) let i = JuliaMatch(a:lnum, line, '\', s) if i >= 0 && i == fb let s = i+1 - if len(blocks_stack) > 0 && blocks_stack[-1] =~# '\<\%(else\)\=if\>' + if len(blocks_stack) > 0 && blocks_stack[-1] =~# '\<\%(\%(else\)\=if\|catch\)\>' let blocks_stack[-1] = 'else' else call add(blocks_stack, 'else') @@ -110,7 +110,7 @@ function GetJuliaNestingStruct(lnum, ...) let i = JuliaMatch(a:lnum, line, '\', s) if i >= 0 && i == fb let s = i+1 - if len(blocks_stack) > 0 && blocks_stack[-1] == 'try' + if len(blocks_stack) > 0 && blocks_stack[-1] =~# '\<\%(try\|finally\)\>' let blocks_stack[-1] = 'catch' else call add(blocks_stack, 'catch') @@ -121,7 +121,7 @@ function GetJuliaNestingStruct(lnum, ...) let i = JuliaMatch(a:lnum, line, '\', s) if i >= 0 && i == fb let s = i+1 - if len(blocks_stack) > 0 && (blocks_stack[-1] == 'try' || blocks_stack[-1] == 'catch') + if len(blocks_stack) > 0 && blocks_stack[-1] =~# '\<\%(try\|catch\|else\)\>' let blocks_stack[-1] = 'finally' else call add(blocks_stack, 'finally') diff --git a/indent/svelte.vim b/indent/svelte.vim index 147df65b..bae715df 100644 --- a/indent/svelte.vim +++ b/indent/svelte.vim @@ -119,7 +119,7 @@ function! GetSvelteIndent() let cursyns = s:SynsSOL(v:lnum) let cursyn = get(cursyns, 0, '') - if s:SynHTML(cursyn) + if s:SynHTML(cursyn) && !s:IsMultipleLineSvelteExpression(curline, cursyns) call s:Log('syntax: html') let ind = XmlIndentGet(v:lnum, 0) if prevline =~? s:empty_tag @@ -233,6 +233,20 @@ function! s:SynHTML(syn) return a:syn ==? 'htmlSvelteTemplate' endfunction +function! s:IsMultipleLineSvelteExpression(curline, syns) + if a:curline =~ '^\s*{.*}\s*$' + return 0 + endif + + for syn in a:syns + if syn ==? 'svelteExpression' + return 1 + endif + endfor + + return 0 +endfunction + function! s:SynBlockBody(syn) return a:syn ==? 'svelteBlockBody' endfunction -- cgit v1.2.3