Mercurial > cpython-lru_cache-weakref
diff Misc/python-mode.el @ 7142:aff1e7b1f523 legacy-trunk
(py-master-file): New buffer-local variable which can be set in the
file local variable section of a file. When set, and the user hits
C-c C-c, this file gets executed instead of the buffer's file. Idea
given by Roy Dragseth <royd@math.uit.no>, but implemented differently.
(py-execute-buffer): Support py-master-file variable. If this names a
relative path, default-directory is prepended via expand-file-name.
| author | Barry Warsaw <barry@python.org> |
|---|---|
| date | Tue, 20 Jan 1998 21:43:34 +0000 |
| parents | 0255b5ecde10 |
| children | 3f0be7de7ca5 |
line wrap: on
line diff
--- a/Misc/python-mode.el Tue Jan 20 05:52:23 1998 +0000 +++ b/Misc/python-mode.el Tue Jan 20 21:43:34 1998 +0000 @@ -279,6 +279,22 @@ :type 'function :group 'python) +;; Not customizable +(defvar py-master-file nil + "If non-nil, execute the named file instead of the buffer's file. +The intent is to allow someone to set this variable file local +variable section, e.g.: + + # Local Variables: + # py-master-file: \"master.py\" + # End: + +so that hitting \\[py-execute-buffer] in that buffer executes the +named master file instead of the buffer's file. Note that if the file +name has a relative path, the `default-directory' for the file is +prepended to come up with a buffer name.") +(make-variable-buffer-local 'py-master-file) + ;; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -1205,12 +1221,20 @@ ;; Code execution command (defun py-execute-buffer (&optional async) "Send the contents of the buffer to a Python interpreter. +If the file local variable `py-master-file' is non-nil, execute the +named file instead of the buffer's file. + If there is a *Python* process buffer it is used. If a clipping restriction is in effect, only the accessible portion of the buffer is sent. A trailing newline will be supplied if needed. See the `\\[py-execute-region]' docs for an account of some subtleties." (interactive "P") + (if py-master-file + (let* ((filename (expand-file-name py-master-file)) + (buffer (or (get-file-buffer filename) + (find-file-noselect filename)))) + (set-buffer buffer))) (py-execute-region (point-min) (point-max) async))
