From 13cc881a2e531a98befd984b703f6597f3ca1f74 Mon Sep 17 00:00:00 2001 From: Howard Abrams Date: Mon, 22 Aug 2022 15:58:30 -0700 Subject: [PATCH] Fixed that single quotes should behave in Lisp modes. --- ha-programming-elisp.org | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/ha-programming-elisp.org b/ha-programming-elisp.org index 433c0b0..bf8e1b8 100644 --- a/ha-programming-elisp.org +++ b/ha-programming-elisp.org @@ -88,9 +88,9 @@ While I love packages that add functionality and I don’t have to learn anythin #+end_src And in case I need to call it directly: #+begin_src emacs-lisp -(defun ha-goto-definition () - (interactive) - (evil-inner-WORD)) + (defun ha-goto-definition () + (interactive) + (evil-inner-WORD)) #+end_src ** Clever Parenthesis We need to make sure we keep the [[https://github.com/Fuco1/smartparens][smartparens]] project always in /strict mode/, because who wants to worry about paren-matching: @@ -98,6 +98,21 @@ We need to make sure we keep the [[https://github.com/Fuco1/smartparens][smartpa (use-package smartparens :custom (smartparens-global-strict-mode t) + + :config + (sp-with-modes sp-lisp-modes + ;; disable ', as it's the quote character: + (sp-local-pair "'" nil :actions nil)) + + (sp-with-modes (-difference sp-lisp-modes sp-clojure-modes) + ;; use the pseudo-quote inside strings where it serve as hyperlink. + (sp-local-pair "`" "'" + :when '(sp-in-string-p + sp-in-comment-p) + :skip-match (lambda (ms _mb _me) + (cond + ((equal ms "'") (not (sp-point-in-string-or-comment))) + (t (not (sp-point-in-string-or-comment))))))) :hook (prog-mode . smartparens-strict-mode)) #+end_src