Warning: this is an htmlized version!
The original is here, and
the conversion rules are here.
;; This file:
;;   http://angg.twu.net/elisp/eev-eeb.el.html
;;   http://angg.twu.net/elisp/eev-eeb.el
;;           (find-angg "elisp/eev-eeb.el")
;; Author: Eduardo Ochs <eduardoochs@gmail.com>
;;
;; (defun e () (interactive) (find-angg "elisp/eev-eeb.el"))
;; Version: 2022may10

;; «.commented-defs»	(to "commented-defs")
;; «.bare-defs»		(to "bare-defs")
;; «.eeb-current-defun»	(to "eeb-current-defun")




;; Tests: (ee-eeb-def-with-current-buffer "TODO")
;;           (eeb-def-with-current-buffer "TODO")
;;           (eeb 'buffer-file-name)
;;           (find-efunctionpp 'eeb)
;; (find-efunction-links 'find-emajormode-links)
;; (find-efunction-links 'find-eminormodes-links)
;; (find-efunction-links 'find-emodeline-links)
;;                       (find-emodeline-links)
;; (find-efunction 'eepitch-eval-at-target-window)


;; «commented-defs»  (to ".commented-defs")

(defun eeb (&rest rest)
  (error "Error: eeb hasn't been set up!  See: (find-eeb-links)"))

(defun eeb-def-with-current-buffer (buffer)
  "Redefine `eeb' in a way that uses `with-current-buffer'"
  (eval (ee-eeb-def-with-current-buffer buffer))
  "`eeb' redefined in a way that def `with-current-buffer'.
Run `M-x find-eeb-links' for more info.")

(defun ee-eeb-def-with-current-buffer (buffer)
  "See `eeb-def-with-current-buffer'."
  `(defun eeb (&rest code)
     "See: (find-eeb-links)"
     (with-current-buffer ,buffer
       (eval ,'`(progn ,@code)))))



;; «bare-defs»  (to ".bare-defs")

(defun eeb-def-with-current-buffer (buffer)
  (eval (ee-eeb-def-with-current-buffer buffer)))

(defun ee-eeb-def-with-current-buffer (buffer)
  `(defun eeb (&rest code)
     (with-current-buffer ,buffer
       (eval (cons 'progn code)))))

(defun eeb-def-select-window (buffer)
  (eval (ee-eeb-def-select-window buffer)))

(defun ee-eeb-def-select-window (buffer)
  `(defun eeb (&rest code)
     (save-selected-window
       (select-window (get-buffer-window ,buffer))
       (eval (cons 'progn code)))))

(defun eeb-def-eval-here ()
  (eval (ee-eeb-def-eval-here)))

(defun ee-eeb-def-eval-here ()
  `(defun eeb (&rest code)
     (eval (cons 'progn code))))



(eeb-def-select-window "TODO")
(eeb '(find-etpat))

(eeb-def-select-window "*Help*")
(eeb-def-with-current-buffer "*Help*")
(eeb '(find-etpat))


(find-dbsw-call '(describe-mode) "ELi")

(progn (eek "C-h m")
       (ee-goto-position "Eli")
       )

(progn (eek "C-h m")
       (ee-goto-position "Eli")
       (find-etpat)
       (ee-goto-position "Sho")
       )

(progn (eek "C-h m")
       (ee-goto-position "Eli")
       (find-etpat)
       (ee-goto-position "Sho")
       (eek "RET")
       )

(progn (eek "C-h m")
       (ee-goto-position "Eli")
       (find-etpat)
       (ee-goto-position "Sho" "Sho")
       )



(load "help-fns.el")



  (save-selected-window
    (select-window (eepitch-target-window))
    (eval code)))


    (eval code)))



(defun ee-eeb-def-with-current-buffer (buffer)
  "See `eeb-def-with-current-buffer'."
  `(defun eeb (&rest code)
     "See: (find-eeb-links)"
     (with-current-buffer ,buffer
       (eval ,'`(progn ,@code)))))



(ee-eeb-defun-with-current-buffer "TODO")
(eeb-defun-with-current-buffer "TODO")
(eeb 'buffer-file-name)


(eeb-def-with-current-buffer "eev-eeb.el")




;; (find-eev "eev-elinks.el" "find-emodeline-links")
;; (find-emodeline-links)

(find-efile "")
internal--before-with-selected-window

(defun find-emodeline-links (&rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks about the mode line.
You can use this to understand how the mode line works."
  (interactive)
  (apply
   'find-elinks
   `((find-emodeline-links ,@pos-spec-list)
     ;; Convention: the first sexp always regenerates the buffer.
     (find-efunction 'find-emodeline-links)
     ""
     (find-elnode "Mode Line Format")
     (find-elnode "Emulating Mode Line")
     (find-evardescr 'mode-line-format)
     (find-epp mode-line-format)
     (find-epp (format-mode-line mode-line-format))
     (find-epp (format-mode-line mode-line-format 'header-line))
     (ee-no-properties (format-mode-line mode-line-format))
     (insert "\n# " (format-mode-line mode-line-format))
     ""
     (find-evardescr 'mode-line-front-space)
     (find-evardescr 'mode-line-mule-info)
     (find-evardescr 'mode-line-client)
     (find-evardescr 'mode-line-modified)
     (find-evardescr 'mode-line-remote)
     (find-evardescr 'mode-line-frame-identification)
     (find-evardescr 'mode-line-buffer-identification)
     (find-evardescr 'mode-line-position)
     (find-evardescr 'mode-line-modes)
     (find-evardescr 'mode-line-misc-info)
     (find-evardescr 'mode-line-end-spaces)
     )
   pos-spec-list))
















;; «eeb-current-defun»  (to ".eeb-current-defun")
;; (find-efunction 'find-efunctionpp)
;; (find-efunction 'find-eppp-with-prefix)

(defun eeb-current-defun ()
  `(defun eeb ,@(cdr (symbol-function 'eeb))))

(defun ee-ppe0 (obj)
  "Like `ee-pp0', but pretty-prints OBJ with `pp-emacs-lisp-code'."
  (with-temp-buffer (pp-emacs-lisp-code obj) (buffer-string)))

(defun find-eppe (object &rest pos-spec-list)
  "Visit a temporary buffer containing a pretty-printed version of OBJECT."
  (let ((ee-buffer-name (or ee-buffer-name "*pp*")))
    (apply 'find-estring-elisp (ee-ppe0 object) pos-spec-list)))

;;  (find-epp (eeb-current-defun))
;; (find-eppe (eeb-current-defun))





;; Local Variables:
;; coding:  utf-8-unix
;; End: