From 9dd88e59244e72213d6a480f5b0be2bc4bea67a5 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 18 Feb 2019 15:36:44 -0500 Subject: [PATCH] Move c electric disabler to config/default Because it is tied to the smartparens config, and we'll want this behavior to extend to all C-derived modes (like csharp and php modes). --- modules/config/default/config.el | 10 ++++++++++ modules/lang/cc/config.el | 10 +--------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/modules/config/default/config.el b/modules/config/default/config.el index c3e2b9c2a..67e431eae 100644 --- a/modules/config/default/config.el +++ b/modules/config/default/config.el @@ -64,6 +64,16 @@ (sp-local-pair (append sp--html-modes '(markdown-mode gfm-mode)) "" :actions '(insert) :post-handlers '(("| " "SPC"))) + ;; Disable electric keys in C modes because it interferes with smartparens + ;; and custom bindings. We'll do it ourselves (mostly). + (after! cc-mode + (c-toggle-electric-state -1) + (c-toggle-auto-newline -1) + (setq c-tab-always-indent nil + c-electric-flag nil) + (dolist (key '("#" "{" "}" "/" "*" ";" "," ":" "(" ")" "\177")) + (define-key c-mode-base-map key nil))) + ;; Expand C-style doc comment blocks. Must be done manually because some of ;; these languages use specialized (and deferred) parsers, whose state we ;; can't access while smartparens is doing its thing. diff --git a/modules/lang/cc/config.el b/modules/lang/cc/config.el index d51450c2a..9d5fe1b19 100644 --- a/modules/lang/cc/config.el +++ b/modules/lang/cc/config.el @@ -106,24 +106,16 @@ compilation database is present in the project.") c-style-alist)) ;;; Keybindings - ;; Disable electric keys because it interferes with smartparens and custom - ;; bindings. We'll do it ourselves (mostly). - (c-toggle-electric-state -1) - (c-toggle-auto-newline -1) - (setq c-tab-always-indent nil - c-electric-flag nil) - (dolist (key '("#" "}" "/" "*" ";" "," ":" "(" ")" "\177")) - (define-key c-mode-base-map key nil)) ;; Smartparens and cc-mode both try to autoclose angle-brackets intelligently. ;; The result isn't very intelligent (causes redundant characters), so just do ;; it ourselves. (define-key! c++-mode-map "<" nil ">" nil) - ;; ...and leave it to smartparens (sp-with-modes '(c++-mode objc-mode) (sp-local-pair "<" ">" :when '(+cc-sp-point-is-template-p +cc-sp-point-after-include-p) :post-handlers '(("| " "SPC")))) + (sp-with-modes '(c-mode c++-mode objc-mode java-mode) (sp-local-pair "/*!" "*/" :post-handlers '(("||\n[i]" "RET") ("[d-1]< | " "SPC")))))