changeset 56556:8699eccc1a33

(etags-tags-apropos): Show building progress.
author Masatake YAMATO <jet@gyve.org>
date Wed, 28 Jul 2004 09:05:23 +0000
parents e7ddaefbeaa4
children 8967ea893ac2
files lisp/ChangeLog lisp/progmodes/etags.el
diffstat 2 files changed, 55 insertions(+), 46 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Tue Jul 27 23:49:06 2004 +0000
+++ b/lisp/ChangeLog	Wed Jul 28 09:05:23 2004 +0000
@@ -1,3 +1,7 @@
+2004-07-28  Masatake YAMATO  <jet@gyve.org>
+
+	* progmodes/etags.el (etags-tags-apropos): Show building progress.
+
 2004-07-26  Stefan Monnier  <monnier@iro.umontreal.ca>
 
 	* imenu.el (imenu-prev-index-position-function)
--- a/lisp/progmodes/etags.el	Tue Jul 27 23:49:06 2004 +0000
+++ b/lisp/progmodes/etags.el	Wed Jul 28 09:05:23 2004 +0000
@@ -1453,53 +1453,58 @@
     (tags-with-face 'highlight (princ buffer-file-name))
     (princ "':\n\n"))
   (goto-char (point-min))
-  (while (re-search-forward string nil t)
-    (beginning-of-line)
+  (let ((point-max (/ (float (point-max)) 100.0)))
+    (while (re-search-forward string nil t)
+      (message "Making tags apropos buffer for `%s'...%d%%"
+	       string
+	       (/ (point) point-max))
+      (beginning-of-line)
 
-    (let* (;; Get the local value in the tags table
-	   ;; buffer before switching buffers.
-	   (goto-func goto-tag-location-function)
-	   (tag-info (save-excursion (funcall snarf-tag-function)))
-	   (tag (if (eq t (car tag-info)) nil (car tag-info)))
-	   (file-path (save-excursion (if tag (file-of-tag)
-					(save-excursion (next-line 1)
-							(file-of-tag)))))
-	   (file-label (if tag (file-of-tag t)
-			 (save-excursion (next-line 1)
-					 (file-of-tag t))))
-	   (pt (with-current-buffer standard-output (point))))
-      (if tag
-	  (progn
-	    (princ (format "[%s]: " file-label))
-	    (princ tag)
-	    (when (= (aref tag 0) ?\() (princ " ...)"))
-	    (with-current-buffer standard-output
-	      (make-text-button pt (point)
-				'tag-info tag-info
-				'file-path file-path
-				'goto-func goto-func
-				'action (lambda (button)
-					  (let ((tag-info (button-get button 'tag-info))
-						(goto-func (button-get button 'goto-func)))
-					    (tag-find-file-of-tag (button-get button 'file-path))
-					    (widen)
-					    (funcall goto-func tag-info)))
-				'face 'tags-tag-face
-				'type 'button)))
-	(princ (format "- %s" file-label))
-	(with-current-buffer standard-output
-	  (make-text-button pt (point)
-			    'file-path file-path
-			    'action (lambda (button)
-				      (tag-find-file-of-tag (button-get button 'file-path))
-				      ;; Get the local value in the tags table
-				      ;; buffer before switching buffers.
-				      (goto-char (point-min)))
-			    'face 'tags-tag-face
-			    'type 'button))
-	))
-    (terpri)
-    (forward-line 1))
+      (let* ( ;; Get the local value in the tags table
+	     ;; buffer before switching buffers.
+	     (goto-func goto-tag-location-function)
+	     (tag-info (save-excursion (funcall snarf-tag-function)))
+	     (tag (if (eq t (car tag-info)) nil (car tag-info)))
+	     (file-path (save-excursion (if tag (file-of-tag)
+					  (save-excursion (next-line 1)
+							  (file-of-tag)))))
+	     (file-label (if tag (file-of-tag t)
+			   (save-excursion (next-line 1)
+					   (file-of-tag t))))
+	     (pt (with-current-buffer standard-output (point))))
+	(if tag
+	    (progn
+	      (princ (format "[%s]: " file-label))
+	      (princ tag)
+	      (when (= (aref tag 0) ?\() (princ " ...)"))
+	      (with-current-buffer standard-output
+		(make-text-button pt (point)
+				  'tag-info tag-info
+				  'file-path file-path
+				  'goto-func goto-func
+				  'action (lambda (button)
+					    (let ((tag-info (button-get button 'tag-info))
+						  (goto-func (button-get button 'goto-func)))
+					      (tag-find-file-of-tag (button-get button 'file-path))
+					      (widen)
+					      (funcall goto-func tag-info)))
+				  'face 'tags-tag-face
+				  'type 'button)))
+	  (princ (format "- %s" file-label))
+	  (with-current-buffer standard-output
+	    (make-text-button pt (point)
+			      'file-path file-path
+			      'action (lambda (button)
+					(tag-find-file-of-tag (button-get button 'file-path))
+					;; Get the local value in the tags table
+					;; buffer before switching buffers.
+					(goto-char (point-min)))
+			      'face 'tags-tag-face
+			      'type 'button))
+	  ))
+      (terpri)
+      (forward-line 1))
+    (message nil))
   (when tags-apropos-verbose (princ "\n")))
 
 (defun etags-tags-table-files ()