emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] 14/38: Display project root directory name on mode-line


From: Leo Liu
Subject: [elpa] 14/38: Display project root directory name on mode-line
Date: Mon, 24 Mar 2014 09:31:34 +0000

leoliu pushed a commit to branch master
in repository elpa.

commit 5e12575cd6856a929a3ca464eda13b44b0176e38
Author: Leo Liu <address@hidden>
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)))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]