Tengo muchos problemas con las compensaciones de sintaxis y no entiendo la explicación dada en los documentos de ayuda de Vim.
Tengo lo siguiente en mi ftplugin de PHP:
syntax region mySQLRegion \ contains=@SQLSyntax \ containedin=phpRegion \ contained \ matchgroup=sqlDelim \ start=+\vSQL\("$+ \ end=+^\s*"[,)]+ \ keependQuiero hacer coincidir construcciones de código como las siguientes:
... SQL(" ...my sql here... ", ... Actualmente esto funciona. Pero quiero que el resaltado se realice estrictamente entre las dos líneas delimitadoras; en otras palabras, quiero que el SQL(" y el cierre ", se resalten con el resaltado PHP estándar.
Probé varias permutaciones diferentes de las compensaciones, pero el resto del archivo se colorea con resaltado SQL o el bloque SQL se colorea como una cadena de PHP. Estoy buscando tanto una respuesta a esta pregunta en particular como una explicación más general de cómo pensar sobre cuándo usar ms / me vs. rs / re vs. hs / he , cuándo tendría sentido usar cualquiera =s+/-{nr} o =e+/-{nr} en esos contextos. Entiendo que se supone que es coincidencia, región y resaltado y que es el inicio y el final de la coincidencia compensados por una cantidad de caracteres en cualquier dirección, pero claramente no lo entiendo correctamente porque ninguno de mis intentos fue exitoso.