Python mode - `C-c |' feature suggestion
Alex
alex at somewhere.round.here
Tue Feb 22 12:14:42 EST 2000
> >>>>> "I" == ISO <pinard at iro.umontreal.ca> writes:
>
> I> My suggestion is that `C-c |' be made clever enough to discover
> I> the left margin of the region under consideration, and that it
> I> removes that margin while transmitting the region to the Python
> I> interpreter. That would allow for using that command in a much
> I> wider variety of (smaller :-) contexts.
>
> I've also wanted this for a while, but never had the time to add it.
> I'd accept a patch that implemented this feature.
This is very cursorily tested, but it seems to do the job. I'll post
again if I find any flaws (I will probably use it a lot, too.)
By the way, what are all the control-L's for?
Alex.
pot% diff --context python-mode.el python-mode.el.1
*** python-mode.el Tue Feb 22 12:04:13 2000
--- python-mode.el.1 Fri Aug 13 11:59:54 1999
***************
*** 1239,1255 ****
(setq py-file-queue nil)
(message "%d pending files de-queued." n)))
-
- (defun py-remove-common-indentation ()
- ;; py-region-shift-* (start end) doesn't move the line end is on, so
- ;; add a newline to the end of the file for end to refer to.
- (goto-char (point-max))
- (insert "\n")
- (while (progn
- (goto-char (point-min))
- (not (re-search-forward "^\\S-" nil t)))
- (py-shift-region-left (point-min) (point-max))))
-
(defun py-execute-region (start end &optional async)
"Execute the region in a Python interpreter.
--- 1239,1244 ----
***************
*** 1289,1300 ****
(format "python-%d-%d" sn pid)
(format "python-%d" sn)))
(make-temp-name "python-")))
! (file (expand-file-name temp py-temp-directory))
! (code-for-execution (buffer-substring-no-properties start end)))
! (set-buffer (get-buffer-create file))
! (insert code-for-execution)
! (py-remove-common-indentation)
! (write-region (point-min) (point-max) file nil 'nomsg)
(cond
;; always run the code in its own asynchronous subprocess
(async
--- 1278,1285 ----
(format "python-%d-%d" sn pid)
(format "python-%d" sn)))
(make-temp-name "python-")))
! (file (expand-file-name temp py-temp-directory)))
! (write-region start end file nil 'nomsg)
(cond
;; always run the code in its own asynchronous subprocess
(async
More information about the Python-list
mailing list