mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-04-27 16:51:06 -07:00
python.el: Generate clearer shell buffer names.
* lisp/progmodes/python.el (python-shell-get-process-name) (python-shell-internal-get-process-name): Use `buffer-name`. (python-shell-internal-get-or-create-process): Simplify. * test/automated/python-tests.el (python-shell-get-process-name-1) (python-shell-internal-get-process-name-1): Cleanup. (python-shell-get-process-name-2) (python-shell-internal-get-process-name-2): New tests. (python-shell-calculate-command-1) (python-shell-calculate-process-environment-3) (python-shell-calculate-exec-path-2, python-shell-make-comint-1) (python-shell-make-comint-2, python-shell-make-comint-4) (python-shell-get-process-1, python-util-clone-local-variables-1): Replace obsolete function and variable references with current.
This commit is contained in:
parent
8cf42182b8
commit
7284a174ab
4 changed files with 76 additions and 86 deletions
|
|
@ -1,3 +1,11 @@
|
|||
2014-12-26 Fabián Ezequiel Gallina <fgallina@gnu.org>
|
||||
|
||||
python.el: Generate clearer shell buffer names.
|
||||
|
||||
* progmodes/python.el (python-shell-get-process-name)
|
||||
(python-shell-internal-get-process-name): Use `buffer-name`.
|
||||
(python-shell-internal-get-or-create-process): Simplify.
|
||||
|
||||
2014-12-26 Dmitry Gutov <dgutov@yandex.ru>
|
||||
|
||||
Add basic xref apropos implementation to elisp-mode.
|
||||
|
|
|
|||
|
|
@ -2087,36 +2087,18 @@ and `python-shell-output-prompt-regexp' using the values from
|
|||
|
||||
(defun python-shell-get-process-name (dedicated)
|
||||
"Calculate the appropriate process name for inferior Python process.
|
||||
If DEDICATED is t and the variable `buffer-file-name' is non-nil
|
||||
returns a string with the form
|
||||
`python-shell-buffer-name'[variable `buffer-file-name'] else
|
||||
returns the value of `python-shell-buffer-name'."
|
||||
(let ((process-name
|
||||
(if (and dedicated
|
||||
buffer-file-name)
|
||||
(format "%s[%s]" python-shell-buffer-name buffer-file-name)
|
||||
(format "%s" python-shell-buffer-name))))
|
||||
process-name))
|
||||
If DEDICATED is t returns a string with the form
|
||||
`python-shell-buffer-name'[`buffer-name'] else returns the value
|
||||
of `python-shell-buffer-name'."
|
||||
(if dedicated
|
||||
(format "%s[%s]" python-shell-buffer-name (buffer-name))
|
||||
python-shell-buffer-name))
|
||||
|
||||
(defun python-shell-internal-get-process-name ()
|
||||
"Calculate the appropriate process name for Internal Python process.
|
||||
The name is calculated from `python-shell-global-buffer-name' and
|
||||
a hash of all relevant global shell settings in order to ensure
|
||||
uniqueness for different types of configurations."
|
||||
(format "%s [%s]"
|
||||
python-shell-internal-buffer-name
|
||||
(md5
|
||||
(concat
|
||||
python-shell-interpreter
|
||||
python-shell-interpreter-args
|
||||
python-shell--prompt-calculated-input-regexp
|
||||
python-shell--prompt-calculated-output-regexp
|
||||
(mapconcat #'symbol-value python-shell-setup-codes "")
|
||||
(mapconcat #'identity python-shell-process-environment "")
|
||||
(mapconcat #'identity python-shell-extra-pythonpaths "")
|
||||
(mapconcat #'identity python-shell-exec-path "")
|
||||
(or python-shell-virtualenv-root "")
|
||||
(mapconcat #'identity python-shell-exec-path "")))))
|
||||
the `buffer-name'."
|
||||
(format "%s[%s]" python-shell-internal-buffer-name (buffer-name)))
|
||||
|
||||
(defun python-shell-calculate-command ()
|
||||
"Calculate the string used to execute the inferior Python process."
|
||||
|
|
@ -2606,12 +2588,10 @@ there for compatibility with CEDET.")
|
|||
|
||||
(defun python-shell-internal-get-or-create-process ()
|
||||
"Get or create an inferior Internal Python process."
|
||||
(let* ((proc-name (python-shell-internal-get-process-name))
|
||||
(proc-buffer-name (format " *%s*" proc-name)))
|
||||
(when (not (process-live-p proc-name))
|
||||
(run-python-internal)
|
||||
(setq python-shell-internal-buffer proc-buffer-name))
|
||||
(get-buffer-process proc-buffer-name)))
|
||||
(let ((proc-name (python-shell-internal-get-process-name)))
|
||||
(if (process-live-p proc-name)
|
||||
(get-process proc-name)
|
||||
(run-python-internal))))
|
||||
|
||||
(define-obsolete-function-alias
|
||||
'python-proc 'python-shell-internal-get-or-create-process "24.3")
|
||||
|
|
|
|||
|
|
@ -1,3 +1,16 @@
|
|||
2014-12-26 Fabián Ezequiel Gallina <fgallina@gnu.org>
|
||||
|
||||
* automated/python-tests.el (python-shell-get-process-name-1)
|
||||
(python-shell-internal-get-process-name-1): Cleanup.
|
||||
(python-shell-get-process-name-2)
|
||||
(python-shell-internal-get-process-name-2): New tests.
|
||||
(python-shell-calculate-command-1)
|
||||
(python-shell-calculate-process-environment-3)
|
||||
(python-shell-calculate-exec-path-2, python-shell-make-comint-1)
|
||||
(python-shell-make-comint-2, python-shell-make-comint-4)
|
||||
(python-shell-get-process-1, python-util-clone-local-variables-1):
|
||||
Replace obsolete function and variable references with current.
|
||||
|
||||
2014-12-19 Artur Malabarba <bruce.connor.am@gmail.com>
|
||||
|
||||
* automated/let-alist.el: require `cl-lib'
|
||||
|
|
|
|||
|
|
@ -1775,52 +1775,41 @@ def f():
|
|||
(defvar python-tests-shell-interpreter "python")
|
||||
|
||||
(ert-deftest python-shell-get-process-name-1 ()
|
||||
"Check process name calculation on different scenarios."
|
||||
"Check process name calculation sans `buffer-file-name'."
|
||||
(python-tests-with-temp-buffer
|
||||
""
|
||||
(should (string= (python-shell-get-process-name nil)
|
||||
python-shell-buffer-name))
|
||||
;; When the `current-buffer' doesn't have `buffer-file-name', even
|
||||
;; if dedicated flag is non-nil should not include its name.
|
||||
(should (string= (python-shell-get-process-name t)
|
||||
python-shell-buffer-name)))
|
||||
""
|
||||
(should (string= (python-shell-get-process-name nil)
|
||||
python-shell-buffer-name))
|
||||
(should (string= (python-shell-get-process-name t)
|
||||
(format "%s[%s]" python-shell-buffer-name (buffer-name))))))
|
||||
|
||||
(ert-deftest python-shell-get-process-name-2 ()
|
||||
"Check process name calculation with `buffer-file-name'."
|
||||
(python-tests-with-temp-file
|
||||
""
|
||||
;; `buffer-file-name' is non-nil but the dedicated flag is nil and
|
||||
;; should be respected.
|
||||
(should (string= (python-shell-get-process-name nil)
|
||||
python-shell-buffer-name))
|
||||
(should (string=
|
||||
(python-shell-get-process-name t)
|
||||
(format "%s[%s]" python-shell-buffer-name buffer-file-name)))))
|
||||
""
|
||||
;; `buffer-file-name' is non-nil but the dedicated flag is nil and
|
||||
;; should be respected.
|
||||
(should (string= (python-shell-get-process-name nil)
|
||||
python-shell-buffer-name))
|
||||
(should (string=
|
||||
(python-shell-get-process-name t)
|
||||
(format "%s[%s]" python-shell-buffer-name (buffer-name))))))
|
||||
|
||||
(ert-deftest python-shell-internal-get-process-name-1 ()
|
||||
"Check the internal process name is config-unique."
|
||||
(let* ((python-shell-interpreter python-tests-shell-interpreter)
|
||||
(python-shell-interpreter-args "")
|
||||
(python-shell-prompt-regexp ">>> ")
|
||||
(python-shell-prompt-block-regexp "[.][.][.] ")
|
||||
(python-shell-setup-codes "")
|
||||
(python-shell-process-environment "")
|
||||
(python-shell-extra-pythonpaths "")
|
||||
(python-shell-exec-path "")
|
||||
(python-shell-virtualenv-path "")
|
||||
(expected (python-tests-with-temp-buffer
|
||||
"" (python-shell-internal-get-process-name))))
|
||||
;; Same configurations should match.
|
||||
(should
|
||||
(string= expected
|
||||
(python-tests-with-temp-buffer
|
||||
"" (python-shell-internal-get-process-name))))
|
||||
(let ((python-shell-interpreter-args "-B"))
|
||||
;; A minimal change should generate different names.
|
||||
(should
|
||||
(not (string=
|
||||
expected
|
||||
(python-tests-with-temp-buffer
|
||||
"" (python-shell-internal-get-process-name))))))))
|
||||
"Check the internal process name is buffer-unique sans `buffer-file-name'."
|
||||
(python-tests-with-temp-buffer
|
||||
""
|
||||
(should (string= (python-shell-internal-get-process-name)
|
||||
(format "%s[%s]" python-shell-internal-buffer-name (buffer-name))))))
|
||||
|
||||
(ert-deftest python-shell-parse-command-1 ()
|
||||
(ert-deftest python-shell-internal-get-process-name-2 ()
|
||||
"Check the internal process name is buffer-unique with `buffer-file-name'."
|
||||
(python-tests-with-temp-file
|
||||
""
|
||||
(should (string= (python-shell-internal-get-process-name)
|
||||
(format "%s[%s]" python-shell-internal-buffer-name (buffer-name))))))
|
||||
|
||||
(ert-deftest python-shell-calculate-command-1 ()
|
||||
"Check the command to execute is calculated correctly.
|
||||
Using `python-shell-interpreter' and
|
||||
`python-shell-interpreter-args'."
|
||||
|
|
@ -1832,7 +1821,7 @@ Using `python-shell-interpreter' and
|
|||
(format "%s %s"
|
||||
python-shell-interpreter
|
||||
python-shell-interpreter-args)
|
||||
(python-shell-parse-command)))))
|
||||
(python-shell-calculate-command)))))
|
||||
|
||||
(ert-deftest python-shell-calculate-process-environment-1 ()
|
||||
"Test `python-shell-process-environment' modification."
|
||||
|
|
@ -1857,17 +1846,17 @@ Using `python-shell-interpreter' and
|
|||
path-separator original-pythonpath)))))
|
||||
|
||||
(ert-deftest python-shell-calculate-process-environment-3 ()
|
||||
"Test `python-shell-virtualenv-path' modification."
|
||||
"Test `python-shell-virtualenv-root' modification."
|
||||
(let* ((original-path (or (getenv "PATH") ""))
|
||||
(python-shell-virtualenv-path
|
||||
(python-shell-virtualenv-root
|
||||
(directory-file-name user-emacs-directory))
|
||||
(process-environment
|
||||
(python-shell-calculate-process-environment)))
|
||||
(should (not (getenv "PYTHONHOME")))
|
||||
(should (string= (getenv "VIRTUAL_ENV") python-shell-virtualenv-path))
|
||||
(should (string= (getenv "VIRTUAL_ENV") python-shell-virtualenv-root))
|
||||
(should (equal (getenv "PATH")
|
||||
(format "%s/bin%s%s"
|
||||
python-shell-virtualenv-path
|
||||
python-shell-virtualenv-root
|
||||
path-separator original-path)))))
|
||||
|
||||
(ert-deftest python-shell-calculate-process-environment-4 ()
|
||||
|
|
@ -1900,13 +1889,13 @@ Using `python-shell-interpreter' and
|
|||
(ert-deftest python-shell-calculate-exec-path-2 ()
|
||||
"Test `python-shell-exec-path' modification."
|
||||
(let* ((original-exec-path exec-path)
|
||||
(python-shell-virtualenv-path
|
||||
(python-shell-virtualenv-root
|
||||
(directory-file-name (expand-file-name user-emacs-directory)))
|
||||
(exec-path (python-shell-calculate-exec-path)))
|
||||
(should (equal
|
||||
exec-path
|
||||
(append (cons
|
||||
(format "%s/bin" python-shell-virtualenv-path)
|
||||
(format "%s/bin" python-shell-virtualenv-root)
|
||||
original-exec-path))))))
|
||||
|
||||
(ert-deftest python-shell-make-comint-1 ()
|
||||
|
|
@ -1922,7 +1911,7 @@ Using `python-shell-interpreter' and
|
|||
(shell-buffer
|
||||
(python-tests-with-temp-buffer
|
||||
"" (python-shell-make-comint
|
||||
(python-shell-parse-command) proc-name)))
|
||||
(python-shell-calculate-command) proc-name)))
|
||||
(process (get-buffer-process shell-buffer)))
|
||||
(unwind-protect
|
||||
(progn
|
||||
|
|
@ -1943,7 +1932,7 @@ Using `python-shell-interpreter' and
|
|||
(shell-buffer
|
||||
(python-tests-with-temp-buffer
|
||||
"" (python-shell-make-comint
|
||||
(python-shell-parse-command) proc-name nil t)))
|
||||
(python-shell-calculate-command) proc-name nil t)))
|
||||
(process (get-buffer-process shell-buffer)))
|
||||
(unwind-protect
|
||||
(progn
|
||||
|
|
@ -2010,7 +1999,7 @@ and `python-shell-interpreter-args' in the new shell buffer."
|
|||
(setenv "PYTHONSTARTUP" startup-file)
|
||||
(python-tests-with-temp-buffer
|
||||
"" (python-shell-make-comint
|
||||
(python-shell-parse-command) proc-name nil))))
|
||||
(python-shell-calculate-command) proc-name nil))))
|
||||
(process (get-buffer-process shell-buffer)))
|
||||
(unwind-protect
|
||||
(progn
|
||||
|
|
@ -2040,10 +2029,10 @@ and `python-shell-interpreter-args' in the new shell buffer."
|
|||
(dedicated-proc-name (python-shell-get-process-name t))
|
||||
(global-shell-buffer
|
||||
(python-shell-make-comint
|
||||
(python-shell-parse-command) global-proc-name))
|
||||
(python-shell-calculate-command) global-proc-name))
|
||||
(dedicated-shell-buffer
|
||||
(python-shell-make-comint
|
||||
(python-shell-parse-command) dedicated-proc-name))
|
||||
(python-shell-calculate-command) dedicated-proc-name))
|
||||
(global-process (get-buffer-process global-shell-buffer))
|
||||
(dedicated-process (get-buffer-process dedicated-shell-buffer)))
|
||||
(unwind-protect
|
||||
|
|
@ -3767,7 +3756,7 @@ def foo(a, b, c):
|
|||
. "from IPython.core.completerlib import module_completion")
|
||||
(python-shell-completion-string-code
|
||||
. "';'.join(get_ipython().Completer.all_completions('''%s'''))\n")
|
||||
(python-shell-virtualenv-path
|
||||
(python-shell-virtualenv-root
|
||||
. "/home/user/.virtualenvs/project"))))
|
||||
(with-current-buffer buffer
|
||||
(kill-all-local-variables)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue