[Top][All Lists]
[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)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] Changes to emacs/lisp/speedbar.el [emacs-unicode-2],
Miles Bader <=