• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.10/emacs-93/emacs/lisp/progmodes/

Lines Matching +defs:temp +defs:file +defs:name

11 ;; This file is part of GNU Emacs.
24 ;; along with GNU Emacs; see the file COPYING. If not, write to
36 ;; Documentation is found in a separate Info file.
60 to find source files relative to the location of the BROWSE file loaded."
103 (defcustom ebrowse-tree-buffer-name "*Tree*"
104 "*The default name of class tree buffers."
115 (defcustom ebrowse-source-file-column 40
116 "*The column in which source file names are displayed in the tree."
147 (defcustom ebrowse-member-buffer-name "*Members*"
148 "*The name of the buffer for member display."
184 (defface ebrowse-file-name
189 (put 'ebrowse-file-name-face 'face-alias 'ebrowse-file-name)
355 (defun ebrowse-rename-buffer (new-name)
357 If a buffer with name NEW-NAME already exists, delete it first."
358 (let ((old-buffer (get-buffer new-name)))
362 (rename-buffer new-name))))
391 ;; the Lisp package when the file is loaded. This is done to
392 ;; detect file format changes.
394 ;; Command line options used for producing the BROWSE file.
397 ;; the file format compatible.
407 Following the header structure, a BROWSE file contains a number
427 A common structure defining an occurrence of some name in the
429 ;; The class or member name as a string constant
430 name
439 ;; search for the name in the SOURCE-FILE of the members class.
440 file
442 ;; which case the number is the file position at which the regular
443 ;; expression is found in a separate regexp file (see the header
445 ;; expression will be generated from the class/member name.
456 source-file)
466 ;; The file in which the member's definition can be found.
467 definition-file
537 (defconst ebrowse-globals-name "*Globals*"
538 "The name used for the surrogate class.containing global entities.
568 (defvar ebrowse--tags-file-name nil
569 "File from which BROWSE file was loaded.
583 (defvar ebrowse--show-file-names-flag nil
584 "Non-nil means show file names in a tree buffer.
685 (defvar ebrowse-temp-position-to-view nil)
686 (defvar ebrowse-temp-info-to-view nil)
732 (ebrowse-show-progress "Preparing file list" (zerop i)))
734 (let ((source-file (ebrowse-cs-source-file class))
735 (file (ebrowse-cs-file class)))
736 (when source-file
737 (puthash source-file source-file files))
738 (when file
739 (puthash file file files))
743 for file = (ebrowse-ms-file m)
744 for def-file = (ebrowse-ms-definition-file m) do
745 (when file
746 (puthash file file files))
747 (when def-file
748 (puthash def-file def-file files))))))))
756 (maphash #'(lambda (file dummy) (setq list (cons file list)))
770 (string= (ebrowse-bs-name (ebrowse-ts-class tree))
771 ebrowse-globals-name))
774 (defsubst ebrowse-qualified-class-name (class)
775 "Return the name of CLASS with scope prepended, if any."
777 (concat (ebrowse-cs-scope class) "::" (ebrowse-cs-name class))
778 (ebrowse-cs-name class)))
784 CLASS-NAME is the name of the class. TREE is the
792 (acons (ebrowse-qualified-class-name (ebrowse-ts-class tree))
796 (acons (ebrowse-cs-name (ebrowse-ts-class tree))
805 (string< (ebrowse-qualified-class-name (ebrowse-ts-class a))
806 (ebrowse-qualified-class-name (ebrowse-ts-class b))))))
810 "Search for a class with name CLASS in TREE.
812 is used during the load phase where classes appended to a file replace older
818 (when (string= (ebrowse-qualified-class-name (ebrowse-ts-class (car root-ptr)))
819 (ebrowse-qualified-class-name tclass))
856 (defun ebrowse-name/accessor-alist (tree accessor)
860 is the member name."
862 collect (cons (ebrowse-ms-name member) accessor)))
865 (defun ebrowse-name/accessor-alist-for-visible-members ()
868 where MEMBER-NAME is the member's name, and ACCESSOR is the struct
871 (let* ((list (ebrowse-name/accessor-alist ebrowse--displayed-class
877 nconc (ebrowse-name/accessor-alist
882 (defun ebrowse-name/accessor-alist-for-class-members ()
883 "Like `ebrowse-name/accessor-alist-for-visible-members'.
888 (setq list (nconc list (ebrowse-name/accessor-alist
893 (nconc list (ebrowse-name/accessor-alist class func))))))))
920 Return a list (HEADER TREE) where HEADER is the file header read
924 (error (error "No Ebrowse file header found"))))
926 ;; Check file format.
928 (error "No Ebrowse file header found"))
946 (defun ebrowse-revert-tree-buffer-from-file (ignore-auto-save noconfirm)
955 (insert-file (or buffer-file-name ebrowse--tags-file-name)))
960 (defun ebrowse-create-tree-buffer (tree tags-file header obarray pop)
962 The tree was loaded from file TAGS-FILE.
963 HEADER is the header structure of the file.
967 (let ((name ebrowse-tree-buffer-name))
968 (set-buffer (get-buffer-create name))
971 ebrowse--tags-file-name tags-file
978 (switch (switch-to-buffer name))
979 (pop (pop-to-buffer name)))
1010 (let* ((member-name (ebrowse-ms-name m))
1011 (value (gethash member-name members)))
1013 (puthash member-name value members)))))
1041 (intern (ebrowse-qualified-class-name (ebrowse-ts-class root)) classes)
1066 (ebrowse-qualified-class-name (ebrowse-ts-class (car subclass)))
1075 ;; preprocessor in class declarations, a name is marked
1118 (define-key map1 "f" 'ebrowse-toggle-file-name-display)
1119 (define-key map1 "s" 'ebrowse-show-file-name-at-point)
1128 (define-key map "/" 'ebrowse-read-class-name-and-go)
1147 E.g.\\[save-buffer] writes the tree to the file it was loaded from.
1167 '(ebrowse--tags-file-name
1171 ebrowse--show-file-names-flag
1176 (setf ebrowse--show-file-names-flag nil
1180 mode-name "Ebrowse-Tree"
1185 revert-buffer-function 'ebrowse-revert-tree-buffer-from-file
1188 ebrowse--tags-file-name (buffer-file-name)
1192 (add-hook 'local-write-file-hooks 'ebrowse-write-file-hook-fn)
1204 (ebrowse-frozen-tree-buffer-name
1205 ebrowse--tags-file-name)
1206 ebrowse-tree-buffer-name))
1217 (let ((sym (intern-soft (ebrowse-cs-name (ebrowse-ts-class class))
1236 (class-name (ebrowse-cs-name (ebrowse-ts-class class)))
1239 (y-or-n-p (concat "Delete class " class-name "? ")))
1243 (message "%s %sdeleted." class-name
1277 (ebrowse-cs-name (ebrowse-ts-class tree)))
1325 ;;; File name display in tree buffers
1327 (defun ebrowse-show-file-name-at-point (prefix)
1331 (unless ebrowse--show-file-names-flag
1336 file-name-existing)
1340 file-name-existing (looking-at "("))
1342 (unless file-name-existing
1343 (indent-to ebrowse-source-file-column)
1344 (insert "(" (or (ebrowse-cs-file
1348 (ebrowse-set-face start (point) 'ebrowse-file-name)
1353 (defun ebrowse-toggle-file-name-display ()
1356 (setf ebrowse--show-file-names-flag (not ebrowse--show-file-names-flag))
1432 (get-buffer ebrowse-member-buffer-name)
1460 (defun ebrowse-frozen-tree-buffer-name (tags-file-name)
1461 "Return the buffer name of a tree which is associated TAGS-FILE-NAME."
1462 (concat ebrowse-tree-buffer-name " (" tags-file-name ")"))
1470 ebrowse-tree-buffer-name
1471 ebrowse-member-buffer-name))))
1475 ebrowse-member-buffer-name
1476 ebrowse-tree-buffer-name))))
1498 (defun ebrowse-read-class-name-and-go (&optional class)
1500 Read a class name from the minibuffer if CLASS is nil."
1503 ;; If no class specified, read the class name from mini-buffer
1574 (file (ebrowse-cs-file class))
1576 :name (ebrowse-cs-name class)
1579 :file (ebrowse-cs-file class)
1581 (ebrowse-view/find-file-and-search-pattern
1584 file
1585 ebrowse--tags-file-name
1618 (defun ebrowse-find-source-file (file tags-file-name)
1619 "Find source file FILE.
1621 which is the path of the BROWSE file from which the class tree was loaded,
1623 (let (file-name
1624 (try-file (expand-file-name file
1625 (file-name-directory tags-file-name))))
1626 (if (file-readable-p try-file)
1627 (setq file-name try-file)
1630 (null file-name))
1631 (let ((try-file (expand-file-name file (car search-in))))
1632 (if (file-readable-p try-file)
1633 (setq file-name try-file))
1635 (unless file-name
1636 (error "File `%s' not found" file))
1637 file-name))
1640 (defun ebrowse-view-file-other-window (file)
1641 "View a file FILE in another window.
1642 This is a replacement for `view-file-other-window' which does not
1646 (had-a-buf (get-file-buffer file))
1647 (buf-to-view (find-file-noselect file)))
1657 Restore frame configuration active before viewing the file,
1673 (defun ebrowse-view-file-other-frame (file)
1674 "View a file FILE in another frame.
1679 (had-a-buf (get-file-buffer file))
1680 (buf-to-view (find-file-noselect file)))
1692 (defun ebrowse-view/find-file-and-search-pattern
1693 (struc info file tags-file-name &optional view where)
1702 FILE is the file to search the member in.
1705 TAGS-FILE-NAME is the name of the BROWSE file from which the
1707 If VIEW is non-nil, view file else find the file.
1710 (unless file
1711 (error "Sorry, no file information available for %s"
1712 (ebrowse-bs-name struc)))
1713 ;; Get the source file to view or find.
1714 (setf file (ebrowse-find-source-file file tags-file-name))
1719 (setf ebrowse-temp-position-to-view struc
1720 ebrowse-temp-info-to-view info)
1725 (other-window (ebrowse-view-file-other-window file))
1726 (other-frame (ebrowse-view-file-other-frame file))
1727 (t (view-file file))))
1730 (other-window (find-file-other-window file))
1731 (other-frame (find-file-other-frame file))
1732 (t (find-file file)))
1736 (defun ebrowse-symbol-regexp (name)
1740 space in the symbol name (generated by BROWSE) with a regular
1742 (loop with regexp = (regexp-quote name)
1752 (defun ebrowse-class-declaration-regexp (name)
1756 (ebrowse-symbol-regexp name)
1760 (defun ebrowse-variable-declaration-regexp (name)
1762 (concat "\\S_" (ebrowse-symbol-regexp name) "\\S_"))
1765 (defun ebrowse-function-declaration/definition-regexp (name)
1768 (ebrowse-symbol-regexp name)
1772 (defun ebrowse-pp-define-regexp (name)
1774 (concat "^[ \t]*#[ \t]*define[ \t]+" (regexp-quote name)))
1780 This is a kluge: Ebrowse allows you to find or view a file containing
1783 `ebrowse-temp-position-to-view' holds what to search for.
1789 position ebrowse-temp-position-to-view
1790 info ebrowse-temp-info-to-view))
1797 ;; If no pattern is specified, construct one from the member name.
1809 (ebrowse-bs-name position))))
1812 (setf pattern (ebrowse-pp-define-regexp (ebrowse-bs-name position)))
1814 (ebrowse-bs-name position)))))))
1817 (ebrowse-bs-name position))))))
1886 start-of-class-name end-of-class-name)
1890 ;; Indent and insert class name
1894 (insert (ebrowse-qualified-class-name class))
1902 (setf start-of-class-name start
1903 end-of-class-name (point))
1905 (when ebrowse--show-file-names-flag
1906 (indent-to ebrowse-source-file-column)
1909 (or (ebrowse-cs-file class)
1912 (ebrowse-set-face start (point) 'ebrowse-file-name))
1915 start-of-class-name end-of-class-name
1916 `(mouse-face highlight ebrowse-what class-name
2063 (setq mode-name "Electric Position Menu"
2065 (when (memq 'mode-name mode-line-format)
2067 (setcar (memq 'mode-name mode-line-format) "Tree Buffers"))
2083 (insert (buffer-name buffer) "\n"))
2186 "Read a browser buffer name from the minibuffer and return that buffer."
2193 (file (read-file-name "Find tree: " nil nil t)))
2195 (find-file file))
2196 (find-buffer-visiting file)))))
2302 ebrowse--tags-file-name ;
2310 (setq mode-name "Ebrowse-Members"
2333 (defsubst ebrowse-class-name-displayed-in-member-buffer ()
2334 "Return the name of the class displayed in the member buffer."
2335 (ebrowse-cs-name (ebrowse-ts-class ebrowse--displayed-class)))
2338 (defsubst ebrowse-member-list-name ()
2347 (let* ((name (when ebrowse--frozen-flag
2348 (concat (ebrowse-class-name-displayed-in-member-buffer)
2350 (ident (concat name (ebrowse-member-list-name))))
2353 (ebrowse-rename-buffer (if name ident ebrowse-member-buffer-name))
2370 (let ((class-name (ebrowse-class-name-displayed-in-member-buffer)))
2372 (ebrowse-read-class-name-and-go class-name))))
2398 (let ((buf (or (get-buffer (ebrowse-frozen-tree-buffer-name
2399 ebrowse--tags-file-name))
2400 (get-buffer ebrowse-tree-buffer-name)
2402 ebrowse--tags-file-name
2591 "Find the file containing a member definition.
2592 With PREFIX 4. find file in another window, with prefix 5
2593 find file in another frame."
2599 "View the file containing a member definition.
2600 With PREFIX 4. find file in another window, with prefix 5
2601 find file in another frame."
2607 "Find the file containing a member's declaration.
2608 With PREFIX 4. find file in another window, with prefix 5
2609 find file in another frame."
2615 "View the file containing a member's declaration.
2616 With PREFIX 4. find file in another window, with prefix 5
2617 find file in another frame."
2623 (prefix view &optional definition info header tags-file-name)
2625 With PREFIX 4. find file in another window, with prefix 5
2626 find file in another frame.
2631 TAGS-FILE-NAME is the file name of the BROWSE file."
2634 (unless tags-file-name
2635 (setq tags-file-name ebrowse--tags-file-name))
2636 (let (tree member accessor file on-class
2648 ;; View/find class if on a line containing a class name.
2651 (ebrowse-view/find-file-and-search-pattern
2654 (ebrowse-cs-file (ebrowse-ts-class tree))
2655 tags-file-name view where)))
2665 :name (ebrowse-ms-name member)
2666 :file (ebrowse-ms-definition-file member)
2672 ;; When no file information in member, use that of the class
2673 (setf file (or (ebrowse-ms-file member)
2675 (ebrowse-cs-source-file (ebrowse-ts-class tree))
2676 (ebrowse-cs-file (ebrowse-ts-class tree)))))
2680 (if (or (null file) (zerop (ebrowse-ms-point member)))
2686 (ebrowse-ms-name member)
2692 prefix view (not definition) info header tags-file-name))
2695 (ebrowse-view/find-file-and-search-pattern
2696 (make-ebrowse-bs :name (ebrowse-ms-name member)
2698 :file (ebrowse-ms-file member)
2702 file
2703 tags-file-name
2739 class-name-start
2740 class-name-end)
2742 (setq class-name-start (point))
2743 (insert (ebrowse-qualified-class-name (ebrowse-ts-class tree)))
2746 (setq class-name-end (point))
2750 class-name-start class-name-end
2751 '(ebrowse-what class-name
2754 (put-text-property start class-name-end 'ebrowse-tree tree)))
2763 (tags-file-name ebrowse--tags-file-name)
2765 temp-buffer-setup-hook
2766 (temp-buffer (get-buffer ebrowse-member-buffer-name)))
2767 ;; Get the class description from the name the cursor
2772 (if temp-buffer
2773 (pop-to-buffer temp-buffer)
2774 (pop-to-buffer (get-buffer-create ebrowse-member-buffer-name))
2783 ebrowse--tags-file-name tags-file-name
2841 (let ((name (ebrowse-ms-name member-struc))
2843 ;; Insert member name truncated to the right length
2844 (insert (substring name
2846 (min (length name)
2850 `(mouse-face highlight ebrowse-what member-name
2882 (let ((name (ebrowse-ms-name member))
2885 start-of-name)
2896 ;; insert member name truncated to column width
2897 (setq start-of-name (point))
2898 (insert (substring name 0
2899 (min (length name)
2903 start-of-name (point)
2904 `(ebrowse-what member-name
2943 (let* ((completion-list (ebrowse-name/accessor-alist-for-class-members))
2957 Read the member's name from the minibuffer. Consider only members
2962 ;; Read member name
2963 (let* ((completion-list (ebrowse-name/accessor-alist-for-visible-members))
2994 (defun* ebrowse-move-point-to-member (name &optional count &aux member)
2996 COUNT, if specified, says search the COUNT'th member with the same name."
3000 (substring name 0 (min (length name) (1- ebrowse--column-width)))
3039 collect (cons (ebrowse-qualified-class-name
3070 collect (cons (ebrowse-cs-name
3099 collect (cons (ebrowse-cs-name
3258 (defun ebrowse-on-class-name ()
3259 "Value is non-nil if point is on a class name."
3260 (eq (get-text-property (point) 'ebrowse-what) 'class-name))
3263 (defun ebrowse-on-member-name ()
3264 "Value is non-nil if point is on a member name."
3265 (eq (get-text-property (point) 'ebrowse-what) 'member-name))
3269 ebrowse-member-class-name-object-menu ebrowse-member-mode-map
3274 :active (eq (get-text-property (point) 'ebrowse-what) 'class-name)]
3277 :active (eq (get-text-property (point) 'ebrowse-what) 'class-name)]))
3281 ebrowse-member-name-object-menu ebrowse-member-mode-map
3286 :active (ebrowse-on-member-name)]
3289 :active (ebrowse-on-member-name)]
3292 :active (ebrowse-on-member-name)]
3295 :active (ebrowse-on-member-name)]))
3307 (member-name
3308 (ebrowse-popup-menu ebrowse-member-name-object-menu event))
3309 (class-name
3310 (ebrowse-popup-menu ebrowse-member-class-name-object-menu event))
3324 (member-name
3332 (defun ebrowse-class-alist-for-member (tree-header name)
3335 NAME is the name of the member.
3338 CLASS-NAME is the qualified name of the class in which the
3344 (when name
3345 (dolist (info (gethash name table) alist)
3347 (setf alist (acons (ebrowse-qualified-class-name
3365 (defun ebrowse-tags-read-name (header prompt)
3372 (multiple-value-bind (class-name member-name)
3373 (ebrowse-tags-read-member+class-name)
3374 (unless member-name
3375 (error "No member name at point"))
3377 (let* ((name (ebrowse-ignoring-completion-case
3378 (completing-read prompt members nil nil member-name)))
3379 (completion-result (try-completion name members)))
3381 ;; matches! It returns the name as a string.
3382 (unless (setq member-info (gethash name members))
3384 (setq name
3386 members (regexp-quote name) name))
3389 (list class-name name))
3390 (list class-name (read-from-minibuffer prompt member-name)))))))
3393 (defun ebrowse-tags-read-member+class-name ()
3396 CLASS-NAME is the name of the class if the identifier was qualified.
3398 MEMBER-NAME is the name of the member found."
3402 (name (progn (skip-chars-forward "a-zA-Z0-9_")
3405 (list class name))))
3408 (defun ebrowse-tags-choose-class (tree header name initial-class-name)
3409 "Read a class name for a member from the minibuffer.
3412 NAME is the name of the member.
3413 INITIAL-CLASS-NAME is an initial class name to insert in the minibuffer.
3415 (let ((alist (or (ebrowse-class-alist-for-member header name)
3416 (error "No classes with member `%s' found" name))))
3422 alist nil t initial-class-name)
3427 (prefix &key view definition member-name)
3431 declaration. This function reads the member's name from the
3433 of all classes containing a member with the given name and lets
3441 class-name
3442 (name member-name)
3444 (unless name
3445 (multiple-value-setq (class-name name)
3446 (ebrowse-tags-read-name
3450 (setq info (ebrowse-tags-choose-class tree header name class-name))
3456 (ebrowse-value-in-buffer 'ebrowse--tags-file-name tree-buffer))
3547 (let ((buffer (get-buffer ebrowse-member-buffer-name)))
3558 (ebrowse-move-point-to-member (ebrowse-ms-name (third info)))))
3561 (defun ebrowse-tags-display-member-buffer (&optional fix-name)
3564 Otherwise read a member name from point."
3569 (let* ((marker (point-marker)) class-name (name fix-name) info)
3570 (unless name
3571 (multiple-value-setq (class-name name)
3572 (ebrowse-tags-read-name header
3574 (setq info (ebrowse-tags-choose-class tree header name class-name))
3579 (defun ebrowse-list-of-matching-members (members regexp &optional name)
3584 (when (or name regexp)
3585 (maphash #'(lambda (member-name info)
3586 (when (or (and name (string= name member-name))
3587 (and regexp (string-match regexp member-name)))
3588 (setq list (cons member-name list))))
3600 temp-buffer-setup-hook
3602 (with-output-to-temp-buffer (concat "*Apropos Members*")
3608 (ebrowse-draw-file-member-info info))))))
3611 (defun ebrowse-tags-list-members-in-file ()
3612 "Display a list of members found in a file.
3613 The file name is read from the minibuffer."
3618 (file (completing-read "List members in file: " files nil t))
3620 temp-buffer-setup-hook
3622 (with-output-to-temp-buffer (concat "*Members in file " file "*")
3625 #'(lambda (member-name list)
3629 when (or (and (null (ebrowse-ms-file member))
3630 (string= (ebrowse-cs-file class) file))
3631 (string= file (ebrowse-ms-file member)))
3632 do (ebrowse-draw-file-member-info info "decl.")
3633 when (or (and (null (ebrowse-ms-definition-file member))
3634 (string= (ebrowse-cs-source-file class) file))
3635 (string= file (ebrowse-ms-definition-file member)))
3636 do (ebrowse-draw-file-member-info info "defn.")))
3640 (defun* ebrowse-draw-file-member-info (info &optional (kind ""))
3641 "Display a line in an the members per file info buffer.
3650 (insert (ebrowse-cs-name (ebrowse-ts-class tree))))
3651 (insert "::" (ebrowse-ms-name (third info)))
3724 ;; With prefix, read name from minibuffer with completion.
3772 Evaluated for each file in the tree. If it returns nil, proceed
3773 with the next file.")
3775 (defvar ebrowse-tags-next-file-list ()
3779 (defvar ebrowse-tags-next-file-path nil
3783 (defvar ebrowse-tags-loop-last-file nil
3784 "The last file visited via `ebrowse-tags-loop'.")
3787 (defun ebrowse-tags-next-file (&optional initialize tree-buffer)
3788 "Select next file among files in current tag table.
3800 (setq ebrowse-tags-next-file-list
3802 ebrowse-tags-loop-last-file
3804 ebrowse-tags-next-file-path
3805 (file-name-directory ebrowse--tags-file-name)))))
3807 (unless ebrowse-tags-next-file-list
3809 ;; ebrowse-tags-loop-last-file is the last file that was visited due
3810 ;; to a call to BROWSE-LOOP (see below). If that file is still
3813 (when ebrowse-tags-loop-last-file
3814 (let ((buffer (get-file-buffer ebrowse-tags-loop-last-file)))
3818 ;; Remember this buffer file name for later deletion, if it
3820 (let ((file (expand-file-name (car ebrowse-tags-next-file-list)
3821 ebrowse-tags-next-file-path)))
3822 (setq ebrowse-tags-loop-last-file (if (get-file-buffer file) nil file))
3823 ;; Find the file and pop the file list. Pop has to be done
3824 ;; before the file is loaded because FIND-FILE might encounter
3826 ;; file in this case.
3827 (pop ebrowse-tags-next-file-list)
3828 (find-file file)))
3838 (ebrowse-tags-next-file first-time tree-buffer)
3841 (ebrowse-tags-next-file)
3842 (message "Scanning file `%s'..." buffer-file-name)
3873 (defun ebrowse-tags-search-member-use (&optional fix-name)
3876 Otherwise, read a member name from the minibuffer.
3885 ;; Get the member name NAME (class-name is ignored).
3886 (let ((name fix-name) class-name regexp)
3887 (unless name
3888 (multiple-value-setq (class-name name)
3889 (ebrowse-tags-read-name header "Find calls of: ")))
3891 (setq regexp (concat "\\<" name "[ \t]*(")
3903 file-name ; in which file
3904 point ; point in file
3917 (defun ebrowse-position-name (position)
3922 (ebrowse-cs-name (ebrowse-ts-class (first info)))
3923 "::" (ebrowse-ms-name (third info)))))
3930 (find-file (ebrowse-position-file-name position))
3939 (view-file (ebrowse-position-file-name position)))
3948 Positions in buffers that have no file names are not saved."
3949 (when (buffer-file-name (marker-buffer marker))
3958 :file-name (buffer-file-name (marker-buffer marker))
4042 (setq mode-name "Electric Position Menu"
4044 (when (memq 'mode-name mode-line-format)
4046 (setcar (memq 'mode-name mode-line-format) "Positions"))
4063 (insert (file-name-nondirectory (ebrowse-position-file-name position)))
4067 (insert (ebrowse-position-name position) "\n"))
4167 (defun ebrowse-write-file-hook-fn ()
4169 Installed on `local-write-file-hooks'."
4176 "Save current tree in same file it was loaded from."
4178 (ebrowse-save-tree-as (or buffer-file-name ebrowse--tags-file-name)))
4182 (defun ebrowse-save-tree-as (&optional file-name)
4183 "Write the current tree data structure to a file.
4184 Read the file name from the minibuffer if interactive.
4185 Otherwise, FILE-NAME specifies the file to save the tree in."
4187 (let ((temp-buffer (get-buffer-create "*Tree Output"))
4193 (set-buffer (setq standard-output temp-buffer))
4198 (write-file file-name)
4199 (message "Tree written to file `%s'" file-name))
4200 (kill-buffer temp-buffer)
4208 (message "%s..." (ebrowse-cs-name (ebrowse-ts-class class)))
4210 (prin1 (ebrowse-ts-class class)) ;class name
4230 (let ((tree-file (buffer-file-name))
4231 temp-buffer-setup-hook)
4232 (with-output-to-temp-buffer "*Tree Statistics*"
4238 (insert "STATISTICS FOR TREE " (or tree-file "unknown") ":\n\n")
4307 (define-key ebrowse-global-map "l" 'ebrowse-tags-list-members-in-file)
4309 (define-key ebrowse-global-map "n" 'ebrowse-tags-next-file)
4364 (string= (buffer-name b) "*Apropos Members*"))
4416 (let (start name)
4421 (setq name (buffer-substring start (point))))
4423 5 :view nil :definition t :member-name name)))
4464 :active (eq (get-text-property (point) 'ebrowse-what) 'class-name)]
4466 :help "Find class declaration in file"
4467 :active (eq (get-text-property (point) 'ebrowse-what) 'class-name)]
4471 :active (eq (get-text-property (point) 'ebrowse-what) 'class-name)]
4475 :active (eq (get-text-property (point) 'ebrowse-what) 'class-name)]
4478 :active (eq (get-text-property (point) 'ebrowse-what) 'class-name)]))
4485 ["Filename Display" ebrowse-toggle-file-name-display
4488 :selected ebrowse--show-file-names-flag
4502 ["Find Class" ebrowse-read-class-name-and-go
4520 (class-name
4535 (class-name
4548 (class-name