diff options
| author | Jen-Chieh Shen <jcs090218@gmail.com> | 2019-08-22 22:00:13 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-08-22 22:00:13 +0800 |
| commit | ed913b49ad5cdac810d80d82b09c7dc12ab7dd0e (patch) | |
| tree | d9e17094f200dd47b31aaca56e92ccc652ee8c82 | |
| parent | 8d476b1b378fa3968e613facc496deddc56bb20b (diff) | |
| parent | dbe562d03e1c7f52af26c3e6af9e63a731c59608 (diff) | |
Merge branch 'master' into wdc
| -rw-r--r-- | feebleline.el | 29 |
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) |
