diff options
Diffstat (limited to 'lisp/progmodes/python.el')
| -rw-r--r-- | lisp/progmodes/python.el | 33 |
1 files changed, 20 insertions, 13 deletions
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index a427e95c037..54a657a2593 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el | |||
| @@ -607,6 +607,12 @@ It makes underscores and dots word constituent chars.") | |||
| 607 | :group 'python | 607 | :group 'python |
| 608 | :safe 'booleanp) | 608 | :safe 'booleanp) |
| 609 | 609 | ||
| 610 | (defcustom python-indent-trigger-commands | ||
| 611 | '(indent-for-tab-command yas-expand yas/expand) | ||
| 612 | "Commands that might trigger a `python-indent-line' call." | ||
| 613 | :type '(repeat symbol) | ||
| 614 | :group 'python) | ||
| 615 | |||
| 610 | (define-obsolete-variable-alias | 616 | (define-obsolete-variable-alias |
| 611 | 'python-indent 'python-indent-offset "24.3") | 617 | 'python-indent 'python-indent-offset "24.3") |
| 612 | 618 | ||
| @@ -905,20 +911,21 @@ Uses the offset calculated in | |||
| 905 | indicated by the variable `python-indent-levels' to set the | 911 | indicated by the variable `python-indent-levels' to set the |
| 906 | current indentation. | 912 | current indentation. |
| 907 | 913 | ||
| 908 | When the variable `last-command' is equal to | 914 | When the variable `last-command' is equal to one of the symbols |
| 909 | `indent-for-tab-command' or FORCE-TOGGLE is non-nil it cycles | 915 | inside `python-indent-trigger-commands' or FORCE-TOGGLE is |
| 910 | levels indicated in the variable `python-indent-levels' by | 916 | non-nil it cycles levels indicated in the variable |
| 911 | setting the current level in the variable | 917 | `python-indent-levels' by setting the current level in the |
| 912 | `python-indent-current-level'. | 918 | variable `python-indent-current-level'. |
| 913 | 919 | ||
| 914 | When the variable `last-command' is not equal to | 920 | When the variable `last-command' is not equal to one of the |
| 915 | `indent-for-tab-command' and FORCE-TOGGLE is nil it calculates | 921 | symbols inside `python-indent-trigger-commands' and FORCE-TOGGLE |
| 916 | possible indentation levels and saves it in the variable | 922 | is nil it calculates possible indentation levels and saves it in |
| 917 | `python-indent-levels'. Afterwards it sets the variable | 923 | the variable `python-indent-levels'. Afterwards it sets the |
| 918 | `python-indent-current-level' correctly so offset is equal | 924 | variable `python-indent-current-level' correctly so offset is |
| 919 | to (`nth' `python-indent-current-level' `python-indent-levels')" | 925 | equal to (`nth' `python-indent-current-level' |
| 926 | `python-indent-levels')" | ||
| 920 | (or | 927 | (or |
| 921 | (and (or (and (eq this-command 'indent-for-tab-command) | 928 | (and (or (and (memq this-command python-indent-trigger-commands) |
| 922 | (eq last-command this-command)) | 929 | (eq last-command this-command)) |
| 923 | force-toggle) | 930 | force-toggle) |
| 924 | (not (equal python-indent-levels '(0))) | 931 | (not (equal python-indent-levels '(0))) |