;; Author: Artur Malabarba <emacs@endlessparentheses.com>
;; URL: https://github.com/Malabarba/aggressive-indent-mode
-;; Version: 1.5.3
+;; Version: 1.6
;; Package-Requires: ((emacs "24.1") (cl-lib "0.5"))
;; Keywords: indent lisp maint tools
;; Prefix: aggressive-indent
"List of (left right) limit of regions changed in the last command loop.")
(make-variable-buffer-local 'aggressive-indent--changed-list)
+(defvar-local aggressive-indent--balanced-parens t
+ "Non-nil if the current-buffer has balanced parens.")
+
(defun aggressive-indent--indent-if-changed ()
"Indent any region that changed in the last command loop."
- (when aggressive-indent--changed-list
+ (when (and aggressive-indent--changed-list aggressive-indent--balanced-parens)
(save-excursion
(save-selected-window
(unless (or (run-hook-wrapped 'aggressive-indent--internal-dont-indent-if #'eval)
(setq aggressive-indent--changed-list
(cdr aggressive-indent--changed-list))))))))))
-(defvar-local aggressive-indent--balanced-parens t
- "Non-nil if the current-buffer has balanced parens.")
-
(defun aggressive-indent--check-parens ()
"Check if parens are balanced in the current buffer.
Store result in `aggressive-indent--balanced-parens'."
(setq aggressive-indent--balanced-parens
(save-excursion
(ignore-errors
- (save-restriction
- (narrow-to-defun)
- (check-parens)
- t)))))
+ (check-parens)
+ t))))
(defun aggressive-indent--keep-track-of-changes (l r &rest _)
"Store the limits (L and R) of each change in the buffer."