branch: externals/gtags-mode commit 2e5ecb8042410e4905e9ae51a0caf715f8ea429a Author: Jimmy Aguilar Mena <kratsbinov...@gmail.com> Commit: Jimmy Aguilar Mena <kratsbinov...@gmail.com>
Add check on mode enable. Don't enable the mode when not gtags db was found. --- gtags-mode.el | 40 ++++++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/gtags-mode.el b/gtags-mode.el index 5ac06d392d..226b9a62ff 100644 --- a/gtags-mode.el +++ b/gtags-mode.el @@ -317,25 +317,29 @@ Return as a list of xref location objects." (cond (gtags-mode (gtags-mode--set-connection-locals) - (setq gtags-mode--root (gtags-mode--find-root)) - (add-hook 'find-file-hook #'gtags-mode--find-file-hook) - (add-hook 'project-find-functions #'gtags-mode-project-backend) - (add-hook 'xref-backend-functions #'gtags-xref-backend nil t) - (add-hook 'after-save-hook #'gtags-mode--after-save-hook nil t) - (add-hook 'completion-at-point-functions #'gtags-mode-completion-function nil t) - (setq gtags-mode--imenu-default-function imenu-create-index-function) - (setq imenu-create-index-function #'gtags-mode-imenu-create-index-function) - ;; Enable the mode in all the files inside `gtags-mode--root' - (when (called-interactively-p 'all) - (mapc (lambda (buff) - (unless (buffer-local-value 'gtags-mode buff) - (with-current-buffer buff - (gtags-mode 1)))) - (gtags-mode--buffers-in-root gtags-mode--root)))) + (if (setq gtags-mode--plist (gtags-mode--find-or-create-plist)) + (progn + (add-hook 'find-file-hook #'gtags-mode--find-file-hook) + (add-hook 'project-find-functions #'gtags-mode-project-backend) + (add-hook 'xref-backend-functions #'gtags-xref-backend nil t) + (add-hook 'after-save-hook #'gtags-mode--after-save-hook nil t) + (add-hook 'completion-at-point-functions #'gtags-mode-completion-function nil t) + (setq gtags-mode--imenu-default-function imenu-create-index-function) + (setq imenu-create-index-function #'gtags-mode-imenu-create-index-function) + ;; Enable the mode in all the files inside `gtags-mode--plist' + (when (called-interactively-p 'all) + (mapc (lambda (buff) + (unless (buffer-local-value 'gtags-mode buff) + (with-current-buffer buff + (gtags-mode 1)))) + (gtags-mode--buffers-in-root gtags-mode--plist)))) + (when (called-interactively-p 'all) + (message "Couldn't enable gtags-mode. Not root found.")) + (setq gtags-mode -1))) (t - (setq gtags-mode--root nil) - (remove-hook 'find-file-hook #'gtags-mode--find-file-hook) - (remove-hook 'project-find-functions #'gtags-mode-project-backend) + (setq gtags-mode--plist nil) + ;; (remove-hook 'find-file-hook #'gtags-mode--find-file-hook) + ;; (remove-hook 'project-find-functions #'gtags-mode-project-backend) (remove-hook 'xref-backend-functions #'gtags-xref-backend t) (remove-hook 'after-save-hook #'gtags-mode--after-save-hook t) (remove-hook 'completion-at-point-functions #'gtags-mode-completion-function t)