1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-04 02:51:31 -08:00

Put ELP results in a special-mode buffer

* lisp/emacs-lisp/elp.el (elp-results): Make `q' work in ELP
results buffer (bug#14104).
(elp-results-mode): Define as an empty special mode derivation.
This commit is contained in:
Lars Ingebrigtsen 2021-05-31 08:17:00 +02:00
parent 2009832a82
commit d51e6af9a7

View file

@ -483,6 +483,10 @@ original definition, use \\[elp-restore-function] or \\[elp-restore-all]."
'face 'link 'face 'link
'help-echo "mouse-2 or RET jumps to definition"))) 'help-echo "mouse-2 or RET jumps to definition")))
(define-derived-mode elp-results-mode special-mode "ELP"
"Mode for ELP results"
:interactive nil)
;;;###autoload ;;;###autoload
(defun elp-results () (defun elp-results ()
"Display current profiling results. "Display current profiling results.
@ -490,11 +494,12 @@ If `elp-reset-after-results' is non-nil, then current profiling
information for all instrumented functions is reset after results are information for all instrumented functions is reset after results are
displayed." displayed."
(interactive) (interactive)
(let ((curbuf (current-buffer)) (pop-to-buffer
(resultsbuf (if elp-recycle-buffers-p (if elp-recycle-buffers-p
(get-buffer-create elp-results-buffer) (get-buffer-create elp-results-buffer)
(generate-new-buffer elp-results-buffer)))) (generate-new-buffer elp-results-buffer)))
(set-buffer resultsbuf) (elp-results-mode)
(let ((inhibit-read-only t))
(erase-buffer) (erase-buffer)
;; get the length of the longest function name being profiled ;; get the length of the longest function name being profiled
(let* ((longest 0) (let* ((longest 0)
@ -565,9 +570,6 @@ displayed."
(if elp-sort-by-function (if elp-sort-by-function
(setq resvec (sort resvec elp-sort-by-function))) (setq resvec (sort resvec elp-sort-by-function)))
(mapc 'elp-output-result resvec)) (mapc 'elp-output-result resvec))
;; now pop up results buffer
(set-buffer curbuf)
(pop-to-buffer resultsbuf)
;; copy results to standard-output? ;; copy results to standard-output?
(if (or elp-use-standard-output noninteractive) (if (or elp-use-standard-output noninteractive)
(princ (buffer-substring (point-min) (point-max))) (princ (buffer-substring (point-min) (point-max)))