From 606d4c41a0437af0b07004fc8c6995c17e679165 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Fri, 5 Sep 2014 19:22:34 -0400 Subject: [PATCH] Take autopair into account when newline-and-indent'ing --- init/defuns/text.el | 14 +++++++------- init/my-keymaps.el | 7 ++++--- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/init/defuns/text.el b/init/defuns/text.el index 5006d890b..b1cf3ddf9 100644 --- a/init/defuns/text.el +++ b/init/defuns/text.el @@ -65,18 +65,18 @@ spaces on either side of the point if so. Resorts to "Inserts a tab character (or spaces x tab-width). Checks if the auto-complete window is open." (interactive) - (when (not (ac-menu-live-p)) - (let ((indent-mode indent-tabs-mode)) - (insert (if indent-mode "\t" (make-string tab-width ? )))))) + (let ((indent-mode indent-tabs-mode)) + (insert (if indent-mode "\t" (make-string tab-width ? ))))) (defun my.newline-and-indent () "Newline and indent; if in a comment, auto-comment and properly indent the next line." (interactive) - (let ((in-comment (evil-in-comment-p))) - (if in-comment - (indent-new-comment-line) - (evil-ret-and-indent)))) + (when (not (ac-menu-live-p)) + (let ((in-comment (evil-in-comment-p))) + (if in-comment + (indent-new-comment-line) + (progn (autopair-newline) (indent-according-to-mode)))))) (defun my.minibuffer-quit () "Abort recursive edit. In Delete Selection mode, if the mark is diff --git a/init/my-keymaps.el b/init/my-keymaps.el index bf274ab56..0e28ef9df 100644 --- a/init/my-keymaps.el +++ b/init/my-keymaps.el @@ -145,14 +145,15 @@ "_" 'er/contract-region) +(define-key evil-motion-state-map (kbd "RET") 'evil-ret-and-indent) (imap my-mode-map ;; Join lines from insert mode (kbd "") 'evil-join ;; Newline magic - (kbd "") 'my.newline-and-indent - (kbd "") 'evil-ret-and-indent - (kbd "") (kbd " DEL") ; newline and dedent + [remap autopair-newline] 'my.newline-and-indent + (kbd "") 'evil-ret-and-indent + (kbd "") (kbd " DEL") ; newline and dedent ;; Textmate-esque indent shift left/right (kbd "s-[") (kbd "C-o m l C-o I DEL C-o ` l")