Skip to content

Instantly share code, notes, and snippets.

@phelipetls
Last active December 4, 2024 21:36
Show Gist options
  • Save phelipetls/8726d6cd68e66ad6b83586ae53f3b3d8 to your computer and use it in GitHub Desktop.
Save phelipetls/8726d6cd68e66ad6b83586ae53f3b3d8 to your computer and use it in GitHub Desktop.
" ~/.vim/after/syntax/python.vim or ~/.config/nvim/after/syntax/python.vim
syn match pythonEscape +{{+ contained containedin=pythonfString,pythonfDocstring
syn match pythonEscape +}}+ contained containedin=pythonfString,pythonfDocstring
syn region pythonfString matchgroup=pythonQuotes
\ start=+[fF]\@1<=\z(['"]\)+ end="\z1"
\ contains=@Spell,pythonEscape,pythonInterpolation
syn region pythonfDocstring matchgroup=pythonQuotes
\ start=+[fF]\@1<=\z('''\|"""\)+ end="\z1" keepend
\ contains=@Spell,pythonEscape,pythonSpaceError,pythonInterpolation,pythonDoctest
syn region pythonInterpolation contained
\ matchgroup=SpecialChar
\ start=+{{\@!+ end=+}}\@!+ skip=+{{+ keepend
\ contains=ALLBUT,pythonDecoratorName,pythonDecorator,pythonFunction,pythonDoctestValue,pythonDoctest
syn match pythonStringModifier /:\(.[<^=>]\)\?[-+ ]\?#\?0\?[0-9]*[_,]\?\(\.[0-9]*\)\?[bcdeEfFgGnosxX%]\?/ contained containedin=pythonInterpolation
syn match pythonStringModifier /![sra]/ contained containedin=pythonInterpolation
syn match pythonStringModifier /\zs *= *\ze[}:!]/ contained containedin=pythonInterpolation
hi link pythonfString String
hi link pythonfDocstring String
hi link pythonStringModifier PreProc
@durka
Copy link

durka commented Dec 4, 2024

I made a few more modifications that I liked:

hi pythonInterpolation gui=italic
hi pythonStringModifier gui=bold

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment