blob: f2b5959af382d98aca996ed5cbe2535d2ed30be5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
;;--------------------------------------------------------------------------;;
;;--------------------------------------------------------------------------;;
;; gestion des TAGS
;;--------------------------------------------------------------------------;;
; sous xemacs, visit-tags-table n'a pas d'argument optionnel. Sous gnu emacs :
; Normally M-x visit-tags-table sets the global value of `tags-file-name'.
; With a prefix arg, set the buffer-local value instead.
; mieux vaut sous gnu emacs gérer la variable tags-table-list, qui
; n'existe pas sous xemacs.
; Sous xemacs il faut gérer la variable tag-table-alist qui n'existe pas
; sous gnu emacs.
(require 'etags)
(defun phox-tags-add-table(table)
"add tags table"
(interactive "D directory, location of a file named TAGS to add : ")
(if proof-running-on-XEmacs
(let ((association (cons buffer-file-name table)))
(if (member association tag-table-alist)
(message (concat table " already loaded."))
(setq tag-table-alist (cons association tag-table-alist))))
; gnu emacs
(if (member table tags-table-list)
(message (concat table " already loaded."))
; (make-local-variable 'tags-table-list) ; ne focntionne pas
(setq tags-table-list (cons table tags-table-list))
)
)
)
(defun phox-tags-reset-table()
"Set tags-table-list to nil."
(interactive)
; (make-local-variable 'tags-table-list)
(if proof-running-on-XEmacs
(progn
(setq tag-table-alist (remassoc buffer-file-name tag-table-alist)))
(setq tags-table-list nil))
)
(defun phox-tags-add-doc-table()
"Add tags in text documentation."
(interactive)
(phox-tags-add-table (concat phox-doc-dir "/text/TAGS"))
)
(defun phox-tags-add-lib-table()
"Add tags in libraries."
(interactive)
(phox-tags-add-table (concat phox-lib-dir "TAGS"))
)
(defun phox-tags-add-local-table()
"Add the tags table created with function phox-create-local-table."
(interactive)
(phox-tags-add-table (concat buffer-file-name "TAGS"))
)
(defun phox-tags-create-local-table()
"create table on local buffer"
(interactive)
(shell-command (concat phox-etags
" -o "
(file-name-nondirectory (buffer-file-name))
"TAGS "
(file-name-nondirectory (buffer-file-name))))
)
;; default
(if phox-tags-doc (add-hook 'phox-mode-hook 'phox-tags-add-doc-table))
(provide 'phox-tags)
|