sublime running run programa how from correr como code python syntax sublimetext3 syntax-highlighting

running - sublime text 3 python execute



Sintaxis de texto sublime: Python 3.6 f-strings (1)

Hubo una actualización del resaltado de sintaxis en BUILD 3127 (que incluye: Mejoras significativas en el resaltado de sintaxis de Python).

Sin embargo, un par de usuarios han declarado que en BUILD 3176 el resaltado de sintaxis aún no está configurado para resaltar correctamente las expresiones de Python que se encuentran dentro de las cadenas de caracteres. De acuerdo con @Jollywatt, está establecido en source.python f"string.quoted.double.block {constant.other.placeholder}" lugar de f"string.quoted.double.block {source.python}"

Parece que Sublime usa esta herramienta, PackageDev , "para facilitar la creación de fragmentos de código, definiciones de sintaxis, etc. para texto sublime".

Estoy intentando modificar el archivo predeterminado Python.sublime_syntax para manejar los literales f-string de Python correctamente. Mi objetivo es tener expresiones en cadenas interpoladas reconocidas como tales:

f"hello {person.name if person else ''there''}" -----------source.python---------- ------string.quoted.double.block.python------

Dentro de las cadenas de caracteres, los rangos de texto entre un solo { y otro } (pero terminando antes de los especificadores de formato como !r} :<5} , etc., ver PEP 498 ) deben reconocerse como expresiones. Por lo que yo sé, eso podría verse un poco así:

... string: - match: "(?<=[^/{]/{)[^/{].*)(?=(!(s|r|a))?(:.*)?/})" # I''ll need a better regex push: expressions

Sin embargo, al inspeccionar el archivo Python.sublime_syntax , los contextos de cadena son especialmente difíciles de manejar incluso (¿aproximadamente 480 líneas?) Y no tengo idea de cómo comenzar. Muchas gracias por cualquier información.