From 7e9eef0ffd90cd7e39f15b003e4a9770be27b0ce Mon Sep 17 00:00:00 2001 From: Dmitry Gutov Date: Thu, 14 Dec 2017 11:18:51 +0200 Subject: Consolidate 'widen' calls * lisp/progmodes/prog-mode.el (prog-indentation-context): Un-document all elements but the first. (prog-widen): Remove. (http://lists.gnu.org/archive/html/emacs-devel/2017-12/msg00321.html) * doc/lispref/text.texi (Mode-Specific Indent): Update. * lisp/progmodes/ruby-mode.el (ruby-calculate-indent): Don't call widen. * lisp/progmodes/python.el (python-indent-guess-indent-offset) (python-info-current-defun): Replace prog-widen with widen; these functions are not called during indentation. (python-indent-context) (python-indent--calculate-indentation) (python-info-dedenter-opening-block-message) (python-info-line-ends-backslash-p) (python-info-beginning-of-backslash) (python-info-continuation-line-p) (python-info-current-defun): Remove 'widen' calls. * lisp/indent.el (indent-according-to-mode) (indent-for-tab-command, indent-region): Move them here. * lisp/textmodes/mhtml-mode.el (mhtml-indent-line): Bind prog-indentation-context to one-element list. --- lisp/progmodes/python.el | 32 ++++++++------------------------ 1 file changed, 8 insertions(+), 24 deletions(-) (limited to 'lisp/progmodes/python.el') diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index d4226e5ce7b..b8926529d1e 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -287,10 +287,6 @@ ;;; 24.x Compat -(unless (fboundp 'prog-widen) - (defun prog-widen () - (widen))) - (unless (fboundp 'prog-first-column) (defun prog-first-column () 0)) @@ -785,7 +781,7 @@ work on `python-indent-calculate-indentation' instead." (interactive) (save-excursion (save-restriction - (prog-widen) + (widen) (goto-char (point-min)) (let ((block-end)) (while (and (not block-end) @@ -883,8 +879,6 @@ keyword :at-dedenter-block-start - Point is on a line starting a dedenter block. - START is the position where the dedenter block starts." - (save-restriction - (prog-widen) (let ((ppss (save-excursion (beginning-of-line) (syntax-ppss)))) @@ -1022,7 +1016,7 @@ keyword (looking-at (python-rx block-ender))) :after-block-end) (t :after-line)) - (point))))))))) + (point)))))))) (defun python-indent--calculate-indentation () "Internal implementation of `python-indent-calculate-indentation'. @@ -1030,8 +1024,6 @@ May return an integer for the maximum possible indentation at current context or a list of integers. The latter case is only happening for :at-dedenter-block-start context since the possibilities can be narrowed to specific indentation points." - (save-restriction - (prog-widen) (save-excursion (pcase (python-indent-context) (`(:no-indent . ,_) (prog-first-column)) ; usually 0 @@ -1081,7 +1073,7 @@ possibilities can be narrowed to specific indentation points." (`(,(or :inside-paren-newline-start-from-block) . ,start) ;; Add two indentation levels to make the suite stand out. (goto-char start) - (+ (current-indentation) (* python-indent-offset 2))))))) + (+ (current-indentation) (* python-indent-offset 2)))))) (defun python-indent--calculate-levels (indentation) "Calculate levels list given INDENTATION. @@ -4590,7 +4582,7 @@ Optional argument INCLUDE-TYPE indicates to include the type of the defun. This function can be used as the value of `add-log-current-defun-function' since it returns nil if point is not inside a defun." (save-restriction - (prog-widen) + (widen) (save-excursion (end-of-line 1) (let ((names) @@ -4788,12 +4780,10 @@ likely an invalid python file." "Message the first line of the block the current statement closes." (let ((point (python-info-dedenter-opening-block-position))) (when point - (save-restriction - (prog-widen) (message "Closes %s" (save-excursion (goto-char point) (buffer-substring - (point) (line-end-position)))))))) + (point) (line-end-position))))))) (defun python-info-dedenter-statement-p () "Return point if current statement is a dedenter. @@ -4809,8 +4799,6 @@ statement." "Return non-nil if current line ends with backslash. With optional argument LINE-NUMBER, check that line instead." (save-excursion - (save-restriction - (prog-widen) (when line-number (python-util-goto-line line-number)) (while (and (not (eobp)) @@ -4819,14 +4807,12 @@ With optional argument LINE-NUMBER, check that line instead." (not (equal (char-before (point)) ?\\))) (forward-line 1)) (when (equal (char-before) ?\\) - (point-marker))))) + (point-marker)))) (defun python-info-beginning-of-backslash (&optional line-number) "Return the point where the backslashed line start. Optional argument LINE-NUMBER forces the line number to check against." (save-excursion - (save-restriction - (prog-widen) (when line-number (python-util-goto-line line-number)) (when (python-info-line-ends-backslash-p) @@ -4835,15 +4821,13 @@ Optional argument LINE-NUMBER forces the line number to check against." (python-syntax-context 'paren)) (forward-line -1)) (back-to-indentation) - (point-marker))))) + (point-marker)))) (defun python-info-continuation-line-p () "Check if current line is continuation of another. When current line is continuation of another return the point where the continued line ends." (save-excursion - (save-restriction - (prog-widen) (let* ((context-type (progn (back-to-indentation) (python-syntax-context-type))) @@ -4869,7 +4853,7 @@ where the continued line ends." (python-util-forward-comment -1) (when (and (equal (1- line-start) (line-number-at-pos)) (python-info-line-ends-backslash-p)) - (point-marker)))))))) + (point-marker))))))) (defun python-info-block-continuation-line-p () "Return non-nil if current line is a continuation of a block." -- cgit v1.2.1 From 7af7f5e15589407e1e78d0595fa93b20aa7dbb5a Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Wed, 20 Dec 2017 16:05:46 -0500 Subject: Fix some more aliases to user options * lisp/cus-edit.el (custom-mode-hook): * lisp/erc/erc.el (erc-default-coding-system): * lisp/progmodes/python.el (python-indent, python-guess-indent) (python-shell-virtualenv-path) (python-shell-completion-module-string-code) (python-shell-completion-pdb-string-code, python-use-skeletons): Define aliases to user options before the options are defined. --- lisp/progmodes/python.el | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) (limited to 'lisp/progmodes/python.el') diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index 035d93f7b99..4388cbdc060 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -725,12 +725,18 @@ It makes underscores and dots word constituent chars.") ;;; Indentation +(define-obsolete-variable-alias + 'python-indent 'python-indent-offset "24.3") + (defcustom python-indent-offset 4 "Default indentation offset for Python." :group 'python :type 'integer :safe 'integerp) +(define-obsolete-variable-alias + 'python-guess-indent 'python-indent-guess-indent-offset "24.3") + (defcustom python-indent-guess-indent-offset t "Non-nil tells Python mode to guess `python-indent-offset' value." :type 'boolean @@ -750,12 +756,6 @@ It makes underscores and dots word constituent chars.") :type '(repeat symbol) :group 'python) -(define-obsolete-variable-alias - 'python-indent 'python-indent-offset "24.3") - -(define-obsolete-variable-alias - 'python-guess-indent 'python-indent-guess-indent-offset "24.3") - (defvar python-indent-current-level 0 "Deprecated var available for compatibility.") @@ -2042,6 +2042,9 @@ executed through tramp connections." :type '(repeat string) :group 'python) +(define-obsolete-variable-alias + 'python-shell-virtualenv-path 'python-shell-virtualenv-root "25.1") + (defcustom python-shell-virtualenv-root nil "Path to virtualenv root. This variable, when set to a string, makes the environment to be @@ -2050,9 +2053,6 @@ virtualenv." :type '(choice (const nil) string) :group 'python) -(define-obsolete-variable-alias - 'python-shell-virtualenv-path 'python-shell-virtualenv-root "25.1") - (defcustom python-shell-setup-codes nil "List of code run by `python-shell-send-setup-codes'." :type '(repeat symbol) @@ -3289,14 +3289,6 @@ def __PYTHON_EL_get_completions(text): :type 'string :group 'python) -(defcustom python-shell-completion-string-code - "';'.join(__PYTHON_EL_get_completions('''%s'''))" - "Python code used to get a string of completions separated by semicolons. -The string passed to the function is the current python name or -the full statement in the case of imports." - :type 'string - :group 'python) - (define-obsolete-variable-alias 'python-shell-completion-module-string-code 'python-shell-completion-string-code @@ -3309,6 +3301,14 @@ the full statement in the case of imports." "25.1" "Completion string code must work for (i)pdb.") +(defcustom python-shell-completion-string-code + "';'.join(__PYTHON_EL_get_completions('''%s'''))" + "Python code used to get a string of completions separated by semicolons. +The string passed to the function is the current python name or +the full statement in the case of imports." + :type 'string + :group 'python) + (defcustom python-shell-completion-native-disabled-interpreters ;; PyPy's readline cannot handle some escape sequences yet. Native ;; completion was found to be non-functional for IPython (see @@ -4040,6 +4040,9 @@ JUSTIFY should be used (if applicable) as in `fill-paragraph'." ;;; Skeletons +(define-obsolete-variable-alias + 'python-use-skeletons 'python-skeleton-autoinsert "24.3") + (defcustom python-skeleton-autoinsert nil "Non-nil means template skeletons will be automagically inserted. This happens when pressing \"if\", for example, to prompt for @@ -4048,9 +4051,6 @@ the if condition." :group 'python :safe 'booleanp) -(define-obsolete-variable-alias - 'python-use-skeletons 'python-skeleton-autoinsert "24.3") - (defvar python-skeleton-available '() "Internal list of available skeletons.") -- cgit v1.2.1