emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] master e169391 046/108: Prevent electric indenting on ruby-mode


From: Artur Malabarba
Subject: [elpa] master e169391 046/108: Prevent electric indenting on ruby-mode
Date: Wed, 25 Mar 2015 18:39:02 +0000

branch: master
commit e169391f4937932a77decea9fa98b9c0ddd862e3
Author: Artur Malabarba <address@hidden>
Commit: Artur Malabarba <address@hidden>

    Prevent electric indenting on ruby-mode
---
 aggressive-indent.el |   20 ++++++++++++++++++--
 1 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/aggressive-indent.el b/aggressive-indent.el
index 994bbe0..7bddd82 100644
--- a/aggressive-indent.el
+++ b/aggressive-indent.el
@@ -104,6 +104,13 @@ Please include this in your report!"
 
 
 ;;; Start of actual Code:
+(defcustom dont-electric-modes '(ruby-mode)
+  "List of major-modes where `electric-indent-mode' shouold be disabled."
+  :type '(choice
+          (const :tag "Never use `electric-indent-mode'." t)
+          (repeat :tag "Major-modes to avoid `electric-indent-mode'" symbol))
+  :package-version '(aggressive-indent . "0.3.1"))
+
 (defcustom excluded-modes
   '(text-mode
     tabulated-list-mode
@@ -335,8 +342,11 @@ Assumes that the syntax table is sufficient to find 
comments."
                (or (cl-member-if #'derived-mode-p excluded-modes)
                    buffer-read-only))
           (mode -1)
-        (when (fboundp 'electric-indent-local-mode)
-          (electric-indent-local-mode 1))
+        ;; Should electric indent be ON or OFF?
+        (if (or (eq dont-electric-modes t)
+                (cl-member-if #'derived-mode-p dont-electric-modes))
+            (-local-electric nil)
+          (-local-electric t))
         (if (cl-member-if #'derived-mode-p modes-to-prefer-defun)
             (add-hook 'post-command-hook #'-softly-indent-defun nil 'local)
           (add-hook 'after-change-functions #'-keep-track-of-changes nil 
'local)
@@ -346,6 +356,12 @@ Assumes that the syntax table is sufficient to find 
comments."
     (remove-hook 'post-command-hook #'-indent-if-changed 'local)
     (remove-hook 'post-command-hook #'-softly-indent-defun 'local)))
 
+(defun -local-electric (on)
+  "Turn `electric-indent-mode' on or off locally, as given by boolean ON."
+  (if (fboundp 'electric-indent-local-mode)
+      (electric-indent-local-mode (if on 1 -1))
+    (set (make-local-variable 'electric-indent-mode) on)))
+
 :autoload
 (define-globalized-minor-mode global-aggressive-indent-mode
   mode mode)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]