summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--feebleline.el18
1 files changed, 13 insertions, 5 deletions
diff --git a/feebleline.el b/feebleline.el
index 4c54c21..97a2b6b 100644
--- a/feebleline.el
+++ b/feebleline.el
@@ -58,12 +58,18 @@
;;; Code:
(require 'cl-macs)
+(autoload 'magit-get-current-branch "magit")
(defun feebleline-git-branch ()
"Return current git branch, unless file is remote."
(if (and (buffer-file-name) (file-remote-p (buffer-file-name)))
- "-"
- (magit-get-current-branch)))
+ ""
+ (let ((branch (shell-command-to-string
+ "git rev-parse --symbolic-full-name --abbrev-ref HEAD 2>/dev/null")))
+ (string-trim (replace-regexp-in-string
+ "^HEAD" "(detached HEAD)"
+ branch)))
+ ))
(defcustom feebleline-msg-functions
'((feebleline-line-number :post "" :fmt "%5s")
@@ -92,6 +98,7 @@
(defvar feebleline--home-dir nil)
(defvar feebleline--msg-timer)
(defvar feebleline--mode-line-format-previous)
+(defvar feebleline-last-error-shown nil)
(defface feebleline-git-face '((t :foreground "#444444"))
"Example face for git branch."
@@ -166,12 +173,13 @@
"Some default settings for EMACS < 25."
(set-face-attribute 'mode-line nil :height 0.1))
-;; disabled, because we really shouldn't silently fail
(defun feebleline--insert-ignore-errors ()
"Insert stuff into the echo area, ignoring potential errors."
(unless (current-message)
- (condition-case nil (feebleline--insert)
- (error nil))))
+ (condition-case err (feebleline--insert)
+ (error (unless (equal feebleline-last-error-shown err)
+ (setq feebleline-last-error-shown err)
+ (message (format "feebleline error: %s" err)))))))
(defun feebleline--force-insert ()
"Insert stuff into the echo area even if it's displaying something."