Function: ebrowse-switch-member-buffer-to-sibling-class
ebrowse-switch-member-buffer-to-sibling-class is an interactive and
byte-compiled function defined in ebrowse.el.gz.
Signature
(ebrowse-switch-member-buffer-to-sibling-class INC)
Documentation
Switch member display to nth sibling class.
Prefix arg INC specifies which one.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/ebrowse.el.gz
(defun ebrowse-switch-member-buffer-to-sibling-class (inc)
"Switch member display to nth sibling class.
Prefix arg INC specifies which one."
(interactive "p")
(let ((containing-list ebrowse--tree)
index cls
(supers (ebrowse-direct-base-classes ebrowse--displayed-class)))
(cl-flet ((trees-alist (trees)
(cl-loop for tr in trees
collect (cons (ebrowse-cs-name
(ebrowse-ts-class tr))
tr))))
(when supers
(let ((tree (if (cl-second supers)
(ebrowse-completing-read-value
"Relative to base class: "
(trees-alist supers) nil)
(cl-first supers))))
(unless tree (error "Not found"))
(setq containing-list (ebrowse-ts-subclasses tree)))))
(setq index (+ inc (seq-position containing-list
ebrowse--displayed-class
#'eql)))
(cond ((cl-minusp index) (message "No previous class"))
((null (nth index containing-list)) (message "No next class")))
(setq index (max 0 (min index (1- (length containing-list)))))
(setq cls (nth index containing-list))
(setf ebrowse--displayed-class cls
ebrowse--member-list (funcall ebrowse--accessor cls))
(ebrowse-redisplay-member-buffer)))