From 0230d6e403308c6931a21c9d3485ff5dce167366 Mon Sep 17 00:00:00 2001 From: Rob Giardina Date: Sun, 30 Jun 2019 14:17:55 -0400 Subject: autoload magit if needed --- feebleline.el | 1 + 1 file changed, 1 insertion(+) diff --git a/feebleline.el b/feebleline.el index 6fbdebd..5ca1107 100644 --- a/feebleline.el +++ b/feebleline.el @@ -58,6 +58,7 @@ ;;; Code: (require 'cl-macs) +(autoload 'magit-get-current-branch "magit") (defun feebleline-git-branch () "Return current git branch, unless file is remote." -- cgit v1.2.3 From a3204b2ccf77a645108f63ccc7e743e5b7bb81fc Mon Sep 17 00:00:00 2001 From: Rob Giardina Date: Sun, 30 Jun 2019 14:18:10 -0400 Subject: display errors inserting modeline info, once --- feebleline.el | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/feebleline.el b/feebleline.el index 5ca1107..64061f0 100644 --- a/feebleline.el +++ b/feebleline.el @@ -93,6 +93,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." @@ -164,12 +165,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." -- cgit v1.2.3 From d88915d5d354abe7a0003aafd034b23decbeefe3 Mon Sep 17 00:00:00 2001 From: jenchieh Date: Thu, 11 Jul 2019 19:29:21 +0800 Subject: Working version to fixed mode-line toggle issue. --- feebleline.el | 36 ++++++++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/feebleline.el b/feebleline.el index 2d7d1ce..010d5e2 100644 --- a/feebleline.el +++ b/feebleline.el @@ -157,7 +157,9 @@ window-divider-default-places (quote bottom-only)) (window-divider-mode t) (setq-default mode-line-format nil) - (setq mode-line-format nil)) + (feebleline--walk-through-windows + (lambda () + (setq mode-line-format nil)))) (defun feebleline-legacy-settings-on () "Some default settings for EMACS < 25." @@ -214,6 +216,34 @@ Returns a pair with desired column and string." (with-current-buffer feebleline--minibuf (erase-buffer))) + +(defun feebleline--count-windows () + "Total window count." + (save-selected-window + (let ((count 0) + (frame-len (length (frame-list))) + (current-frame-count 0) + (frame-counter 0)) + (while (< frame-counter frame-len) + (setq current-frame-count (count-windows)) + (setq count (+ count current-frame-count)) + (let ((index 0)) + (while (< index current-frame-count) + (other-window 1 t) + (setq index (+ index 1)))) + (setq frame-counter (+ frame-counter 1))) + count))) + +(defun feebleline--walk-through-windows (fnc) + "Walk through all the windows once and execute callback FNC." + (save-selected-window + (let ((index 0)) + (while (< index (feebleline--count-windows)) + (when fnc + (funcall fnc)) + (other-window 1 t) + (setq index (+ index 1)))))) + ;;;###autoload (define-minor-mode feebleline-mode "Replace modeline with a slimmer proxy." @@ -234,7 +264,9 @@ Returns a pair with desired column and string." ;; Deactivation: (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) + (feebleline--walk-through-windows + (lambda () + (setq mode-line-format feebleline--mode-line-format-previous))) (cancel-timer feebleline--msg-timer) (remove-hook 'focus-in-hook 'feebleline--insert-ignore-errors) (force-mode-line-update) -- cgit v1.2.3 From e2ad7e1303508663f4f557f9741ddd00087b9b9c Mon Sep 17 00:00:00 2001 From: jenchieh Date: Thu, 11 Jul 2019 23:19:12 +0800 Subject: Cleanup count window. --- feebleline.el | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/feebleline.el b/feebleline.el index 010d5e2..f294906 100644 --- a/feebleline.el +++ b/feebleline.el @@ -219,20 +219,10 @@ Returns a pair with desired column and string." (defun feebleline--count-windows () "Total window count." - (save-selected-window - (let ((count 0) - (frame-len (length (frame-list))) - (current-frame-count 0) - (frame-counter 0)) - (while (< frame-counter frame-len) - (setq current-frame-count (count-windows)) - (setq count (+ count current-frame-count)) - (let ((index 0)) - (while (< index current-frame-count) - (other-window 1 t) - (setq index (+ index 1)))) - (setq frame-counter (+ frame-counter 1))) - count))) + (let ((count 0)) + (dolist (fn (frame-list)) + (setq count (+ (length (window-list fn)) count))) + count)) (defun feebleline--walk-through-windows (fnc) "Walk through all the windows once and execute callback FNC." @@ -244,6 +234,7 @@ Returns a pair with desired column and string." (other-window 1 t) (setq index (+ index 1)))))) + ;;;###autoload (define-minor-mode feebleline-mode "Replace modeline with a slimmer proxy." -- cgit v1.2.3 From da38f3d6a08c177594bf9e5c5909a04c8ee964f6 Mon Sep 17 00:00:00 2001 From: jenchieh Date: Sun, 21 Jul 2019 19:50:44 +0800 Subject: Use simplified version to walk through windows. --- feebleline.el | 26 ++------------------------ 1 file changed, 2 insertions(+), 24 deletions(-) diff --git a/feebleline.el b/feebleline.el index f294906..787f033 100644 --- a/feebleline.el +++ b/feebleline.el @@ -157,9 +157,7 @@ window-divider-default-places (quote bottom-only)) (window-divider-mode t) (setq-default mode-line-format nil) - (feebleline--walk-through-windows - (lambda () - (setq mode-line-format nil)))) + (mapc (lambda (frame) (mapc (lambda (window) (setq mode-line-format nil)) (window-list frame))) (frame-list))) (defun feebleline-legacy-settings-on () "Some default settings for EMACS < 25." @@ -217,24 +215,6 @@ Returns a pair with desired column and string." (erase-buffer))) -(defun feebleline--count-windows () - "Total window count." - (let ((count 0)) - (dolist (fn (frame-list)) - (setq count (+ (length (window-list fn)) count))) - count)) - -(defun feebleline--walk-through-windows (fnc) - "Walk through all the windows once and execute callback FNC." - (save-selected-window - (let ((index 0)) - (while (< index (feebleline--count-windows)) - (when fnc - (funcall fnc)) - (other-window 1 t) - (setq index (+ index 1)))))) - - ;;;###autoload (define-minor-mode feebleline-mode "Replace modeline with a slimmer proxy." @@ -255,9 +235,7 @@ Returns a pair with desired column and string." ;; Deactivation: (set-face-attribute 'mode-line nil :height 1.0) (setq-default mode-line-format feebleline--mode-line-format-previous) - (feebleline--walk-through-windows - (lambda () - (setq mode-line-format feebleline--mode-line-format-previous))) + (mapc (lambda (frame) (mapc (lambda (window) (setq mode-line-format feebleline--mode-line-format-previous)) (window-list frame))) (frame-list)) (cancel-timer feebleline--msg-timer) (remove-hook 'focus-in-hook 'feebleline--insert-ignore-errors) (force-mode-line-update) -- cgit v1.2.3 From 65881deed5c3a0747739e366aea9ff93a5c5c6af Mon Sep 17 00:00:00 2001 From: jenchieh Date: Sun, 21 Jul 2019 21:15:37 +0800 Subject: Fixed with window. --- feebleline.el | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/feebleline.el b/feebleline.el index 787f033..c391019 100644 --- a/feebleline.el +++ b/feebleline.el @@ -157,7 +157,12 @@ window-divider-default-places (quote bottom-only)) (window-divider-mode t) (setq-default mode-line-format nil) - (mapc (lambda (frame) (mapc (lambda (window) (setq mode-line-format nil)) (window-list frame))) (frame-list))) + (mapc (lambda (frame) + (mapc (lambda (window) + (with-selected-window window + (setq mode-line-format nil))) + (window-list frame))) + (frame-list))) (defun feebleline-legacy-settings-on () "Some default settings for EMACS < 25." @@ -235,7 +240,12 @@ Returns a pair with desired column and string." ;; Deactivation: (set-face-attribute 'mode-line nil :height 1.0) (setq-default mode-line-format feebleline--mode-line-format-previous) - (mapc (lambda (frame) (mapc (lambda (window) (setq mode-line-format feebleline--mode-line-format-previous)) (window-list frame))) (frame-list)) + (mapc (lambda (frame) + (mapc (lambda (window) + (with-selected-window window + (setq mode-line-format feebleline--mode-line-format-previous))) + (window-list frame))) + (frame-list)) (cancel-timer feebleline--msg-timer) (remove-hook 'focus-in-hook 'feebleline--insert-ignore-errors) (force-mode-line-update) -- cgit v1.2.3 From e0fcb483b1ede6bb046c4c72ab0e9c8d924f219e Mon Sep 17 00:00:00 2001 From: jenchieh Date: Sun, 21 Jul 2019 22:57:27 +0800 Subject: Use walk window. --- feebleline.el | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/feebleline.el b/feebleline.el index c391019..4c54c21 100644 --- a/feebleline.el +++ b/feebleline.el @@ -157,12 +157,10 @@ window-divider-default-places (quote bottom-only)) (window-divider-mode t) (setq-default mode-line-format nil) - (mapc (lambda (frame) - (mapc (lambda (window) + (walk-windows (lambda (window) (with-selected-window window (setq mode-line-format nil))) - (window-list frame))) - (frame-list))) + nil t)) (defun feebleline-legacy-settings-on () "Some default settings for EMACS < 25." @@ -240,12 +238,10 @@ Returns a pair with desired column and string." ;; Deactivation: (set-face-attribute 'mode-line nil :height 1.0) (setq-default mode-line-format feebleline--mode-line-format-previous) - (mapc (lambda (frame) - (mapc (lambda (window) + (walk-windows (lambda (window) (with-selected-window window (setq mode-line-format feebleline--mode-line-format-previous))) - (window-list frame))) - (frame-list)) + nil t) (cancel-timer feebleline--msg-timer) (remove-hook 'focus-in-hook 'feebleline--insert-ignore-errors) (force-mode-line-update) -- cgit v1.2.3 From b37041ae37104a3d7d85e4c14de490032cdcd666 Mon Sep 17 00:00:00 2001 From: Benjamin Lindqvist Date: Thu, 11 Jul 2019 07:23:38 +0200 Subject: Enable getting git branch w/o magit Force push fix for removing newline --- feebleline.el | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/feebleline.el b/feebleline.el index eea9a09..9e16c2e 100644 --- a/feebleline.el +++ b/feebleline.el @@ -63,8 +63,12 @@ (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"))) + (string-trim (replace-regexp-in-string + "^HEAD" "(detached HEAD)" + branch))))) (defcustom feebleline-msg-functions '((feebleline-line-number :post "" :fmt "%5s") -- cgit v1.2.3 From 71f2b021af6924af4744f556a0472aa0d95c5f3b Mon Sep 17 00:00:00 2001 From: Benjamin Lindqvist Date: Thu, 22 Aug 2019 15:44:44 +0200 Subject: Ignore stderr when getting git branch --- feebleline.el | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/feebleline.el b/feebleline.el index 9e16c2e..039d327 100644 --- a/feebleline.el +++ b/feebleline.el @@ -65,10 +65,11 @@ (if (and (buffer-file-name) (file-remote-p (buffer-file-name))) "" (let ((branch (shell-command-to-string - "git rev-parse --symbolic-full-name --abbrev-ref HEAD"))) + "git rev-parse --symbolic-full-name --abbrev-ref HEAD 2>/dev/null"))) (string-trim (replace-regexp-in-string "^HEAD" "(detached HEAD)" - branch))))) + branch))) + )) (defcustom feebleline-msg-functions '((feebleline-line-number :post "" :fmt "%5s") -- cgit v1.2.3