From a83608e6864e96b64e3fd84282d7f4cd917c0fff Mon Sep 17 00:00:00 2001 From: Daniel Borchmann Date: Sat, 2 Mar 2019 11:14:37 +0100 Subject: [PATCH] =?UTF-8?q?[Misc]=20Enable=20=E2=80=98lispy=E2=80=99=20onl?= =?UTF-8?q?y=20when=20available?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit To ensure that Emacs is still largely responsive without it. --- init.el | 13 ++++++++----- site-lisp/db-utils.el | 8 ++++++++ 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/init.el b/init.el index 2e8a6af..ce14778 100644 --- a/init.el +++ b/init.el @@ -133,9 +133,11 @@ (add-hook 'after-save-hook 'executable-make-buffer-file-executable-if-script-p) (add-hook 'text-mode-hook 'turn-on-auto-fill) (add-hook 'prog-mode-hook 'page-break-lines-mode) + (add-hook 'lisp-mode-hook 'turn-on-lispy-when-available) + (when (<= 24 emacs-major-version) (add-hook 'prog-mode-hook 'electric-indent-local-mode)) - (add-hook 'lisp-mode-hook 'lispy-mode) + (unless (eq system-type 'windows-nt) ;; flyspell doesn’t work on windows right now, need to further investigate ;; what is happening here @@ -544,6 +546,7 @@ search commands like `db/helm-shortcuts’." db/hex-to-ascii db/ascii-to-hex conditionally-enable-lispy + turn-on-lispy-when-available db/sort-nsm-permanent-settings db/update-cert-file-directory endless/colorize-compilation @@ -2201,7 +2204,7 @@ search commands like `db/helm-shortcuts’." (use-package elisp-mode :defer t :config (progn - (add-hook 'emacs-lisp-mode-hook 'lispy-mode) + (add-hook 'emacs-lisp-mode-hook 'turn-on-lispy-when-available) (add-hook 'emacs-lisp-mode-hook 'db/add-use-package-to-imenu))) (use-package geiser @@ -2225,7 +2228,7 @@ search commands like `db/helm-shortcuts’." cider-cljs-lein-repl "(cemerick.piggieback/cljs-repl (cljs.repl.rhino/repl-env))") :config (progn (add-hook 'cider-repl-mode-hook 'subword-mode) - (add-hook 'cider-repl-mode-hook 'lispy-mode) + (add-hook 'cider-repl-mode-hook 'turn-on-lispy-when-available) (add-hook 'cider-repl-mode-hook 'cider-repl-toggle-pretty-printing) (add-hook 'cider-repl-mode-hook 'company-mode))) @@ -2236,7 +2239,7 @@ search commands like `db/helm-shortcuts’." (forall 'defun) (exists 'defun) (dopar 'defun)) - (add-hook 'clojure-mode-hook 'lispy-mode) + (add-hook 'clojure-mode-hook 'turn-on-lispy-when-available) (add-hook 'clojure-mode-hook 'clj-refactor-mode) (add-hook 'clojure-mode-hook 'yas-minor-mode) (add-hook 'clojure-mode-hook 'company-mode))) @@ -2269,7 +2272,7 @@ search commands like `db/helm-shortcuts’." (use-package hy-mode :commands (hy-mode) :config (progn - (add-hook 'hy-mode-hook 'lispy-mode) + (add-hook 'hy-mode-hook 'turn-on-lispy-when-available) (add-hook 'hy-mode-hook 'inferior-lisp))) diff --git a/site-lisp/db-utils.el b/site-lisp/db-utils.el index 0030d66..d436a46 100644 --- a/site-lisp/db-utils.el +++ b/site-lisp/db-utils.el @@ -226,6 +226,14 @@ lispy." (eq this-command 'pp-eval-expression))) (lispy-mode 1))) +(defun turn-on-lispy-when-available () + "Activate `lispy’ in current buffer when possible. +Will print a warning in case of failure." + (interactive) + (with-demoted-errors "Cannot activate lispy: %s" + (require 'lispy) + (lispy-mode))) + (defun db/sort-nsm-permanent-settings () "Sort values in `nsm-permanent-host-settings’." (setq nsm-permanent-host-settings