[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: OS X python.el completion issue
From: |
Stefan Monnier |
Subject: |
Re: OS X python.el completion issue |
Date: |
Sat, 26 Mar 2005 20:05:38 -0500 |
User-agent: |
Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux) |
> Curiouser and curiouser. I put a message in
> python-preoutput-filter that echoes its parameter as you
> suggest. Looking at the contents of my messages buffer after
> attempting the completion for "os.", the "Can't find completion"
> message from the python completion routine happens after
> precisely 1024 characters are read. Furthermore it looks like the
> data coming from the process is interrupted every 1024
> characters.
Oh, I think I know what's happening.
Can you try the patch below?
I haven't been able to really test it because in my case the input string is
always just one complete line, so the looping and the
python-preoutput-leftover aren't used.
Stefan
--- orig/lisp/progmodes/python.el
+++ mod/lisp/progmodes/python.el
@@ -1098,28 +1098,46 @@
(defvar python-preoutput-continuation nil
"If non-nil, funcall this when `python-preoutput-filter' sees `_emacs_ok'.")
+(defvar python-preoutput-leftover nil)
+
;; Using this stops us getting lines in the buffer like
;; >>> ... ... >>>
;; Also look for (and delete) an `_emacs_ok' string and call
;; `python-preoutput-continuation' if we get it.
(defun python-preoutput-filter (s)
"`comint-preoutput-filter-functions' function: ignore prompts not at bol."
- (cond ((and (string-match (rx (and string-start (repeat 3 (any ".>"))
- " " string-end))
- s)
- (/= (let ((inhibit-field-text-motion t))
- (line-beginning-position))
- (point)))
- "")
- ((string= s "_emacs_ok\n")
- (when python-preoutput-continuation
- (funcall python-preoutput-continuation)
- (setq python-preoutput-continuation nil))
- "")
- ((string-match "_emacs_out \\(.*\\)\n" s)
- (setq python-preoutput-result (match-string 1 s))
- "")
- (t s)))
+ (when python-preoutput-leftover
+ (setq s (concat python-preoutput-leftover s))
+ (setq python-preoutput-leftover nil))
+ (let ((res ""))
+ (while (> (length s) 0)
+ (cond ((and (string-match (rx (and string-start (repeat 3 (any ".>"))
+ " " string-end))
+ s)
+ (/= (let ((inhibit-field-text-motion t))
+ (line-beginning-position))
+ (point)))
+ (setq s nil))
+ ((string-match "\\`_emacs_ok\n" s)
+ (setq s (substring s (match-end 0)))
+ (when python-preoutput-continuation
+ (funcall python-preoutput-continuation)
+ (setq python-preoutput-continuation nil)))
+ ((string-match "\\`_emacs_out \\(.*\\)\n?" s)
+ (setq python-preoutput-result
+ (concat python-preoutput-result (match-string 1 s)))
+ (setq s (substring s (match-end 0)))
+ (if (/= (match-end 1) (match-end 0))
+ (set (make-local-variable 'python-preoutput-leftover)
+ "_emacs_out ")))
+ ((or (eq t (compare-strings s nil nil "_emacs_ok\n" nil (length s)))
+ (eq t (compare-strings s nil nil "_emacs_out " nil (length
s))))
+ (set (make-local-variable 'python-preoutput-leftover) s)
+ (setq s nil))
+ ((string-match "\\`.*\n?" s)
+ (setq res (concat res (match-string 0 s)))
+ (setq s (substring s (match-end 0))))))
+ res))
;;;###autoload
(defun run-python (&optional cmd noshow)
- Re: Suggestion for python.el and emacs.py, (continued)
- Re: Suggestion for python.el and emacs.py, Steven Huwig, 2005/03/24
- Re: Suggestion for python.el and emacs.py, Dave Love, 2005/03/25
- Re: Suggestion for python.el and emacs.py, Steven Huwig, 2005/03/25
- Re: Suggestion for python.el and emacs.py, Stefan Monnier, 2005/03/26
- Re: Suggestion for python.el and emacs.py, Steven Huwig, 2005/03/26
- Re: Suggestion for python.el and emacs.py, Stefan Monnier, 2005/03/26
- OS X python.el completion issue (was Re: Suggestion for python.el and emacs.py), Steven Huwig, 2005/03/26
- Re: OS X python.el completion issue (was Re: Suggestion for python.el and emacs.py), Steven Huwig, 2005/03/26
- Re: OS X python.el completion issue, Stefan Monnier, 2005/03/26
- Re: OS X python.el completion issue, Steven Huwig, 2005/03/26
- Re: OS X python.el completion issue,
Stefan Monnier <=
- Re: OS X python.el completion issue, Steven Huwig, 2005/03/27
- Re: OS X python.el completion issue, Stefan Monnier, 2005/03/27
- Re: OS X python.el completion issue, Steven Huwig, 2005/03/27
- Re: OS X python.el completion issue, Stefan Monnier, 2005/03/28
- Re: OS X python.el completion issue, Steven Huwig, 2005/03/28
- Re: OS X python.el completion issue, Stefan Monnier, 2005/03/29