31 |
;; - A complete set of tags-like functions working on class trees |
;; - A complete set of tags-like functions working on class trees |
32 |
;; - An electric buffer list showing class browser buffers only |
;; - An electric buffer list showing class browser buffers only |
33 |
|
|
34 |
;; Documentation is found in a separate Info file. |
;; Documentation is found in a separate Info file. |
35 |
|
|
36 |
;;; Code: |
;;; Code: |
37 |
|
|
375 |
;; they are defined. |
;; they are defined. |
376 |
member-table) |
member-table) |
377 |
|
|
378 |
|
|
379 |
(defstruct (ebrowse-ts (:type vector) :named) |
(defstruct (ebrowse-ts (:type vector) :named) |
380 |
"Tree structure. |
"Tree structure. |
381 |
Following the header structure, an BROWSE file contains a number |
Following the header structure, a BROWSE file contains a number |
382 |
of `ebrowse-ts' structures, each one describing one root class of |
of `ebrowse-ts' structures, each one describing one root class of |
383 |
the class hierarchy with all its subclasses." |
the class hierarchy with all its subclasses." |
384 |
;; A `ebrowse-cs' structure describing the root class. |
;; A `ebrowse-cs' structure describing the root class. |
551 |
(defvar ebrowse--frozen-flag nil |
(defvar ebrowse--frozen-flag nil |
552 |
"Non-nil means an Ebrowse buffer won't be reused. |
"Non-nil means an Ebrowse buffer won't be reused. |
553 |
Buffer-local in Ebrowse buffers.") |
Buffer-local in Ebrowse buffers.") |
554 |
|
|
555 |
|
|
556 |
(defvar ebrowse--show-file-names-flag nil |
(defvar ebrowse--show-file-names-flag nil |
557 |
"Non-nil means show file names in a tree buffer. |
"Non-nil means show file names in a tree buffer. |
572 |
"Width of a columns to display for short member display form. |
"Width of a columns to display for short member display form. |
573 |
Buffer-local in Ebrowse member buffers.") |
Buffer-local in Ebrowse member buffers.") |
574 |
|
|
575 |
|
|
576 |
(defvar ebrowse--virtual-display-flag nil |
(defvar ebrowse--virtual-display-flag nil |
577 |
"Non-nil means display virtual members in a member buffer. |
"Non-nil means display virtual members in a member buffer. |
578 |
Buffer-local in Ebrowse member buffers.") |
Buffer-local in Ebrowse member buffers.") |
796 |
|
|
797 |
(defun ebrowse-base-classes (tree) |
(defun ebrowse-base-classes (tree) |
798 |
"Return list of base-classes of TREE by searching subclass lists. |
"Return list of base-classes of TREE by searching subclass lists. |
799 |
This function must be used instead of the struct slot |
This function must be used instead of the struct slot |
800 |
`base-classes' to access the base-class list directly because it |
`base-classes' to access the base-class list directly because it |
801 |
computes this information lazily." |
computes this information lazily." |
802 |
(or (ebrowse-ts-base-classes tree) |
(or (ebrowse-ts-base-classes tree) |
885 |
;;; Reading a tree from disk |
;;; Reading a tree from disk |
886 |
|
|
887 |
(defun ebrowse-read () |
(defun ebrowse-read () |
888 |
"Read `ebrowse-hs' and `ebrowse-ts' structures in the current buffer. |
"Read `ebrowse-hs' and `ebrowse-ts' structures in the current buffer. |
889 |
Return a list (HEADER TREE) where HEADER is the file header read |
Return a list (HEADER TREE) where HEADER is the file header read |
890 |
and TREE is a list of `ebrowse-ts' structures forming the class tree." |
and TREE is a list of `ebrowse-ts' structures forming the class tree." |
891 |
(let ((header (condition-case nil |
(let ((header (condition-case nil |
924 |
(ebrowse-tree-mode) |
(ebrowse-tree-mode) |
925 |
(current-buffer))) |
(current-buffer))) |
926 |
|
|
927 |
|
|
928 |
(defun ebrowse-create-tree-buffer (tree tags-file header obarray pop) |
(defun ebrowse-create-tree-buffer (tree tags-file header obarray pop) |
929 |
"Create a new tree buffer for tree TREE. |
"Create a new tree buffer for tree TREE. |
930 |
The tree was loaded from file TAGS-FILE. |
The tree was loaded from file TAGS-FILE. |
1060 |
(define-key map [down-mouse-3] 'ebrowse-mouse-3-in-tree-buffer) |
(define-key map [down-mouse-3] 'ebrowse-mouse-3-in-tree-buffer) |
1061 |
(define-key map [mouse-2] 'ebrowse-mouse-2-in-tree-buffer) |
(define-key map [mouse-2] 'ebrowse-mouse-2-in-tree-buffer) |
1062 |
(define-key map [down-mouse-1] 'ebrowse-mouse-1-in-tree-buffer)) |
(define-key map [down-mouse-1] 'ebrowse-mouse-1-in-tree-buffer)) |
1063 |
|
|
1064 |
(let ((map1 (make-sparse-keymap))) |
(let ((map1 (make-sparse-keymap))) |
1065 |
(suppress-keymap map1 t) |
(suppress-keymap map1 t) |
1066 |
(define-key map "L" map1) |
(define-key map "L" map1) |
1115 |
(interactive) |
(interactive) |
1116 |
(let* ((ident (propertized-buffer-identification "C++ Tree")) |
(let* ((ident (propertized-buffer-identification "C++ Tree")) |
1117 |
header tree buffer-read-only) |
header tree buffer-read-only) |
1118 |
|
|
1119 |
(kill-all-local-variables) |
(kill-all-local-variables) |
1120 |
(use-local-map ebrowse-tree-mode-map) |
(use-local-map ebrowse-tree-mode-map) |
1121 |
|
|
1122 |
(unless (zerop (buffer-size)) |
(unless (zerop (buffer-size)) |
1123 |
(goto-char (point-min)) |
(goto-char (point-min)) |
1124 |
(multiple-value-setq (header tree) (ebrowse-read)) |
(multiple-value-setq (header tree) (ebrowse-read)) |
1126 |
(setq tree (ebrowse-sort-tree-list tree)) |
(setq tree (ebrowse-sort-tree-list tree)) |
1127 |
(erase-buffer) |
(erase-buffer) |
1128 |
(message nil)) |
(message nil)) |
1129 |
|
|
1130 |
(mapcar 'make-local-variable |
(mapcar 'make-local-variable |
1131 |
'(ebrowse--tags-file-name |
'(ebrowse--tags-file-name |
1132 |
ebrowse--indentation |
ebrowse--indentation |
1136 |
ebrowse--frozen-flag |
ebrowse--frozen-flag |
1137 |
ebrowse--tree-obarray |
ebrowse--tree-obarray |
1138 |
revert-buffer-function)) |
revert-buffer-function)) |
1139 |
|
|
1140 |
(setf ebrowse--show-file-names-flag nil |
(setf ebrowse--show-file-names-flag nil |
1141 |
ebrowse--tree-obarray (make-vector 127 0) |
ebrowse--tree-obarray (make-vector 127 0) |
1142 |
ebrowse--frozen-flag nil |
ebrowse--frozen-flag nil |
1159 |
(ebrowse-redraw-tree) |
(ebrowse-redraw-tree) |
1160 |
(set-buffer-modified-p nil)) |
(set-buffer-modified-p nil)) |
1161 |
(run-hooks 'ebrowse-tree-mode-hook))) |
(run-hooks 'ebrowse-tree-mode-hook))) |
1162 |
|
|
1163 |
|
|
1164 |
|
|
1165 |
(defun ebrowse-update-tree-buffer-mode-line () |
(defun ebrowse-update-tree-buffer-mode-line () |
1222 |
(condition-case error |
(condition-case error |
1223 |
(loop repeat (or n-times 1) |
(loop repeat (or n-times 1) |
1224 |
as tree = (ebrowse-tree-at-point) |
as tree = (ebrowse-tree-at-point) |
1225 |
do (progn |
do (progn |
1226 |
(setf (ebrowse-ts-mark tree) (not (ebrowse-ts-mark tree))) |
(setf (ebrowse-ts-mark tree) (not (ebrowse-ts-mark tree))) |
1227 |
(forward-line 1) |
(forward-line 1) |
1228 |
(push tree to-change))) |
(push tree to-change))) |
1426 |
"Pop to a browser buffer from any other buffer. |
"Pop to a browser buffer from any other buffer. |
1427 |
Pop to member buffer if no prefix ARG, to tree buffer otherwise." |
Pop to member buffer if no prefix ARG, to tree buffer otherwise." |
1428 |
(interactive "P") |
(interactive "P") |
1429 |
(let ((buffer (get-buffer (if arg |
(let ((buffer (get-buffer (if arg |
1430 |
ebrowse-tree-buffer-name |
ebrowse-tree-buffer-name |
1431 |
ebrowse-member-buffer-name)))) |
ebrowse-member-buffer-name)))) |
1432 |
(unless buffer |
(unless buffer |
1433 |
(setq buffer |
(setq buffer |
1434 |
(get-buffer (if arg |
(get-buffer (if arg |
1435 |
ebrowse-member-buffer-name |
ebrowse-member-buffer-name |
1436 |
ebrowse-tree-buffer-name)))) |
ebrowse-tree-buffer-name)))) |
1536 |
:file (ebrowse-cs-file class) |
:file (ebrowse-cs-file class) |
1537 |
:point (ebrowse-cs-point class)))) |
:point (ebrowse-cs-point class)))) |
1538 |
(ebrowse-view/find-file-and-search-pattern |
(ebrowse-view/find-file-and-search-pattern |
1539 |
browse-struct |
browse-struct |
1540 |
(list ebrowse--header class nil) |
(list ebrowse--header class nil) |
1541 |
file |
file |
1542 |
ebrowse--tags-file-name |
ebrowse--tags-file-name |
1638 |
(make-local-variable 'ebrowse--frame-configuration) |
(make-local-variable 'ebrowse--frame-configuration) |
1639 |
(setq ebrowse--frame-configuration old-frame-configuration) |
(setq ebrowse--frame-configuration old-frame-configuration) |
1640 |
(make-local-variable 'ebrowse--view-exit-action) |
(make-local-variable 'ebrowse--view-exit-action) |
1641 |
(setq ebrowse--view-exit-action |
(setq ebrowse--view-exit-action |
1642 |
(and (not had-a-buf) |
(and (not had-a-buf) |
1643 |
(not (buffer-modified-p buf-to-view)) |
(not (buffer-modified-p buf-to-view)) |
1644 |
'kill-buffer)) |
'kill-buffer)) |
1653 |
INFO is a list (HEADER MEMBER-OR-CLASS ACCESSOR). HEADER is the |
INFO is a list (HEADER MEMBER-OR-CLASS ACCESSOR). HEADER is the |
1654 |
header structure of a class tree. MEMBER-OR-CLASS is either an |
header structure of a class tree. MEMBER-OR-CLASS is either an |
1655 |
`ebrowse-ms' or `ebrowse-cs' structure depending on what is searched. |
`ebrowse-ms' or `ebrowse-cs' structure depending on what is searched. |
1656 |
ACCESSOR is an accessor function for the member list of an member |
ACCESSOR is an accessor function for the member list of a member |
1657 |
if MEMBER-OR-CLASS is an `ebrowse-ms'. |
if MEMBER-OR-CLASS is an `ebrowse-ms'. |
1658 |
FILE is the file to search the member in. |
FILE is the file to search the member in. |
1659 |
FILE is not taken out of STRUC here because the filename in STRUC |
FILE is not taken out of STRUC here because the filename in STRUC |
1706 |
|
|
1707 |
|
|
1708 |
(defun ebrowse-class-declaration-regexp (name) |
(defun ebrowse-class-declaration-regexp (name) |
1709 |
"Construct a regexp for a declaration of class NAME." |
"Construct a regexp for a declaration of class NAME." |
1710 |
(concat "^[ \t]*\\(template[ \t\n]*<.*>\\)?" |
(concat "^[ \t]*\\(template[ \t\n]*<.*>\\)?" |
1711 |
"[ \t\n]*\\(class\\|struct\\|union\\).*\\S_" |
"[ \t\n]*\\(class\\|struct\\|union\\).*\\S_" |
1712 |
(ebrowse-symbol-regexp name) |
(ebrowse-symbol-regexp name) |
1841 |
start-of-class-name end-of-class-name) |
start-of-class-name end-of-class-name) |
1842 |
;; Insert mark |
;; Insert mark |
1843 |
(insert (if (ebrowse-ts-mark tree) ">" " ")) |
(insert (if (ebrowse-ts-mark tree) ">" " ")) |
1844 |
|
|
1845 |
;; Indent and insert class name |
;; Indent and insert class name |
1846 |
(indent-to (+ (* level ebrowse--indentation) |
(indent-to (+ (* level ebrowse--indentation) |
1847 |
ebrowse-tree-left-margin)) |
ebrowse-tree-left-margin)) |
1848 |
(setq start (point)) |
(setq start (point)) |
1849 |
(insert (ebrowse-qualified-class-name class)) |
(insert (ebrowse-qualified-class-name class)) |
1850 |
|
|
1851 |
;; If template class, add <> |
;; If template class, add <> |
1852 |
(when (ebrowse-template-p class) |
(when (ebrowse-template-p class) |
1853 |
(insert "<>")) |
(insert "<>")) |
2168 |
(define-key map1 "d" 'ebrowse-switch-member-buffer-to-derived-class) |
(define-key map1 "d" 'ebrowse-switch-member-buffer-to-derived-class) |
2169 |
(define-key map1 "n" 'ebrowse-switch-member-buffer-to-next-sibling-class) |
(define-key map1 "n" 'ebrowse-switch-member-buffer-to-next-sibling-class) |
2170 |
(define-key map1 "p" 'ebrowse-switch-member-buffer-to-previous-sibling-class)) |
(define-key map1 "p" 'ebrowse-switch-member-buffer-to-previous-sibling-class)) |
2171 |
|
|
2172 |
(let ((map1 (make-sparse-keymap))) |
(let ((map1 (make-sparse-keymap))) |
2173 |
(suppress-keymap map1 t) |
(suppress-keymap map1 t) |
2174 |
(define-key map "D" map1) |
(define-key map "D" map1) |
2178 |
(define-key map1 "l" 'ebrowse-toggle-long-short-display) |
(define-key map1 "l" 'ebrowse-toggle-long-short-display) |
2179 |
(define-key map1 "r" 'ebrowse-toggle-regexp-display) |
(define-key map1 "r" 'ebrowse-toggle-regexp-display) |
2180 |
(define-key map1 "w" 'ebrowse-set-member-buffer-column-width)) |
(define-key map1 "w" 'ebrowse-set-member-buffer-column-width)) |
2181 |
|
|
2182 |
(let ((map1 (make-sparse-keymap))) |
(let ((map1 (make-sparse-keymap))) |
2183 |
(suppress-keymap map1 t) |
(suppress-keymap map1 t) |
2184 |
(define-key map "F" map1) |
(define-key map "F" map1) |
2193 |
(define-key map1 "p" 'ebrowse-toggle-pure-member-filter) |
(define-key map1 "p" 'ebrowse-toggle-pure-member-filter) |
2194 |
(define-key map1 "r" 'ebrowse-remove-all-member-filters) |
(define-key map1 "r" 'ebrowse-remove-all-member-filters) |
2195 |
(define-key map1 "v" 'ebrowse-toggle-virtual-member-filter)) |
(define-key map1 "v" 'ebrowse-toggle-virtual-member-filter)) |
2196 |
|
|
2197 |
(let ((map1 (make-sparse-keymap))) |
(let ((map1 (make-sparse-keymap))) |
2198 |
(suppress-keymap map1 t) |
(suppress-keymap map1 t) |
2199 |
(define-key map "L" map1) |
(define-key map "L" map1) |
2205 |
(define-key map1 "t" 'ebrowse-display-types-member-list) |
(define-key map1 "t" 'ebrowse-display-types-member-list) |
2206 |
(define-key map1 "v" 'ebrowse-display-variables-member-list) |
(define-key map1 "v" 'ebrowse-display-variables-member-list) |
2207 |
(define-key map1 "V" 'ebrowse-display-static-variables-member-list)) |
(define-key map1 "V" 'ebrowse-display-static-variables-member-list)) |
2208 |
|
|
2209 |
(let ((map1 (make-sparse-keymap))) |
(let ((map1 (make-sparse-keymap))) |
2210 |
(suppress-keymap map1 t) |
(suppress-keymap map1 t) |
2211 |
(define-key map "G" map1) |
(define-key map "G" map1) |
2212 |
(define-key map1 "m" 'ebrowse-goto-visible-member/all-member-lists) |
(define-key map1 "m" 'ebrowse-goto-visible-member/all-member-lists) |
2213 |
(define-key map1 "n" 'ebrowse-repeat-member-search) |
(define-key map1 "n" 'ebrowse-repeat-member-search) |
2214 |
(define-key map1 "v" 'ebrowse-goto-visible-member)) |
(define-key map1 "v" 'ebrowse-goto-visible-member)) |
2215 |
|
|
2216 |
(define-key map "f" 'ebrowse-find-member-declaration) |
(define-key map "f" 'ebrowse-find-member-declaration) |
2217 |
(define-key map "m" 'ebrowse-switch-to-next-member-buffer) |
(define-key map "m" 'ebrowse-switch-to-next-member-buffer) |
2218 |
(define-key map "q" 'bury-buffer) |
(define-key map "q" 'bury-buffer) |
2682 |
the class cursor is on." |
the class cursor is on." |
2683 |
(let ((start (point)) |
(let ((start (point)) |
2684 |
(tree (or class ebrowse--displayed-class)) |
(tree (or class ebrowse--displayed-class)) |
2685 |
class-name-start |
class-name-start |
2686 |
class-name-end) |
class-name-end) |
2687 |
(insert "class ") |
(insert "class ") |
2688 |
(setq class-name-start (point)) |
(setq class-name-start (point)) |
2832 |
(indent-to (* i column-width)) |
(indent-to (* i column-width)) |
2833 |
(put-text-property start-of-column (point) 'mouse-face nil) |
(put-text-property start-of-column (point) 'mouse-face nil) |
2834 |
(setq start-of-entry (point)) |
(setq start-of-entry (point)) |
2835 |
;; Show various attributes |
;; Show various attributes |
2836 |
(when ebrowse--attributes-flag |
(when ebrowse--attributes-flag |
2837 |
(insert "<") |
(insert "<") |
2838 |
(ebrowse-draw-member-attributes member) |
(ebrowse-draw-member-attributes member) |
3035 |
Prefix arg ARG says which class should be displayed. Default is |
Prefix arg ARG says which class should be displayed. Default is |
3036 |
the first derived class." |
the first derived class." |
3037 |
(interactive "P") |
(interactive "P") |
3038 |
(flet ((ebrowse-tree-obarray-as-alist () |
(flet ((ebrowse-tree-obarray-as-alist () |
3039 |
(loop for s in (ebrowse-ts-subclasses |
(loop for s in (ebrowse-ts-subclasses |
3040 |
ebrowse--displayed-class) |
ebrowse--displayed-class) |
3041 |
collect (cons (ebrowse-cs-name |
collect (cons (ebrowse-cs-name |
3125 |
["Find in Tree" ebrowse-goto-visible-member/all-member-lists |
["Find in Tree" ebrowse-goto-visible-member/all-member-lists |
3126 |
:help "Search for a member in any class" |
:help "Search for a member in any class" |
3127 |
:active t]) |
:active t]) |
3128 |
("Display" |
("Display" |
3129 |
["Inherited" ebrowse-toggle-base-class-display |
["Inherited" ebrowse-toggle-base-class-display |
3130 |
:help "Toggle display of inherited members" |
:help "Toggle display of inherited members" |
3131 |
:style toggle |
:style toggle |
3218 |
:active (eq (get-text-property (point) 'ebrowse-what) 'class-name)])) |
:active (eq (get-text-property (point) 'ebrowse-what) 'class-name)])) |
3219 |
|
|
3220 |
|
|
3221 |
(easy-menu-define |
(easy-menu-define |
3222 |
ebrowse-member-name-object-menu ebrowse-member-mode-map |
ebrowse-member-name-object-menu ebrowse-member-mode-map |
3223 |
"Object menu for member names" |
"Object menu for member names" |
3224 |
'("Ebrowse" |
'("Ebrowse" |
3275 |
NAME is the name of the member. |
NAME is the name of the member. |
3276 |
Value is an alist of elements (CLASS-NAME . (CLASS LIST NAME)), |
Value is an alist of elements (CLASS-NAME . (CLASS LIST NAME)), |
3277 |
where each element describes one occurrence of member NAME in the tree. |
where each element describes one occurrence of member NAME in the tree. |
3278 |
CLASS-NAME is the qualified name of the class in which the |
CLASS-NAME is the qualified name of the class in which the |
3279 |
member was found. The CDR of the acons is described in function |
member was found. The CDR of the acons is described in function |
3280 |
`ebrowse-class/index/member-for-member'." |
`ebrowse-class/index/member-for-member'." |
3281 |
(let ((table (ebrowse-member-table tree-header)) |
(let ((table (ebrowse-member-table tree-header)) |
3321 |
;; matches! It returns the name as a string. |
;; matches! It returns the name as a string. |
3322 |
(unless (setq member-info (gethash name members)) |
(unless (setq member-info (gethash name members)) |
3323 |
(if (y-or-n-p "No exact match found. Try substrings? ") |
(if (y-or-n-p "No exact match found. Try substrings? ") |
3324 |
(setq name |
(setq name |
3325 |
(or (first (ebrowse-list-of-matching-members |
(or (first (ebrowse-list-of-matching-members |
3326 |
members (regexp-quote name) name)) |
members (regexp-quote name) name)) |
3327 |
(error "Sorry, nothing found"))) |
(error "Sorry, nothing found"))) |
3328 |
(error "Canceled"))) |
(error "Canceled"))) |
3583 |
TREE is the class of the member to display. |
TREE is the class of the member to display. |
3584 |
ACCESSOR is the accessor symbol of its member list. |
ACCESSOR is the accessor symbol of its member list. |
3585 |
MEMBER is the member structure. |
MEMBER is the member structure. |
3586 |
KIND is a an additional string printed in the buffer." |
KIND is an additional string printed in the buffer." |
3587 |
(let* ((tree (first info)) |
(let* ((tree (first info)) |
3588 |
(globals-p (ebrowse-globals-tree-p tree))) |
(globals-p (ebrowse-globals-tree-p tree))) |
3589 |
(unless globals-p |
(unless globals-p |
3650 |
;;;###autoload |
;;;###autoload |
3651 |
(defun* ebrowse-tags-complete-symbol (prefix) |
(defun* ebrowse-tags-complete-symbol (prefix) |
3652 |
"Perform completion on the C++ symbol preceding point. |
"Perform completion on the C++ symbol preceding point. |
3653 |
A second call of this function without changing point inserts the next match. |
A second call of this function without changing point inserts the next match. |
3654 |
A call with prefix PREFIX reads the symbol to insert from the minibuffer with |
A call with prefix PREFIX reads the symbol to insert from the minibuffer with |
3655 |
completion." |
completion." |
3656 |
(interactive "P") |
(interactive "P") |
3695 |
(t |
(t |
3696 |
(delete-region begin end) |
(delete-region begin end) |
3697 |
(insert completion) |
(insert completion) |
3698 |
|
|
3699 |
(setf ebrowse-last-completion-location (point) |
(setf ebrowse-last-completion-location (point) |
3700 |
ebrowse-last-completion-start pattern |
ebrowse-last-completion-start pattern |
3701 |
ebrowse-last-completion completion |
ebrowse-last-completion completion |
3797 |
(defun ebrowse-tags-query-replace (from to) |
(defun ebrowse-tags-query-replace (from to) |
3798 |
"Query replace FROM with TO in all files of a class tree. |
"Query replace FROM with TO in all files of a class tree. |
3799 |
With prefix arg, process files of marked classes only." |
With prefix arg, process files of marked classes only." |
3800 |
(interactive |
(interactive |
3801 |
"sTree query replace (regexp): \nsTree query replace %s by: ") |
"sTree query replace (regexp): \nsTree query replace %s by: ") |
3802 |
(setq ebrowse-tags-loop-form |
(setq ebrowse-tags-loop-form |
3803 |
(list 'and (list 'save-excursion |
(list 'and (list 'save-excursion |
3868 |
(t |
(t |
3869 |
(unwind-protect |
(unwind-protect |
3870 |
(progn |
(progn |
3871 |
(push (function |
(push (function |
3872 |
(lambda () |
(lambda () |
3873 |
(goto-char (ebrowse-position-point position)))) |
(goto-char (ebrowse-position-point position)))) |
3874 |
view-mode-hook) |
view-mode-hook) |
3894 |
:file-name (buffer-file-name (marker-buffer marker)) |
:file-name (buffer-file-name (marker-buffer marker)) |
3895 |
:point (marker-position marker) |
:point (marker-position marker) |
3896 |
:target target |
:target target |
3897 |
:info info) |
:info info) |
3898 |
ebrowse-position-stack)))) |
ebrowse-position-stack)))) |
3899 |
|
|
3900 |
|
|
4367 |
|
|
4368 |
|
|
4369 |
(easy-menu-define |
(easy-menu-define |
4370 |
ebrowse-tree-buffer-class-object-menu ebrowse-tree-mode-map |
ebrowse-tree-buffer-class-object-menu ebrowse-tree-mode-map |
4371 |
"Object menu for classes in the tree buffer" |
"Object menu for classes in the tree buffer" |
4372 |
'("Class" |
'("Class" |
4373 |
["Functions" ebrowse-tree-command:show-member-functions |
["Functions" ebrowse-tree-command:show-member-functions |
4409 |
|
|
4410 |
|
|
4411 |
(easy-menu-define |
(easy-menu-define |
4412 |
ebrowse-tree-buffer-object-menu ebrowse-tree-mode-map |
ebrowse-tree-buffer-object-menu ebrowse-tree-mode-map |
4413 |
"Object menu for tree buffers" |
"Object menu for tree buffers" |
4414 |
'("Ebrowse" |
'("Ebrowse" |
4415 |
["Filename Display" ebrowse-toggle-file-name-display |
["Filename Display" ebrowse-toggle-file-name-display |