emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/speedbar.el [emacs-unicode-2]


From: Miles Bader
Subject: [Emacs-diffs] Changes to emacs/lisp/speedbar.el [emacs-unicode-2]
Date: Fri, 27 Aug 2004 03:25:13 -0400

Index: emacs/lisp/speedbar.el
diff -c emacs/lisp/speedbar.el:1.52.6.1 emacs/lisp/speedbar.el:1.52.6.2
*** emacs/lisp/speedbar.el:1.52.6.1     Fri Apr 16 12:50:09 2004
--- emacs/lisp/speedbar.el      Fri Aug 27 07:00:26 2004
***************
*** 92,98 ****
  ;; into sub-lists.  A long flat list can be used instead if needed.
  ;; Other filters can be easily added.
  ;;
! ;;    AUC-TEX users: The imenu tags for AUC-TEX mode doesn't work very
  ;; well.  Use the imenu keywords from tex-mode.el for better results.
  ;;
  ;; This file requires the library package assoc (association lists)
--- 92,98 ----
  ;; into sub-lists.  A long flat list can be used instead if needed.
  ;; Other filters can be easily added.
  ;;
! ;;    AUCTEX users: The imenu tags for AUCTEX mode doesn't work very
  ;; well.  Use the imenu keywords from tex-mode.el for better results.
  ;;
  ;; This file requires the library package assoc (association lists)
***************
*** 665,670 ****
--- 665,673 ----
    "*Regexp matching files we don't want displayed in a speedbar buffer.
  It is generated from the variable `completion-ignored-extensions'")
  
+ ;; Compiler silencing trick.  The real defvar comes later in this file.
+ (defvar speedbar-file-regexp)
+ 
  ;; this is dangerous to customize, because the defaults will probably
  ;; change in the future.
  (defcustom speedbar-supported-extension-expressions
***************
*** 689,696 ****
    :type '(repeat (regexp :tag "Extension Regexp"))
    :set (lambda (sym val)
         (setq speedbar-supported-extension-expressions val
!              speedbar-file-regexp (speedbar-extension-list-to-regex val)))
!   )
  
  (defvar speedbar-file-regexp
    (speedbar-extension-list-to-regex speedbar-supported-extension-expressions)
--- 692,698 ----
    :type '(repeat (regexp :tag "Extension Regexp"))
    :set (lambda (sym val)
         (setq speedbar-supported-extension-expressions val
!              speedbar-file-regexp (speedbar-extension-list-to-regex val))))
  
  (defvar speedbar-file-regexp
    (speedbar-extension-list-to-regex speedbar-supported-extension-expressions)
***************
*** 698,703 ****
--- 700,714 ----
  Created from `speedbar-supported-extension-expression' with the
  function `speedbar-extension-list-to-regex'")
  
+ (defcustom speedbar-scan-subdirs nil
+   "*Non-nil means speedbar will check if subdirs are empty.
+ That way you don't have to click on them to find out.  But this
+ incurs extra I/O, hence it slows down directory display
+ proportionally to the number of subdirs."
+   :group 'speedbar
+   :type 'boolean
+   :version 21.4)
+ 
  (defun speedbar-add-supported-extension (extension)
    "Add EXTENSION as a new supported extension for speedbar tagging.
  This should start with a `.' if it is not a complete file name, and
***************
*** 1287,1294 ****
      (toggle-read-only 1)
      (speedbar-set-mode-line-format)
      (if speedbar-xemacsp
!       (set (make-local-variable 'mouse-motion-handler)
!            'speedbar-track-mouse-xemacs)
        (if speedbar-track-mouse-flag
          (set (make-local-variable 'track-mouse) t))   ;this could be messy.
        (setq auto-show-mode nil))      ;no auto-show for Emacs
--- 1298,1306 ----
      (toggle-read-only 1)
      (speedbar-set-mode-line-format)
      (if speedbar-xemacsp
!       (with-no-warnings
!        (set (make-local-variable 'mouse-motion-handler)
!             'speedbar-track-mouse-xemacs))
        (if speedbar-track-mouse-flag
          (set (make-local-variable 'track-mouse) t))   ;this could be messy.
        (setq auto-show-mode nil))      ;no auto-show for Emacs
***************
*** 1337,1343 ****
  frame and window to be the currently active frame and window."
    (if (and (frame-live-p speedbar-frame)
           (or (not speedbar-xemacsp)
!              (specifier-instance has-modeline-p)))
        (save-excursion
        (set-buffer speedbar-buffer)
        (let* ((w (or (speedbar-frame-width) 20))
--- 1349,1356 ----
  frame and window to be the currently active frame and window."
    (if (and (frame-live-p speedbar-frame)
           (or (not speedbar-xemacsp)
!              (with-no-warnings
!               (specifier-instance has-modeline-p))))
        (save-excursion
        (set-buffer speedbar-buffer)
        (let* ((w (or (speedbar-frame-width) 20))
***************
*** 1538,1546 ****
      ;; This gets the cursor where the user can see it.
      (if (not (bolp)) (forward-char -1))
      (sit-for 0)
!     (if (< emacs-major-version 20)
!       (mouse-major-mode-menu e)
!       (mouse-major-mode-menu e nil))))
  
  (defun speedbar-hack-buffer-menu (e)
    "Control mouse 1 is buffer menu.
--- 1551,1557 ----
      ;; This gets the cursor where the user can see it.
      (if (not (bolp)) (forward-char -1))
      (sit-for 0)
!     (mouse-major-mode-menu e nil)))
  
  (defun speedbar-hack-buffer-menu (e)
    "Control mouse 1 is buffer menu.
***************
*** 2185,2205 ****
    ;; find the directory, either in the cache, or build it.
    (or (cdr-safe (assoc directory speedbar-directory-contents-alist))
        (let ((default-directory directory)
!           (dir (directory-files directory nil))
!           (dirs nil)
!           (files nil))
!       (while dir
!         (if (not
!              (or (string-match speedbar-file-unshown-regexp (car dir))
!                  (string-match speedbar-directory-unshown-regexp (car dir))))
!             (if (file-directory-p (car dir))
!                 (setq dirs (cons (car dir) dirs))
!               (setq files (cons (car dir) files))))
!         (setq dir (cdr dir)))
!       (let ((nl (cons (nreverse dirs) (list (nreverse files)))))
          (aput 'speedbar-directory-contents-alist directory nl)
!         nl))
!       ))
  
  (defun speedbar-directory-buttons (directory index)
    "Insert a single button group at point for DIRECTORY.
--- 2196,2212 ----
    ;; find the directory, either in the cache, or build it.
    (or (cdr-safe (assoc directory speedbar-directory-contents-alist))
        (let ((default-directory directory)
!           (case-fold-search read-file-name-completion-ignore-case)
!           dirs files)
!       (dolist (file (directory-files directory nil))
!         (or (string-match speedbar-file-unshown-regexp file)
!             (string-match speedbar-directory-unshown-regexp file)
!             (if (file-directory-p file)
!                 (setq dirs (cons file dirs))
!               (setq files (cons file files)))))
!       (let ((nl `(,(nreverse dirs) ,(nreverse files))))
          (aput 'speedbar-directory-contents-alist directory nl)
!         nl))))
  
  (defun speedbar-directory-buttons (directory index)
    "Insert a single button group at point for DIRECTORY.
***************
*** 2343,2376 ****
  
  ;;; Build button lists
  ;;
! (defun speedbar-insert-files-at-point (files level)
    "Insert list of FILES starting at point, and indenting all files to LEVEL.
  Tag expandable items with a +, otherwise a ?.  Don't highlight ? as we
  don't know how to manage them.  The input parameter FILES is a cons
  cell of the form ( 'DIRLIST .  'FILELIST )."
    ;; Start inserting all the directories
!   (let ((dirs (car files)))
!     (while dirs
!       (speedbar-make-tag-line 'angle ?+ 'speedbar-dired (car dirs)
!                             (car dirs) 'speedbar-dir-follow nil
!                             'speedbar-directory-face level)
!       (setq dirs (cdr dirs))))
!   (let ((lst (car (cdr files)))
!       (case-fold-search t))
!     (while lst
!       (let* ((known (string-match speedbar-file-regexp (car lst)))
             (expchar (if known ?+ ??))
             (fn (if known 'speedbar-tag-file nil)))
        (if (or speedbar-show-unknown-files (/= expchar ??))
!           (speedbar-make-tag-line 'bracket expchar fn (car lst)
!                                   (car lst) 'speedbar-find-file nil
!                                   'speedbar-file-face level)))
!       (setq lst (cdr lst)))))
  
  (defun speedbar-default-directory-list (directory index)
    "Insert files for DIRECTORY with level INDEX at point."
    (speedbar-insert-files-at-point
!    (speedbar-file-lists directory) index)
    (speedbar-reset-scanners)
    (if (= index 0)
        ;; If the shown files variable has extra directories, then
--- 2350,2389 ----
  
  ;;; Build button lists
  ;;
! (defun speedbar-insert-files-at-point (files level directory)
    "Insert list of FILES starting at point, and indenting all files to LEVEL.
  Tag expandable items with a +, otherwise a ?.  Don't highlight ? as we
  don't know how to manage them.  The input parameter FILES is a cons
  cell of the form ( 'DIRLIST .  'FILELIST )."
    ;; Start inserting all the directories
!   (dolist (dir (car files))
!     (if (if speedbar-scan-subdirs
!           (condition-case nil
!               (let ((l (speedbar-file-lists (concat directory dir))))
!                 (or (car l) (cadr l)))
!             (file-error))
!         (file-readable-p (concat directory dir)))
!       (speedbar-make-tag-line 'angle ?+ 'speedbar-dired dir
!                               dir 'speedbar-dir-follow nil
!                               'speedbar-directory-face level)
!       (speedbar-make-tag-line 'angle ?  nil dir
!                             dir 'speedbar-dir-follow nil
!                             'speedbar-directory-face level)))
!   (let ((case-fold-search read-file-name-completion-ignore-case))
!     (dolist (file (cadr files))
!       (let* ((known (and (file-readable-p (concat directory file))
!                        (string-match speedbar-file-regexp file)))
             (expchar (if known ?+ ??))
             (fn (if known 'speedbar-tag-file nil)))
        (if (or speedbar-show-unknown-files (/= expchar ??))
!           (speedbar-make-tag-line 'bracket expchar fn file
!                                   file 'speedbar-find-file nil
!                                   'speedbar-file-face level))))))
  
  (defun speedbar-default-directory-list (directory index)
    "Insert files for DIRECTORY with level INDEX at point."
    (speedbar-insert-files-at-point
!    (speedbar-file-lists directory) index directory)
    (speedbar-reset-scanners)
    (if (= index 0)
        ;; If the shown files variable has extra directories, then
***************
*** 2918,2924 ****
         (newcf (if newcfd newcfd))
         (lastb (current-buffer))
         (sucf-recursive (boundp 'sucf-recursive))
!        (case-fold-search t))
      (if (and newcf
             ;; check here, that way we won't refresh to newcf until
             ;; its been written, thus saving ourselves some time
--- 2931,2937 ----
         (newcf (if newcfd newcfd))
         (lastb (current-buffer))
         (sucf-recursive (boundp 'sucf-recursive))
!        (case-fold-search read-file-name-completion-ignore-case))
      (if (and newcf
             ;; check here, that way we won't refresh to newcf until
             ;; its been written, thus saving ourselves some time
***************
*** 4235,4243 ****
           (speedbar-convert-emacs21-imagespec-to-xemacs (quote ,imagespec)))
          'buffer)
         (error nil))
!      ,docstring))
! 
! )))
  
  (defimage-speedbar speedbar-directory-plus
    ((:type xpm :file "sb-dir-plus.xpm" :ascent center))
--- 4248,4254 ----
           (speedbar-convert-emacs21-imagespec-to-xemacs (quote ,imagespec)))
          'buffer)
         (error nil))
!      ,docstring)))))
  
  (defimage-speedbar speedbar-directory-plus
    ((:type xpm :file "sb-dir-plus.xpm" :ascent center))
***************
*** 4247,4252 ****
--- 4258,4267 ----
    ((:type xpm :file "sb-dir-minus.xpm" :ascent center))
    "Image used for open directories with stuff in them.")
  
+ (defimage-speedbar speedbar-directory
+   ((:type xpm :file "sb-dir.xpm" :ascent center))
+   "Image used for empty or unreadable directories.")
+ 
  (defimage-speedbar speedbar-page-plus
    ((:type xpm :file "sb-pg-plus.xpm" :ascent center))
    "Image used for closed files with stuff in them.")
***************
*** 4290,4295 ****
--- 4305,4311 ----
  (defvar speedbar-expand-image-button-alist
    '(("<+>" . speedbar-directory-plus)
      ("<->" . speedbar-directory-minus)
+     ("< >" . speedbar-directory)
      ("[+]" . speedbar-page-plus)
      ("[-]" . speedbar-page-minus)
      ("[?]" . speedbar-page)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]