Tengo una página HTML, con html-mode
activado. Llamo a la función sgml-validate
para comprobar si hay algún error de marcado. Se basa en compilation-mode
. Quiero eliminar algunas advertencias de la salida de compilación, así que escribí una función y la conecté al compilation-filter-hook
(esta variable no está documentada, pero compilation-filter
la invoca). Todo funciona. Mi problema es que ¿cómo puedo asegurar que mi función de filtro solo se llame cuando comencé el proceso de compilación en una página HTML (a través de sgml-validate
)?¿Cómo puedo filtrar la salida de compilación solo para un modo específico o buffer en Emacs?
veo dos métodos, pero ninguno de ellos trabajaron:
- En primer lugar, se puede comprobar el valor de
major-mode
. Pero siempre devuelvecompilation-mode
, ya que está habilitado en el buffer*compilation*
. (Encontré una función de filtro en el source code ofgrep+
, y comprobaron el valor demajor-mode
. No puedo entender cómo puede funcionar correctamente.) - La otra idea era que solo conectar mi función de filtro al archivo HTML buffer, pero por razones similares no podría funcionar ya que el resultado del proceso de compilación va a un buffer separado.
Gracias, le echo un vistazo. En mi caso, creo que debería usar un consejo de acercamiento, porque quiero filtrar el resultado generado, y aún necesito el nombre del buffer de compilación que devuelve 'sgml-validate'. –
En ese caso, después de asesorar puede ser lo que necesita en lugar de asesoramiento general, a menos que necesite realizar operaciones antes y después de la llamada a sgml-validate. –
¿Pero puedo obtener el valor de retorno 'of' sgml-validate' cuando uso after-advise? Me dice el nombre del búfer de compilación; de lo contrario, no puedo ejecutar la función de filtro en la salida. –