Personalização do Emacs por arquivo

Eu tenho um arquivo Emacs Lisp com macros personalizadas que eu quero fonte e recuo de forma diferente. O código se parece com:

(defmacro* when-let ((var value) &rest body)
  `(let ((,var ,value))
     (when ,var ,@body)))

(defun func ()
  (when-let (a 1)
    a))

eu querowhen-let fontificado como umfont-lock-keyword e recuado como acima. Eu sei que posso fazer isso no meu arquivo .emacs, mas eu preferiria torná-lo um diretório local ou uma personalização local do arquivo. O problema é que as personalizações locais do diretório e do arquivo parecem estar limitadas à configuração de variáveis. No meu arquivo .emacs, tenho o seguinte.

(add-hook 'emacs-lisp-mode-hook
   (lambda ()
             (put 'when-let 'lisp-indent-function 1)
             (font-lock-add-keywords nil
                                     '(("(\\(when-let\\)\\>" 1
                                        font-lock-keyword-face)))))

Eu quero isso em.dir-locals.el porque se aplica apenas a um arquivo.