diff options
| -rw-r--r-- | feebleline.el | 18 |
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." |
