2009-06-03 14 views
6

Uso hideshow.el en mis búferes de modo cc para colapsar secciones del archivo que no estoy mirando.emacs: ¿HideShow funciona con xml-mode (sgml-mode)?

Sería bueno poder hacer eso en un documento XML. Yo uso emacs 22.2.1 y el modo sgml incorporado para la edición xml. No he conseguido Hideshow para trabajar con el XML. Quiero decir, enciendo el modo menor pero las teclas no tienen efecto. Ooh, excepto que obtuve un comentario XML para colapsar. Pero no hay elementos

¿Alguien ha hecho esto con éxito?
Recomendaciones?


EDITAR: Apostaría que funcionaría si he añadido un elemento a modo de SGML a hs-modos especiales-a-lista. Necesitaría una expresión regular para start-block. ¿Alguien ha hecho esto?


No me he mudado a nxml-mode. ¿Debería? ¿Se dobla o se esconde?

Respuesta

8

Respondiendo a mi propia pregunta ... Estoy usando algo como esto. Parece funcionar.

;; Fix XML folding 
(add-to-list 'hs-special-modes-alist 
      (list 'nxml-mode 
        "<!--\\|<[^/>]*[^/]>" 
        "-->\\|</[^/>]*[^/]>" 
        "<!--" 
        'nxml-forward-element 
        nil)) 

;; Fix HTML folding 
(dolist (mode '(sgml-mode 
       html-mode 
       html-erb-mode)) 
    (add-to-list 'hs-special-modes-alist 
       (list mode 
        "<!--\\|<[^/>]*[^/]>" 
        "-->\\|</[^/>]*[^/]>" 
        "<!--" 
        'sgml-skip-tag-forward 
        nil)))