diff options
| author | Masatake YAMATO | 2003-04-11 09:08:29 +0000 |
|---|---|---|
| committer | Masatake YAMATO | 2003-04-11 09:08:29 +0000 |
| commit | 36278af32a69bfc341b0b3e2ba1bef9c34152ecf (patch) | |
| tree | 912993251d1e56c6b999159723d33c4999d781a8 | |
| parent | 87a4ed45aaae7ae2dbd3fb55b4300f29f04fe4ab (diff) | |
| download | emacs-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/ChangeLog | 12 | ||||
| -rw-r--r-- | lisp/progmodes/etags.el | 39 |
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 @@ | |||
| 1 | 2003-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 | |||
| 1 | 2003-04-11 Kenichi Handa <handa@m17n.org> | 13 | 2003-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. |