summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJen-Chieh Shen <jcs090218@gmail.com>2019-08-22 22:00:13 +0800
committerGitHub <noreply@github.com>2019-08-22 22:00:13 +0800
commited913b49ad5cdac810d80d82b09c7dc12ab7dd0e (patch)
treed9e17094f200dd47b31aaca56e92ccc652ee8c82
parent8d476b1b378fa3968e613facc496deddc56bb20b (diff)
parentdbe562d03e1c7f52af26c3e6af9e63a731c59608 (diff)
Merge branch 'master' into wdc
-rw-r--r--feebleline.el29
1 files changed, 22 insertions, 7 deletions
diff --git a/feebleline.el b/feebleline.el
index a31d039..3d4bc1a 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")
@@ -93,6 +99,7 @@
(defvar feebleline--msg-timer)
(defvar feebleline--mode-line-format-previous)
(defvar feebleline--window-divider-previous)
+(defvar feebleline-last-error-shown nil)
(defface feebleline-git-face '((t :foreground "#444444"))
"Example face for git branch."
@@ -159,18 +166,22 @@
(setq feebleline--window-divider-previous window-divider-mode)
(window-divider-mode 1)
(setq-default mode-line-format nil)
- (setq mode-line-format nil))
+ (walk-windows (lambda (window)
+ (with-selected-window window
+ (setq mode-line-format nil)))
+ nil t))
(defun feebleline-legacy-settings-on ()
"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."
@@ -216,6 +227,7 @@ Returns a pair with desired column and string."
(with-current-buffer feebleline--minibuf
(erase-buffer)))
+
;;;###autoload
(define-minor-mode feebleline-mode
"Replace modeline with a slimmer proxy."
@@ -236,7 +248,10 @@ Returns a pair with desired column and string."
(window-divider-mode feebleline--window-divider-previous)
(set-face-attribute 'mode-line nil :height 1.0)
(setq-default mode-line-format feebleline--mode-line-format-previous)
- (setq mode-line-format feebleline--mode-line-format-previous)
+ (walk-windows (lambda (window)
+ (with-selected-window window
+ (setq mode-line-format feebleline--mode-line-format-previous)))
+ nil t)
(cancel-timer feebleline--msg-timer)
(remove-hook 'focus-in-hook 'feebleline--insert-ignore-errors)
(force-mode-line-update)