come faccio a hs-minor-mode per caricare automaticamente il php-mode in Emacs?
Domanda
Per i miei modi preferiti, io uso il seguente frammento di carico hs-minor-mode all'avvio:
(add-hook '____-mode-hook 'hs-minor-mode)
Finora è ottenuto lavorando su CSS-mode, perl-mode, sh-mode (bash), e lisp-mode. Ma per qualche motivo non verrà caricato per PHP-mode, anche se posso caricare manualmente.
Ecco le mie impostazioni php-mode:
(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)
Sto facendo qualcosa di sbagliato? Ho provato avvolgendo hs-minor-mode in una funzione e ancora non caricherà. Le mie chiavi sovraccarico, tuttavia, fanno. Qual è il problema?
Soluzione
funzioni della modalità tipicamente accettano un argomento numerico per abilitare / disabilitare loro, e si comportano come se alterna nessun argomento viene fornito, in modo tale regola generale si dovrebbe usare:
(add-hook 'php-mode-hook (lambda () (hs-minor-mode 1)))
Altri suggerimenti
In generale mi sento di raccomandare
(add-hook 'prog-mode-hook #'(lambda () (hs-minor-mode t)))
perché il hideshow
non è una modalità PHP-specifica.