Resaltado de etiqueta / bloque coincidente¶
Cuando el cursor está sobre —o dentro de— una etiqueta o un bloque que
lo envuelve, el editor enmarca el principio y el final de esa pareja, de modo
que veas de un vistazo dónde empieza y dónde acaba un <div>…</div>, un if…fi
o un #if…#endif.
Esto es independiente de la coincidencia de un solo carácter para las llaves
(el glifo () [] {}): esa sigue funcionando exactamente igual que antes, por
su cuenta. Las dos pueden mostrarse a la vez, así que puedes estar dentro de un
bloque { } y de un if…fi que lo envuelve y ver ambas.
Cómo usarlo¶
Coloca el cursor sobre el nombre de una etiqueta (o en cualquier punto dentro
de <…>), o sobre una palabra clave de bloque: la apertura, el cierre y
cualquier palabra clave «intermedia» se iluminan a la vez. Colocar el cursor
dentro de un bloque (no sobre una palabra clave) resalta la pareja
envolvente más cercana. El contenido normal entre etiquetas no resalta nada.
Se actualiza a medida que el cursor se mueve y no necesita ningún atajo.
Activarlo y desactivarlo¶
Ver ▸ Resaltar la etiqueta o el bloque coincidente — activado de forma predeterminada, y la elección se recuerda entre sesiones.
Los dos tipos de pareja¶
Etiquetas (marcado)¶
En HTML y XML, con el cursor en una etiqueta de apertura o de cierre se enmarca
el nombre del elemento en ambas etiquetas. El anidamiento de etiquetas con el
mismo nombre se resuelve por profundidad, las etiquetas autocerradas (<br/>) no
tienen pareja y un > dentro del valor entrecomillado de un atributo nunca
termina la etiqueta antes de tiempo. Un < usado como texto o como operador de
comparación nunca lo dispara: la coincidencia se basa en el estilo de etiqueta
del analizador léxico, no en los signos de menor/mayor en bruto.
Palabras clave de bloque (lenguajes)¶
Parejas de palabras clave completas, contadas con anidamiento correcto y saltándose todo lo que haya dentro de comentarios y cadenas. De serie vienen:
| Lenguaje | Parejas |
|---|---|
| Shell (bash) | if … fi (con elif/else), do … done, case … esac |
| C / C++ | preprocesador #if / #ifdef / #ifndef … #endif (con #elif/#else) |
| SQL | begin … end, case … end (sin distinguir mayúsculas) |
C/C++ lo usa solo para el preprocesador
Los bloques { } normales de C/C++ los gestiona la coincidencia de llaves de
un solo carácter, no esta función, así que un .cpp sin condicionales
#if…#endif no muestra nada aquí, por diseño.
Añadir parejas para otro lenguaje¶
Las parejas son datos, no código: viven en el JSON del colorizador del
lenguaje, así que puedes añadirlas para cualquier lenguaje sin recompilar. En el
archivo de colorizador añade "tagMatch": true para el marcado, o una lista
"blockPairs" para las parejas de palabras clave, por ejemplo:
"blockPairs": [
{ "open": "if", "middle": ["elif", "else"], "close": "fi" },
{ "open": "do", "close": "done" }
],
"pairsCaseSensitive": false
Un archivo de colorizador del usuario eclipsa al que viene de serie, así que puedes anular o ampliar los integrados. Consulta Coloreado de sintaxis para saber dónde viven los archivos de colorizador.
Notas y límites¶
- La coincidencia analiza una ventana alrededor del cursor, así que una pareja cuyos extremos estén muy lejos entre sí (del orden de mil líneas o más; por ejemplo, una guarda de inclusión de todo un archivo) puede no encontrarse.
- La coincidencia usa anidamiento estricto: una sola etiqueta o bloque interior sin cerrar impide que las etiquetas o bloques que lo rodean coincidan hasta que se cierre.
Relacionado¶
- Pares automáticos y sangría — cierre automático de corchetes y comillas mientras escribes (una función distinta).
- Coloreado de sintaxis — los archivos de colorizador que también declaran estas parejas.