From d8be7aaeb271d3a2ede777b84a3d93b51556ed79 Mon Sep 17 00:00:00 2001 From: ~keith Date: Thu, 12 May 2022 17:20:50 +0000 Subject: [PATCH] Emacs support --- superfluous-parentheses.el | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 superfluous-parentheses.el diff --git a/superfluous-parentheses.el b/superfluous-parentheses.el new file mode 100644 index 0000000..32b353e --- /dev/null +++ b/superfluous-parentheses.el @@ -0,0 +1,25 @@ +;;; superfluous-parentheses --- Emacs support for [] and {} in lisp-mode + +;;; Code: +(defun superfluous-modify-font-lock-keywords (rule-table) + (dolist (rule rule-table) + (when (and (consp rule) (stringp (car rule))) + (when (string-prefix-p "(" (car rule)) + (rplaca rule (concat "\\s(" (substring (car rule) 1))))))) + +(add-hook! lisp-mode + (modify-syntax-entry ?\[ "(]" lisp-mode-syntax-table) + (modify-syntax-entry ?\] ")[" lisp-mode-syntax-table) + (modify-syntax-entry ?\{ "(}" lisp-mode-syntax-table) + (modify-syntax-entry ?\} "){" lisp-mode-syntax-table) + (superfluous-modify-font-lock-keywords lisp-cl-font-lock-keywords-1) + (superfluous-modify-font-lock-keywords lisp-cl-font-lock-keywords-2) + (superfluous-modify-font-lock-keywords lisp-cl-font-lock-keywords)) + +;;; Commentary: +;; This package modifies the lisp-mode syntax table and font-lock keywords to +;; provide proper support for using square brackets and curly braces in Common +;; Lisp code, as per superfluous-parentheses. + +(provide 'superfluous-parentheses) +;;; superfluous-parentheses.el ends here