summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin Boulain <kevinboulain@gmail.com>2018-10-06 17:01:58 +0200
committerKevin Boulain <kevinboulain@gmail.com>2018-10-06 18:40:02 +0200
commit948bf699b23d3cb756a17f651a90b240facc166c (patch)
tree319bc54ac267c60bf75fa973688eec99f3e22c43
parent3eebf83bf868f8ce67cfdc779d08e28a6dcb8126 (diff)
magit-get-current-branch may not be bound or return anything
It's probably better to try to import the required packages than to check if it is bound because the user may not load magit itself. Also fallback on rev-parse to display something in case the branch isn't available (for example, detached HEAD).
-rw-r--r--feebleline.el11
1 files changed, 9 insertions, 2 deletions
diff --git a/feebleline.el b/feebleline.el
index 4e2a640..e0d6f16 100644
--- a/feebleline.el
+++ b/feebleline.el
@@ -78,7 +78,7 @@
(defvar feebleline--msg-timer)
(defvar feebleline/mode-line-format-previous)
-(defface feebleline-git-branch-face '((t :foreground "#444444" :italic t))
+(defface feebleline-git-face '((t :foreground "#444444" :italic t))
"Example face for git branch."
:group 'feebleline)
@@ -118,6 +118,13 @@
(file-name-nondirectory (buffer-file-name))
(buffer-name)))
+(defun feebleline-git-object ()
+ "Current branch, when magit is available."
+ (when (and (require 'magit-git nil t)
+ (require 'magit-process nil t))
+ (or (magit-get-current-branch) ; may return nil when not on a branch
+ (magit-rev-parse "--short" "HEAD"))))
+
(defun feebleline-file-modified-star ()
"Display star if buffer file was modified."
(when (and (buffer-file-name) (buffer-modified-p)) "*"))
@@ -139,7 +146,7 @@
(feebleline-file-directory ((face . feebleline-dir-face) (post . "")))
(feebleline-file-or-buffer-name ((face . font-lock-keyword-face) (post . "")))
(feebleline-file-modified-star ((face . font-lock-warning-face) (post . "")))
- (magit-get-current-branch ((face . feebleline-git-branch-face) (pre . " - ")))
+ (feebleline-git-object ((face . feebleline-git-face) (pre . " - ")))
;; (feebleline-project-name ((right-align . t)))
))