diff options
Diffstat (limited to 'syntax/scala.vim')
-rw-r--r-- | syntax/scala.vim | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/syntax/scala.vim b/syntax/scala.vim index a61a60af..b9df50f3 100644 --- a/syntax/scala.vim +++ b/syntax/scala.vim @@ -4,8 +4,19 @@ elseif exists("b:current_syntax") finish endif +scriptencoding utf-8 + let b:current_syntax = "scala" +function! s:ContainedGroup() + try + silent syn list @scala + return '@scala' + catch /E392/ + return 'TOP' + endtry +endfunction + syn case match syn sync minlines=200 maxlines=1000 @@ -17,7 +28,7 @@ syn keyword scalaKeyword val nextgroup=scalaNameDefinition,scalaQuasiQuotes skip syn keyword scalaKeyword def var nextgroup=scalaNameDefinition skipwhite hi link scalaKeyword Keyword -syn region scalaBlock start=/{/ end=/}/ contains=TOP fold +exe 'syn region scalaBlock start=/{/ end=/}/ contains=' . s:ContainedGroup() . ' fold' syn keyword scalaAkkaSpecialWord when goto using startWith initialize onTransition stay become unbecome hi link scalaAkkaSpecialWord PreProc @@ -103,13 +114,13 @@ hi link scalaIString String hi link scalaTripleIString String syn match scalaInterpolation /\$[a-zA-Z0-9_$]\+/ contained -syn region scalaInterpolationB matchgroup=scalaInterpolation start=/\${/ end=/}/ contained contains=TOP +exe 'syn region scalaInterpolationB matchgroup=scalaInterpolation start=/\${/ end=/}/ contained contains=' . s:ContainedGroup() hi link scalaInterpolation Function hi link scalaInterpolationB Normal syn region scalaFString matchgroup=Special start=/f"/ skip=/\\"/ end=/"/ contains=scalaFInterpolation,scalaFInterpolationB,scalaEscapedChar,scalaUnicodeChar syn match scalaFInterpolation /\$[a-zA-Z0-9_$]\+\(%[-A-Za-z0-9\.]\+\)\?/ contained -syn region scalaFInterpolationB matchgroup=scalaFInterpolation start=/${/ end=/}\(%[-A-Za-z0-9\.]\+\)\?/ contained contains=TOP +exe 'syn region scalaFInterpolationB matchgroup=scalaFInterpolation start=/${/ end=/}\(%[-A-Za-z0-9\.]\+\)\?/ contained contains=' . s:ContainedGroup() hi link scalaFString String hi link scalaFInterpolation Function hi link scalaFInterpolationB Normal |