leoliu pushed a commit to branch master in repository elpa. commit 5e12575cd6856a929a3ca464eda13b44b0176e38 Author: Leo Liu <sdl....@gmail.com> Date: Fri Mar 7 14:49:51 2014 +0800
Display project root directory name on mode-line --- ggtags.el | 26 +++++++++++++++++++++++++- 1 files changed, 25 insertions(+), 1 deletions(-) diff --git a/ggtags.el b/ggtags.el index c2f09e1..24a0085 100644 --- a/ggtags.el +++ b/ggtags.el @@ -1473,6 +1473,23 @@ When finished invoke CALLBACK in BUFFER with process exit status." :visible (not (ggtags-find-project)))) map)) +(defvar ggtags-mode-line-project-keymap + (let ((map (make-sparse-keymap))) + (define-key map [mode-line mouse-1] 'ggtags-visit-project-root) + map)) + +(put 'ggtags-mode-line-project-name 'risky-local-variable t) +(defvar ggtags-mode-line-project-name + '("[" (:eval (when (stringp ggtags-project-root) + (let ((name (file-name-nondirectory + (directory-file-name ggtags-project-root)))) + (propertize name 'face compilation-info-face + 'help-echo (concat "mouse-1 to visit " + ggtags-project-root) + 'mouse-face 'mode-line-highlight + 'keymap ggtags-mode-line-project-keymap)))) + "]")) + ;;;###autoload (define-minor-mode ggtags-mode nil :lighter (:eval (if ggtags-navigation-mode "" " GG")) @@ -1485,9 +1502,16 @@ When finished invoke CALLBACK in BUFFER with process exit status." (add-hook 'after-save-hook 'ggtags-after-save-function nil t) ;; Append to serve as a fallback method. (add-hook 'completion-at-point-functions - #'ggtags-completion-at-point t t)) + #'ggtags-completion-at-point t t) + (unless (memq 'ggtags-mode-line-project-name + mode-line-buffer-identification) + (setq mode-line-buffer-identification + (append mode-line-buffer-identification + '(ggtags-mode-line-project-name))))) (remove-hook 'after-save-hook 'ggtags-after-save-function t) (remove-hook 'completion-at-point-functions #'ggtags-completion-at-point t) + (setq mode-line-buffer-identification + (delq 'ggtags-mode-line-project-name mode-line-buffer-identification)) (and (overlayp ggtags-highlight-tag-overlay) (delete-overlay ggtags-highlight-tag-overlay)) (setq ggtags-highlight-tag-overlay nil)))