From 38b6002b3638d173be6b43153f8b3471a702e21f Mon Sep 17 00:00:00 2001 From: Nikolaj Schumacher Date: Tue, 14 Apr 2009 21:54:30 +0200 Subject: [PATCH] Made gtags behave like xcode back-end. --- company-gtags.el | 33 +++++++++++---------------------- 1 file changed, 11 insertions(+), 22 deletions(-) diff --git a/company-gtags.el b/company-gtags.el index a5e97e4..b4dedeb 100644 --- a/company-gtags.el +++ b/company-gtags.el @@ -20,40 +20,29 @@ (require 'company) (eval-when-compile (require 'cl)) -(defcustom company-gtags-gnu-global-program-name - (or (locate-file "global" exec-path exec-suffixes 'file-executable-p) - "global") +(defcustom company-gtags-executable + (executable-find "global") "*Location of GNU global executable" :type 'string :group 'company) -(defvar company-gtags-modes '(c-mode c++-mode jde-mode java-mode php-mode)) - -(defvar company-gtags-available 'unknown) -(make-variable-buffer-local 'company-gtags-available) +(define-obsolete-variable-alias + 'company-gtags-gnu-global-program-name + 'company-gtags-executable) -(defun company-gtags-available () - (when (eq company-gtags-available 'unknown) - (condition-case err - (setq company-gtags-available - (= 0 (call-process company-gtags-gnu-global-program-name - nil nil nil "-c" "WHATEVER"))) - (error - (message "Company: GNU Global not found") - (setq-default company-gtags-available nil)))) - company-gtags-available) +(defvar company-gtags-modes '(c-mode c++-mode jde-mode java-mode php-mode)) (defun company-gtags-fetch-tags (prefix) (with-temp-buffer (let (tags) - (when (= 0 (call-process company-gtags-gnu-global-program-name nil + (when (= 0 (call-process company-gtags-executable nil (list (current-buffer) nil) nil "-c" prefix)) (goto-char (point-min)) (split-string (buffer-string) "\n" t))))) (defun company-gtags-location (tag) (with-temp-buffer - (when (= 0 (call-process company-gtags-gnu-global-program-name nil + (when (= 0 (call-process company-gtags-executable nil (list (current-buffer) nil) nil "-x" tag)) (goto-char (point-min)) (when (looking-at (concat (regexp-quote tag) @@ -68,10 +57,10 @@ (interactive (list 'interactive)) (case command ('interactive (company-begin-backend 'company-gtags)) - ('prefix (and (memq major-mode company-gtags-modes) + ('prefix (and company-gtags-executable + (memq major-mode company-gtags-modes) (not (company-in-string-or-comment)) - (company-gtags-available) - (company-grab-symbol))) + (company-grab-symbol))) ('candidates (company-gtags-fetch-tags arg)) ('sorted t) ('location (company-gtags-location arg)))) -- 2.39.2