¿cómo consigo hs-minor-mode a la carga automáticamente en el modo en php-emacs?
Pregunta
Por mis modos favoritos, utilizo el siguiente fragmento de carga hs-minor-mode en el arranque:
(add-hook '____-mode-hook 'hs-minor-mode)
Hasta ahora se ha vuelto a trabajar en css modo, Perl modo, sh-modo (bash), y lisp-mode. Pero por alguna razón no se cargará para php-modo, incluso si puedo cargarlo manualmente.
Aquí está mi configuración de modo de php:
(defun php-overload-keys ()
(let ((map php-mode-map))
(define-key map "\t" 'dumb-indent-relative)
(define-key map "\177" 'backward-delete-char)
(define-key map "," nil)
(define-key map ";" nil)
(define-key map ":" nil)
(define-key map "*" nil)
(define-key map "{" nil)
(define-key map "}" nil)
(define-key map "(" nil)
(define-key map ")" nil)
(define-key map "/" nil)
(use-local-map map)))
(add-hook 'php-mode-hook 'php-overload-keys)
(add-hook 'php-mode-hook 'hs-minor-mode)
estoy haciendo mal algo? He intentado envolver hs-minor-mode en una función y que todavía no se cargará. Mis llaves sobrecargados, sin embargo, lo hacen. Cuál es el problema?
Solución
funciones del modo suelen aceptar un argumento numérico para activar / desactivar ellos, y actúan como palancas, si no se proporciona ningún argumento, por lo que como regla general que debe usarse:
(add-hook 'php-mode-hook (lambda () (hs-minor-mode 1)))
Otros consejos
En general yo recomendaría
(add-hook 'prog-mode-hook #'(lambda () (hs-minor-mode t)))
porque el hideshow
no es un modo de PHP-específico.