Commit 6d0f1c9e authored by Christoph Scholtes's avatar Christoph Scholtes
Browse files

* progmodes/python.el (python-default-interpreter)

(python-python-command-args, python-jython-command-args)
(python-which-shell, python-which-args, python-which-bufname)
(python-file-queue, python-comint-output-filter-function)
(python-toggle-shells, python-shell): Remove obsolete defcustoms,
variables and functions.
parent 3e2d70fd
2011-03-30 Christoph Scholtes <cschol2112@googlemail.com>
* progmodes/python.el (python-default-interpreter)
(python-python-command-args, python-jython-command-args)
(python-which-shell, python-which-args, python-which-bufname)
(python-file-queue, python-comint-output-filter-function)
(python-toggle-shells, python-shell): Remove obsolete defcustoms,
variables and functions.
2011-03-30 Stefan Monnier <monnier@iro.umontreal.ca>
 
* minibuffer.el (completion-table-dynamic): Optimize `boundaries'.
......
......@@ -499,44 +499,6 @@ statement."
:type 'integer)
(defcustom python-default-interpreter 'cpython
"*Which Python interpreter is used by default.
The value for this variable can be either `cpython' or `jpython'.
When the value is `cpython', the variables `python-python-command' and
`python-python-command-args' are consulted to determine the interpreter
and arguments to use.
When the value is `jpython', the variables `python-jpython-command' and
`python-jpython-command-args' are consulted to determine the interpreter
and arguments to use.
Note that this variable is consulted only the first time that a Python
mode buffer is visited during an Emacs session. After that, use
\\[python-toggle-shells] to change the interpreter shell."
:type '(choice (const :tag "Python (a.k.a. CPython)" cpython)
(const :tag "JPython" jpython))
:group 'python)
(defcustom python-python-command-args '("-i")
"*List of string arguments to be used when starting a Python shell."
:type '(repeat string)
:group 'python)
(defcustom python-jython-command-args '("-i")
"*List of string arguments to be used when starting a Jython shell."
:type '(repeat string)
:group 'python
:tag "JPython Command Args")
;; for toggling between CPython and JPython
(defvar python-which-shell nil)
(defvar python-which-args python-python-command-args)
(defvar python-which-bufname "Python")
(make-variable-buffer-local 'python-which-shell)
(make-variable-buffer-local 'python-which-args)
(make-variable-buffer-local 'python-which-bufname)
(defcustom python-pdbtrack-do-tracking-p t
"*Controls whether the pdbtrack feature is enabled or not.
......@@ -562,11 +524,6 @@ having to restart the program."
(push '(python-pdbtrack-is-tracking-p python-pdbtrack-minor-mode-string)
minor-mode-alist))
;; Bind python-file-queue before installing the kill-emacs-hook.
(defvar python-file-queue nil
"Queue of Python temp files awaiting execution.
Currently-active file is at the head of the list.")
(defcustom python-shell-prompt-alist
'(("ipython" . "^In \\[[0-9]+\\]: *")
(t . "^>>> "))
......@@ -2584,20 +2541,6 @@ Runs `jython-mode-hook' after `python-mode-hook'."
;; pdbtrack features
(defun python-comint-output-filter-function (string)
"Watch output for Python prompt and exec next file waiting in queue.
This function is appropriate for `comint-output-filter-functions'."
;; TBD: this should probably use split-string
(when (and (string-match python--prompt-regexp string)
python-file-queue)
(condition-case nil
(delete-file (car python-file-queue))
(error nil))
(setq python-file-queue (cdr python-file-queue))
(if python-file-queue
(let ((pyproc (get-buffer-process (current-buffer))))
(python-execute-file pyproc (car python-file-queue))))))
(defun python-pdbtrack-overlay-arrow (activation)
"Activate or deactivate arrow at beginning-of-line in current buffer."
(if activation
......@@ -2742,45 +2685,6 @@ problem."
(setq got buf)))
got))
(defun python-toggle-shells (arg)
"Toggles between the CPython and JPython shells.
With positive argument ARG (interactively \\[universal-argument]),
uses the CPython shell, with negative ARG uses the JPython shell, and
with a zero argument, toggles the shell.
Programmatically, ARG can also be one of the symbols `cpython' or
`jpython', equivalent to positive arg and negative arg respectively."
(interactive "P")
;; default is to toggle
(if (null arg)
(setq arg 0))
;; preprocess arg
(cond
((equal arg 0)
;; toggle
(if (string-equal python-which-bufname "Python")
(setq arg -1)
(setq arg 1)))
((equal arg 'cpython) (setq arg 1))
((equal arg 'jpython) (setq arg -1)))
(let (msg)
(cond
((< 0 arg)
;; set to CPython
(setq python-which-shell python-python-command
python-which-args python-python-command-args
python-which-bufname "Python"
msg "CPython"
mode-name "Python"))
((> 0 arg)
(setq python-which-shell python-jython-command
python-which-args python-jython-command-args
python-which-bufname "JPython"
msg "JPython"
mode-name "JPython")))
(message "Using the %s shell" msg)))
;; Python subprocess utilities and filters
(defun python-execute-file (proc filename)
"Send to Python interpreter process PROC \"execfile('FILENAME')\".
......@@ -2801,71 +2705,6 @@ comint believe the user typed this string so that
(set-buffer curbuf))
(process-send-string proc cmd)))
;;;###autoload
(defun python-shell (&optional argprompt)
"Start an interactive Python interpreter in another window.
This is like Shell mode, except that Python is running in the window
instead of a shell. See the `Interactive Shell' and `Shell Mode'
sections of the Emacs manual for details, especially for the key
bindings active in the `*Python*' buffer.
With optional \\[universal-argument], the user is prompted for the
flags to pass to the Python interpreter. This has no effect when this
command is used to switch to an existing process, only when a new
process is started. If you use this, you will probably want to ensure
that the current arguments are retained (they will be included in the
prompt). This argument is ignored when this function is called
programmatically.
Note: You can toggle between using the CPython interpreter and the
JPython interpreter by hitting \\[python-toggle-shells]. This toggles
buffer local variables which control whether all your subshell
interactions happen to the `*JPython*' or `*Python*' buffers (the
latter is the name used for the CPython buffer).
Warning: Don't use an interactive Python if you change sys.ps1 or
sys.ps2 from their default values, or if you're running code that
prints `>>> ' or `... ' at the start of a line. `python-mode' can't
distinguish your output from Python's output, and assumes that `>>> '
at the start of a line is a prompt from Python. Similarly, the Emacs
Shell mode code assumes that both `>>> ' and `... ' at the start of a
line are Python prompts. Bad things can happen if you fool either
mode.
Warning: If you do any editing *in* the process buffer *while* the
buffer is accepting output from Python, do NOT attempt to `undo' the
changes. Some of the output (nowhere near the parts you changed!) may
be lost if you do. This appears to be an Emacs bug, an unfortunate
interaction between undo and process filters; the same problem exists in
non-Python process buffers using the default (Emacs-supplied) process
filter."
(interactive "P")
(require 'ansi-color) ; For ipython
;; Set the default shell if not already set
(when (null python-which-shell)
(python-toggle-shells python-default-interpreter))
(let ((args python-which-args))
(when (and argprompt
(called-interactively-p 'interactive)
(fboundp 'split-string))
;; TBD: Perhaps force "-i" in the final list?
(setq args (split-string
(read-string (concat python-which-bufname
" arguments: ")
(concat
(mapconcat 'identity python-which-args " ") " ")
))))
(switch-to-buffer-other-window
(apply 'make-comint python-which-bufname python-which-shell nil args))
(set-process-sentinel (get-buffer-process (current-buffer))
'python-sentinel)
(python--set-prompt-regexp)
(add-hook 'comint-output-filter-functions
'python-comint-output-filter-function nil t)
;; pdbtrack
(set-syntax-table python-mode-syntax-table)
(use-local-map python-shell-map)))
(defun python-pdbtrack-toggle-stack-tracking (arg)
(interactive "P")
(if (not (get-buffer-process (current-buffer)))
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment