doomemacs/modules/module-elisp.el

41 lines
1.2 KiB
EmacsLisp
Raw Normal View History

2015-06-15 15:06:10 +08:00
;;; module-elisp --- all things emacs lisp
;; see lib/elisp-defuns.el
(add-hook! emacs-lisp-mode 'turn-on-eldoc-mode)
;; [pedantry intensifies]
(defadvice emacs-lisp-mode (after emacs-lisp-mode-rename-modeline activate)
(setq mode-name "Elisp"))
(defun narf-elisp-auto-compile ()
(when (narf/is-recompilable-p)
(narf:compile-el)))
(add-hook! emacs-lisp-mode
2015-11-10 04:55:03 +08:00
(add-hook 'before-save-hook 'delete-trailing-whitespace nil t)
(add-hook 'after-save-hook 'narf-elisp-auto-compile nil t))
2015-11-08 05:57:24 +08:00
;; Highlight extra NARF keywords
2015-11-10 04:55:03 +08:00
(let ((keywords '("add-hook!"
"bind!"
"after!"
"λ"
"in!"
"define-company-backend!"
2015-11-14 15:39:44 +08:00
"define-text-object!"
2015-11-10 04:55:03 +08:00
)))
2015-11-08 05:57:24 +08:00
(font-lock-add-keywords 'emacs-lisp-mode
2015-11-10 04:55:03 +08:00
`((,(concat "(\\s-*" (regexp-opt keywords 'paren) "\\_>")
2015-11-08 05:57:24 +08:00
1 font-lock-keyword-face)) 'append))
2015-11-11 07:10:32 +08:00
(font-lock-add-keywords
'emacs-lisp-mode `(("\\(lambda\\)" (0 (narf/show-as )))))
2015-06-15 15:06:10 +08:00
;; Real go-to-definition for elisp
(bind! :map emacs-lisp-mode-map
:m "gd" 'narf/elisp-find-function-at-pt
:m "gD" 'narf/elisp-find-function-at-pt-other-window)
(provide 'module-elisp)
;;; module-elisp.el ends here