aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMasatake YAMATO2003-04-11 09:08:29 +0000
committerMasatake YAMATO2003-04-11 09:08:29 +0000
commit36278af32a69bfc341b0b3e2ba1bef9c34152ecf (patch)
tree912993251d1e56c6b999159723d33c4999d781a8
parent87a4ed45aaae7ae2dbd3fb55b4300f29f04fe4ab (diff)
downloademacs-36278af32a69bfc341b0b3e2ba1bef9c34152ecf.tar.gz
emacs-36278af32a69bfc341b0b3e2ba1bef9c34152ecf.zip
2003-04-11 Masatake YAMATO <jet@gyve.org>
* 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.
-rw-r--r--lisp/ChangeLog12
-rw-r--r--lisp/progmodes/etags.el39
2 files changed, 39 insertions, 12 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index e3c0b9d2d14..00487c733c2 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,15 @@
12003-04-11 Masatake YAMATO <jet@gyve.org>
2
3 * progmodes/etags.el (select-tags-table-mode-map):
4 Don't create new keymap. Instead copy from button-buffer-map.
5 Bind push-button to `t' instead of binding
6 select-tags-table-select directly
7
8 * (tags-select-tags-table): New button.
9
10 * progmodes/etags.el (select-tags-table): Put
11 a button for each selections.
12
12003-04-11 Kenichi Handa <handa@m17n.org> 132003-04-11 Kenichi Handa <handa@m17n.org>
2 14
3 * international/quail.el (quail-guidance-str) 15 * international/quail.el (quail-guidance-str)
diff --git a/lisp/progmodes/etags.el b/lisp/progmodes/etags.el
index 8dfe8b6683a..87e4624eb5f 100644
--- a/lisp/progmodes/etags.el
+++ b/lisp/progmodes/etags.el
@@ -1890,6 +1890,10 @@ directory specification."
1890 1890
1891;; XXX Kludge interface. 1891;; XXX Kludge interface.
1892 1892
1893(define-button-type 'tags-select-tags-table
1894 'action (lambda (button) (select-tags-table-select))
1895 'help-echo "RET, t or mouse-2: select tags table")
1896
1893;; XXX If a file is in multiple tables, selection may get the wrong one. 1897;; XXX If a file is in multiple tables, selection may get the wrong one.
1894;;;###autoload 1898;;;###autoload
1895(defun select-tags-table () 1899(defun select-tags-table ()
@@ -1901,16 +1905,21 @@ see the doc of that variable if you want to add names to the list."
1901 (setq buffer-read-only nil) 1905 (setq buffer-read-only nil)
1902 (erase-buffer) 1906 (erase-buffer)
1903 (let ((set-list tags-table-set-list) 1907 (let ((set-list tags-table-set-list)
1904 (desired-point nil)) 1908 (desired-point nil)
1909 b)
1905 (when tags-table-list 1910 (when tags-table-list
1906 (setq desired-point (point-marker)) 1911 (setq desired-point (point-marker))
1912 (setq b (point))
1907 (princ tags-table-list (current-buffer)) 1913 (princ tags-table-list (current-buffer))
1914 (make-text-button b (point) 'type 'tags-select-tags-table)
1908 (insert "\C-m") 1915 (insert "\C-m")
1909 (prin1 (car tags-table-list) (current-buffer)) ;invisible 1916 (prin1 (car tags-table-list) (current-buffer)) ;invisible
1910 (insert "\n")) 1917 (insert "\n"))
1911 (while set-list 1918 (while set-list
1912 (unless (eq (car set-list) tags-table-list) 1919 (unless (eq (car set-list) tags-table-list)
1920 (setq b (point))
1913 (princ (car set-list) (current-buffer)) 1921 (princ (car set-list) (current-buffer))
1922 (make-text-button b (point) 'type 'tags-select-tags-table)
1914 (insert "\C-m") 1923 (insert "\C-m")
1915 (prin1 (car (car set-list)) (current-buffer)) ;invisible 1924 (prin1 (car (car set-list)) (current-buffer)) ;invisible
1916 (insert "\n")) 1925 (insert "\n"))
@@ -1918,7 +1927,10 @@ see the doc of that variable if you want to add names to the list."
1918 (when tags-file-name 1927 (when tags-file-name
1919 (or desired-point 1928 (or desired-point
1920 (setq desired-point (point-marker))) 1929 (setq desired-point (point-marker)))
1921 (insert tags-file-name "\C-m") 1930 (setq b (point))
1931 (insert tags-file-name)
1932 (make-text-button b (point) 'type 'tags-select-tags-table)
1933 (insert "\C-m")
1922 (prin1 tags-file-name (current-buffer)) ;invisible 1934 (prin1 tags-file-name (current-buffer)) ;invisible
1923 (insert "\n")) 1935 (insert "\n"))
1924 (setq set-list (delete tags-file-name 1936 (setq set-list (delete tags-file-name
@@ -1926,7 +1938,10 @@ see the doc of that variable if you want to add names to the list."
1926 (mapcar 'copy-sequence 1938 (mapcar 'copy-sequence
1927 tags-table-set-list))))) 1939 tags-table-set-list)))))
1928 (while set-list 1940 (while set-list
1929 (insert (car set-list) "\C-m") 1941 (setq b (point))
1942 (insert (car set-list))
1943 (make-text-button b (point) 'type 'tags-select-tags-table)
1944 (insert "\C-m")
1930 (prin1 (car set-list) (current-buffer)) ;invisible 1945 (prin1 (car set-list) (current-buffer)) ;invisible
1931 (insert "\n") 1946 (insert "\n")
1932 (setq set-list (delete (car set-list) set-list))) 1947 (setq set-list (delete (car set-list) set-list)))
@@ -1939,15 +1954,15 @@ see the doc of that variable if you want to add names to the list."
1939 (set-buffer-modified-p nil) 1954 (set-buffer-modified-p nil)
1940 (select-tags-table-mode)) 1955 (select-tags-table-mode))
1941 1956
1942(defvar select-tags-table-mode-map) 1957(defvar select-tags-table-mode-map
1943(let ((map (make-sparse-keymap))) 1958 (let ((map (copy-keymap button-buffer-map)))
1944 (define-key map "t" 'select-tags-table-select) 1959 (define-key map "t" 'push-button)
1945 (define-key map " " 'next-line) 1960 (define-key map " " 'next-line)
1946 (define-key map "\^?" 'previous-line) 1961 (define-key map "\^?" 'previous-line)
1947 (define-key map "n" 'next-line) 1962 (define-key map "n" 'next-line)
1948 (define-key map "p" 'previous-line) 1963 (define-key map "p" 'previous-line)
1949 (define-key map "q" 'select-tags-table-quit) 1964 (define-key map "q" 'select-tags-table-quit)
1950 (setq select-tags-table-mode-map map)) 1965 map))
1951 1966
1952(defun select-tags-table-mode () 1967(defun select-tags-table-mode ()
1953 "Major mode for choosing a current tags table among those already loaded. 1968 "Major mode for choosing a current tags table among those already loaded.