diff options
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r-- | lisp/emacs-lisp/edebug.el | 16 | ||||
-rw-r--r-- | lisp/emacs-lisp/lisp.el | 55 |
2 files changed, 44 insertions, 27 deletions
diff --git a/lisp/emacs-lisp/edebug.el b/lisp/emacs-lisp/edebug.el index 9290ede2bdf..beb88cfea25 100644 --- a/lisp/emacs-lisp/edebug.el +++ b/lisp/emacs-lisp/edebug.el @@ -570,6 +570,7 @@ already is one.)" ;; Compatibility with old versions. (defalias 'edebug-all-defuns 'edebug-all-defs) +;;;###autoload (defun edebug-all-defs () "Toggle edebugging of all definitions." (interactive) @@ -578,6 +579,7 @@ already is one.)" (if edebug-all-defs "on" "off"))) +;;;###autoload (defun edebug-all-forms () "Toggle edebugging of all forms." (interactive) @@ -2516,6 +2518,7 @@ MSG is printed after `::::} '." (defvar edebug-outside-o-a-p) ; outside overlay-arrow-position (defvar edebug-outside-o-a-s) ; outside overlay-arrow-string (defvar edebug-outside-c-i-e-a) ; outside cursor-in-echo-area +(defvar edebug-outside-d-c-i-n-s-w) ; outside default-cursor-in-non-selected-windows (defvar edebug-eval-list nil) ;; List of expressions to evaluate. @@ -2557,11 +2560,13 @@ MSG is printed after `::::} '." (edebug-outside-o-a-p overlay-arrow-position) (edebug-outside-o-a-s overlay-arrow-string) - (edebug-outside-c-i-e-a cursor-in-echo-area)) + (edebug-outside-c-i-e-a cursor-in-echo-area) + (edebug-outside-d-c-i-n-s-w default-cursor-in-non-selected-windows)) (unwind-protect (let ((overlay-arrow-position overlay-arrow-position) (overlay-arrow-string overlay-arrow-string) (cursor-in-echo-area nil) + (default-cursor-in-non-selected-windows t) ;; any others?? ) (if (not (buffer-name edebug-buffer)) @@ -2767,7 +2772,8 @@ MSG is printed after `::::} '." (setq overlay-arrow-position edebug-outside-o-a-p overlay-arrow-string edebug-outside-o-a-s - cursor-in-echo-area edebug-outside-c-i-e-a) + cursor-in-echo-area edebug-outside-c-i-e-a + default-cursor-in-non-selected-windows edebug-outside-d-c-i-n-s-w) ))) @@ -3580,6 +3586,7 @@ Return the result of the last expression." (overlay-arrow-position edebug-outside-o-a-p) (overlay-arrow-string edebug-outside-o-a-s) (cursor-in-echo-area edebug-outside-c-i-e-a) + (default-cursor-in-non-selected-windows edebug-outside-d-c-i-n-s-w) ) (unwind-protect (save-excursion ; of edebug-buffer @@ -3618,6 +3625,7 @@ Return the result of the last expression." edebug-outside-o-a-p overlay-arrow-position edebug-outside-o-a-s overlay-arrow-string edebug-outside-c-i-e-a cursor-in-echo-area + edebug-outside-d-c-i-n-s-w default-cursor-in-non-selected-windows ) ;; Restore the outside saved values; don't alter @@ -3897,7 +3905,7 @@ buffer) there are local and global key bindings to several Edebug specific commands. E.g. `edebug-step-mode' is bound to \\[edebug-step-mode] in the Edebug buffer and \\<global-map>\\[edebug-step-mode] in any buffer. -Also see bindings for the eval list buffer, *edebug*. +Also see bindings for the eval list buffer *edebug* in `edebug-eval-mode'. The edebug buffer commands: \\{edebug-mode-map} @@ -4054,7 +4062,7 @@ buffer and \\<global-map>\\[edebug-step-mode] in any buffer. Eval list buffer commands: \\{edebug-eval-mode-map} -Global commands prefixed by global-edebug-prefix: +Global commands prefixed by `global-edebug-prefix': \\{global-edebug-map}") ;;; Interface with standard debugger. diff --git a/lisp/emacs-lisp/lisp.el b/lisp/emacs-lisp/lisp.el index 7aeb33a648e..30505c95223 100644 --- a/lisp/emacs-lisp/lisp.el +++ b/lisp/emacs-lisp/lisp.el @@ -569,28 +569,37 @@ considered." ((null completion) (message "Can't find completion for \"%s\"" pattern) (ding)) + ((not (string= pattern completion)) + (delete-region beg end) + (insert completion) + ;; Don't leave around a completions buffer that's out of date. + (let ((win (get-buffer-window "*Completions*" 0))) + (if win (with-selected-window win (bury-buffer))))) (t - (unless (string= completion pattern) - (delete-region beg end) - (insert completion) - (setq pattern completion)) - (message "Making completion list...") - (let ((list (all-completions pattern obarray predicate))) - (setq list (sort list 'string<)) - (or (eq predicate 'fboundp) - (let (new) - (while list - (setq new (cons (if (fboundp (intern (car list))) - (list (car list) " <f>") - (car list)) - new)) - (setq list (cdr list))) - (setq list (nreverse new)))) - (if (> (length list) 1) - (with-output-to-temp-buffer "*Completions*" - (display-completion-list list pattern)) - (delete-windows-on "*Completions*"))) - (message "Making completion list...%s" "done"))))))) - -;;; arch-tag: aa7fa8a4-2e6f-4e9b-9cd9-fef06340e67e + (let ((minibuf-is-in-use + (eq (minibuffer-window) (selected-window)))) + (unless minibuf-is-in-use + (message "Making completion list...")) + (let ((list (all-completions pattern obarray predicate))) + (setq list (sort list 'string<)) + (or (eq predicate 'fboundp) + (let (new) + (while list + (setq new (cons (if (fboundp (intern (car list))) + (list (car list) " <f>") + (car list)) + new)) + (setq list (cdr list))) + (setq list (nreverse new)))) + (if (> (length list) 1) + (with-output-to-temp-buffer "*Completions*" + (display-completion-list list pattern)) + ;; Don't leave around a completions buffer that's + ;; out of date. + (let ((win (get-buffer-window "*Completions*" 0))) + (if win (with-selected-window win (bury-buffer)))))) + (unless minibuf-is-in-use + (message "Making completion list...%s" "done"))))))))) + +;; arch-tag: aa7fa8a4-2e6f-4e9b-9cd9-fef06340e67e ;;; lisp.el ends here |