diff options
Diffstat (limited to 'lisp/cedet/cedet-global.el')
-rw-r--r-- | lisp/cedet/cedet-global.el | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/lisp/cedet/cedet-global.el b/lisp/cedet/cedet-global.el index 3a34ca44e25..cedd1dd1162 100644 --- a/lisp/cedet/cedet-global.el +++ b/lisp/cedet/cedet-global.el @@ -33,6 +33,12 @@ :type 'string :group 'cedet) +(defcustom cedet-global-gtags-command "gtags" + "Command name for the GNU Global gtags executable. +GTAGS is used to create the tags table queried by the 'global' command." + :type 'string + :group 'cedet) + ;;; Code: (defun cedet-gnu-global-search (searchtext texttype type scope) "Perform a search with GNU Global, return the created buffer. @@ -75,6 +81,19 @@ SCOPE is the scope of the search, such as 'project or 'subdirs." flags) b)) +(defun cedet-gnu-global-gtags-call (flags) + "Create GNU Global TAGS using gtags with FLAGS." + (let ((b (get-buffer-create "*CEDET Global gtags*")) + (cd default-directory) + ) + (with-current-buffer b + (setq default-directory cd) + (erase-buffer)) + (apply 'call-process cedet-global-gtags-command + nil b nil + flags) + b)) + (defun cedet-gnu-global-expand-filename (filename) "Expand the FILENAME with GNU Global. Return a fully qualified filename." @@ -152,6 +171,18 @@ return nil." ;; Return the results (nreverse hits)))) +(defun cedet-gnu-global-create/update-database (&optional dir) + "Create a GNU Global database in DIR. +If a database already exists, then just update it." + (interactive "DDirectory: ") + (let ((root (cedet-gnu-global-root dir))) + (if root (setq dir root)) + (let ((default-directory dir)) + (cedet-gnu-global-gtags-call + (when root + '("-i");; Incremental update flag. + ))))) + (provide 'cedet-global) ;; arch-tag: 0d0d3ac2-91ef-4820-bb2b-1d59ccf38392 |