From fa39432611a4384063eb094ab0136696c288f6dc Mon Sep 17 00:00:00 2001 From: David Florness Date: Fri, 12 Feb 2021 18:54:50 -0500 Subject: [PATCH] Automatically insert an extra newline on { in {go,terraform}-mode --- lisp/keys.el | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/lisp/keys.el b/lisp/keys.el index cfc67b4..15b69a6 100644 --- a/lisp/keys.el +++ b/lisp/keys.el @@ -75,7 +75,20 @@ (require 'smartparens-config) (smartparens-global-mode t) (evil-global-set-key 'normal (kbd ">") #'sp-slurp-hybrid-sexp) - (evil-global-set-key 'normal (kbd "<") #'sp-forward-barf-sexp)) + (evil-global-set-key 'normal (kbd "<") #'sp-forward-barf-sexp) + + (defun radian-enter-and-indent-sexp (&rest _ignored) + "Insert an extra newline after point, and reindent." + (newline) + (indent-according-to-mode) + (forward-line -1) + (indent-according-to-mode)) + + ; TODO: add more modes + (dolist (mode '(go-mode terraform-mode)) + (sp-local-pair mode "{" nil :post-handlers + '((radian-enter-and-indent-sexp "RET") + (radian-enter-and-indent-sexp ""))))) (use-package evil-matchit :init -- 2.38.4