diff --git a/syntax/cs.vim b/syntax/cs.vim index 07740a5..c01f51c 100644 --- a/syntax/cs.vim +++ b/syntax/cs.vim @@ -184,6 +184,7 @@ syn match csUnicodeNumber +\\U00\x\{6}+ contained contains=csUnicodeSpecifier di syn match csUnicodeSpecifier +\\[uUx]+ contained display syn region csString matchgroup=csQuote start=+"+ end=+"+ end=+$+ extend contains=csSpecialChar,csSpecialError,csUnicodeNumber,@Spell +syn region csRawString matchgroup=csQuote start=+\z("""\+\)+ end=+\z1+ syn match csCharacter "'[^']*'" contains=csSpecialChar,csSpecialCharError,csUnicodeNumber display syn match csCharacter "'\\''" contains=csSpecialChar display syn match csCharacter "'[^\\]'" display @@ -210,6 +211,17 @@ syn match csInterpolationFormat +:[^}]\+}+ contained contains=csInterpolationFor syn match csInterpolationAlignDel +,+ contained display syn match csInterpolationFormatDel +:+ contained display +" Interpolated raw string literals +for i in range(1, get(g:, "cs_raw_string_interpolation_brace_count", 5)) + exe 'syn region csInterpolatedRawString' .. i .. ' matchgroup=csQuote start=+$\{' .. i .. '}\z("""\+\)+ end=+\z1+ extend contains=csInterpolation' .. i .. ',csInterpolationDelimiterError' .. i .. ',@Spell' + exe 'syn match csInterpolationDelimiterError' .. i .. ' "}\{' .. i .. '}" contained' + exe 'syn match csInterpolationDelimiterError' .. i .. ' "{\{' .. 2 * i .. ',}" contained' + exe 'syn match csInterpolationDelimiterError' .. i .. ' "}\{' .. 2 * i .. ',}" contained' + exe 'syn region csInterpolation' .. i .. ' matchgroup=csInterpolationDelimiter start=+\%({\{' .. i .. '}\)\@' .. i .. '