[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
enable mouse-2 in tags-select-tags-table
From: |
Masatake YAMATO |
Subject: |
enable mouse-2 in tags-select-tags-table |
Date: |
Sun, 06 Apr 2003 04:32:16 +0900 (JST) |
With attached patch, you can select a tags table with
mouse-2(and/or C-m).
I hope many part of etags.el is now overhauled.
Masatake YAMATO
P.S. I got a CVS write access. So if my patch passes your
review, I can install it by myself.
2003-04-06 Masatake YAMATO <address@hidden>
* progmodes/etags.el (select-tags-table-mode-map):
Don't create new keymap. Instead copy from button-buffer-map.
Bind push-button to `t' instead of binding
select-tags-table-select directly
* (tags-select-tags-table): New button.
* progmodes/etags.el (select-tags-table): Put
a button for each selections.
Warning: Remote host denied X11 forwarding.
Index: lisp/progmodes/etags.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/progmodes/etags.el,v
retrieving revision 1.174
diff -u -r1.174 etags.el
--- lisp/progmodes/etags.el 5 Apr 2003 18:19:30 -0000 1.174
+++ lisp/progmodes/etags.el 5 Apr 2003 19:22:40 -0000
@@ -1890,6 +1890,10 @@
;; XXX Kludge interface.
+(define-button-type 'tags-select-tags-table
+ 'action (lambda (button) (select-tags-table-select))
+ 'hel-echo "RET, t or mouse-2: select tags table")
+
;; XXX If a file is in multiple tables, selection may get the wrong one.
;;;###autoload
(defun select-tags-table ()
@@ -1901,16 +1905,21 @@
(setq buffer-read-only nil)
(erase-buffer)
(let ((set-list tags-table-set-list)
- (desired-point nil))
+ (desired-point nil)
+ b)
(when tags-table-list
(setq desired-point (point-marker))
+ (setq b (point))
(princ tags-table-list (current-buffer))
+ (make-text-button b (point) 'type 'tags-select-tags-table)
(insert "\C-m")
(prin1 (car tags-table-list) (current-buffer)) ;invisible
(insert "\n"))
(while set-list
(unless (eq (car set-list) tags-table-list)
+ (setq b (point))
(princ (car set-list) (current-buffer))
+ (make-text-button b (point) 'type 'tags-select-tags-table)
(insert "\C-m")
(prin1 (car (car set-list)) (current-buffer)) ;invisible
(insert "\n"))
@@ -1918,7 +1927,10 @@
(when tags-file-name
(or desired-point
(setq desired-point (point-marker)))
- (insert tags-file-name "\C-m")
+ (setq b (point))
+ (insert tags-file-name)
+ (make-text-button b (point) 'type 'tags-select-tags-table)
+ (insert "\C-m")
(prin1 tags-file-name (current-buffer)) ;invisible
(insert "\n"))
(setq set-list (delete tags-file-name
@@ -1926,7 +1938,10 @@
(mapcar 'copy-sequence
tags-table-set-list)))))
(while set-list
- (insert (car set-list) "\C-m")
+ (setq b (point))
+ (insert (car set-list))
+ (make-text-button b (point) 'type 'tags-select-tags-table)
+ (insert "\C-m")
(prin1 (car set-list) (current-buffer)) ;invisible
(insert "\n")
(setq set-list (delete (car set-list) set-list)))
@@ -1939,15 +1954,15 @@
(set-buffer-modified-p nil)
(select-tags-table-mode))
-(defvar select-tags-table-mode-map)
-(let ((map (make-sparse-keymap)))
- (define-key map "t" 'select-tags-table-select)
- (define-key map " " 'next-line)
- (define-key map "\^?" 'previous-line)
- (define-key map "n" 'next-line)
- (define-key map "p" 'previous-line)
- (define-key map "q" 'select-tags-table-quit)
- (setq select-tags-table-mode-map map))
+(defvar select-tags-table-mode-map
+ (let ((map (copy-keymap button-buffer-map)))
+ (define-key map "t" 'push-button)
+ (define-key map " " 'next-line)
+ (define-key map "\^?" 'previous-line)
+ (define-key map "n" 'next-line)
+ (define-key map "p" 'previous-line)
+ (define-key map "q" 'select-tags-table-quit)
+ map))
(defun select-tags-table-mode ()
"Major mode for choosing a current tags table among those already loaded.
- enable mouse-2 in tags-select-tags-table,
Masatake YAMATO <=