* progmodes/python.el: Support other commands triggering
authorFabián Ezequiel Gallina <fgallina@gnu.org>
Sat, 29 Dec 2012 12:57:49 +0000 (09:57 -0300)
committerFabián Ezequiel Gallina <fgallina@gnu.org>
Sat, 29 Dec 2012 12:57:49 +0000 (09:57 -0300)
python-indent-line so indentation cycling continues to work.
(python-indent-trigger-commands): New defcustom.
(python-indent-line): Use it.

lisp/ChangeLog
lisp/progmodes/python.el

index 9a54639..b79d174 100644 (file)
@@ -1,3 +1,10 @@
+2012-12-29  Fabián Ezequiel Gallina  <fgallina@cuca>
+
+       * progmodes/python.el: Support other commands triggering
+       python-indent-line so indentation cycling continues to work.
+       (python-indent-trigger-commands): New defcustom.
+       (python-indent-line): Use it.
+
 2012-12-29  Fabián Ezequiel Gallina  <fgallina@cuca>
 
        * progmodes/python.el (python-shell-send-region): Add blank lines
index a427e95..54a657a 100644 (file)
@@ -607,6 +607,12 @@ It makes underscores and dots word constituent chars.")
   :group 'python
   :safe 'booleanp)
 
+(defcustom python-indent-trigger-commands
+  '(indent-for-tab-command yas-expand yas/expand)
+  "Commands that might trigger a `python-indent-line' call."
+  :type '(repeat symbol)
+  :group 'python)
+
 (define-obsolete-variable-alias
   'python-indent 'python-indent-offset "24.3")
 
@@ -905,20 +911,21 @@ Uses the offset calculated in
 indicated by the variable `python-indent-levels' to set the
 current indentation.
 
-When the variable `last-command' is equal to
-`indent-for-tab-command' or FORCE-TOGGLE is non-nil it cycles
-levels indicated in the variable `python-indent-levels' by
-setting the current level in the variable
-`python-indent-current-level'.
-
-When the variable `last-command' is not equal to
-`indent-for-tab-command' and FORCE-TOGGLE is nil it calculates
-possible indentation levels and saves it in the variable
-`python-indent-levels'.  Afterwards it sets the variable
-`python-indent-current-level' correctly so offset is equal
-to (`nth' `python-indent-current-level' `python-indent-levels')"
+When the variable `last-command' is equal to one of the symbols
+inside `python-indent-trigger-commands' or FORCE-TOGGLE is
+non-nil it cycles levels indicated in the variable
+`python-indent-levels' by setting the current level in the
+variable `python-indent-current-level'.
+
+When the variable `last-command' is not equal to one of the
+symbols inside `python-indent-trigger-commands' and FORCE-TOGGLE
+is nil it calculates possible indentation levels and saves it in
+the variable `python-indent-levels'.  Afterwards it sets the
+variable `python-indent-current-level' correctly so offset is
+equal to (`nth' `python-indent-current-level'
+`python-indent-levels')"
   (or
-   (and (or (and (eq this-command 'indent-for-tab-command)
+   (and (or (and (memq this-command python-indent-trigger-commands)
                  (eq last-command this-command))
             force-toggle)
         (not (equal python-indent-levels '(0)))