Merge branch 'fixes' into 'master'

Implement various small fixes

See merge request jessieh/mood-line!4
This commit is contained in:
Jessie Hildebrandt 2020-04-29 02:59:32 +00:00
commit 85b4fdecf1

View File

@ -1,10 +1,10 @@
;;; mood-line.el --- A minimal mode-line inspired by doom-modeline. -*- lexical-binding: t; -*- ;;; mood-line.el --- A minimal mode-line inspired by doom-modeline -*- lexical-binding: t; -*-
;; Author: Jessie Hildebrandt <jessieh.net> ;; Author: Jessie Hildebrandt <jessieh.net>
;; Homepage: https://gitlab.com/jessieh/mood-line ;; Homepage: https://gitlab.com/jessieh/mood-line
;; Keywords: mode-line faces ;; Keywords: mode-line faces
;; Version: 1.2.1 ;; Version: 1.2.1
;; Package-Requires: ((emacs "24.4")) ;; Package-Requires: ((emacs "25.1"))
;; This file is not part of GNU Emacs. ;; This file is not part of GNU Emacs.
@ -86,6 +86,16 @@
:group 'mood-line :group 'mood-line
:type 'boolean) :type 'boolean)
(defface mood-line-buffer-name
'((t (:inherit (mode-line-buffer-id))))
"Face used for major mode indicator in the mode-line."
:group 'mood-line)
(defface mood-line-major-mode
'((t (:inherit (bold))))
"Face used for major mode indicator in the mode-line."
:group 'mood-line)
(defface mood-line-status-neutral (defface mood-line-status-neutral
'((t (:inherit (shadow)))) '((t (:inherit (shadow))))
"Face used for neutral or inactive status indicators in the mode-line." "Face used for neutral or inactive status indicators in the mode-line."
@ -125,23 +135,23 @@
;; Helper functions ;; Helper functions
;; ;;
(defun --string-trim-left (string) (defun mood-line--string-trim-left (string)
"Remove whitespace at the beginning of STRING." "Remove whitespace at the beginning of STRING."
(if (string-match "\\`[ \t\n\r]+" string) (if (string-match "\\`[ \t\n\r]+" string)
(replace-match "" t t string) (replace-match "" t t string)
string)) string))
(defun --string-trim-right (string) (defun mood-line--string-trim-right (string)
"Remove whitespace at the end of STRING." "Remove whitespace at the end of STRING."
(if (string-match "[ \t\n\r]+\\'" string) (if (string-match "[ \t\n\r]+\\'" string)
(replace-match "" t t string) (replace-match "" t t string)
string)) string))
(defun --string-trim (string) (defun mood-line--string-trim (string)
"Remove whitespace at the beginning and end of STRING." "Remove whitespace at the beginning and end of STRING."
(--string-trim-left (--string-trim-right string))) (mood-line--string-trim-left (mood-line--string-trim-right string)))
(defun --format-mood-line (left right) (defun mood-line--format (left right)
"Return a string of `window-width' length containing LEFT and RIGHT, aligned respectively." "Return a string of `window-width' length containing LEFT and RIGHT, aligned respectively."
(let ((reserve (length right))) (let ((reserve (length right)))
(concat left (concat left
@ -218,7 +228,7 @@
(defun mood-line-segment-buffer-name () (defun mood-line-segment-buffer-name ()
"Displays the name of the current buffer in the mode-line." "Displays the name of the current buffer in the mode-line."
(propertize "%b " 'face 'mode-line-buffer-id)) (propertize "%b " 'face 'mood-line-buffer-name))
(defun mood-line-segment-anzu () (defun mood-line-segment-anzu ()
"Displays color-coded anzu status information in the mode-line (if available)." "Displays color-coded anzu status information in the mode-line (if available)."
@ -265,13 +275,13 @@
(defun mood-line-segment-major-mode () (defun mood-line-segment-major-mode ()
"Displays the current major mode in the mode-line." "Displays the current major mode in the mode-line."
(propertize "%m " 'face 'bold)) (propertize "%m " 'face 'mood-line-major-mode))
(defun mood-line-segment-misc-info () (defun mood-line-segment-misc-info ()
"Displays the current value of `mode-line-misc-info' in the mode-line." "Displays the current value of `mode-line-misc-info' in the mode-line."
(let ((misc-info (format-mode-line mode-line-misc-info 'mood-line-unimportant))) (let ((misc-info (format-mode-line mode-line-misc-info 'mood-line-unimportant)))
(unless (string= misc-info "") (unless (string= misc-info "")
(concat (--string-trim misc-info) " ")))) (concat (mood-line--string-trim misc-info) " "))))
(defun mood-line-segment-flycheck () (defun mood-line-segment-flycheck ()
"Displays color-coded flycheck information in the mode-line (if available)." "Displays color-coded flycheck information in the mode-line (if available)."
@ -280,12 +290,12 @@
(defun mood-line-segment-flymake () (defun mood-line-segment-flymake ()
"Displays information about the current status of flymake in the mode-line (if available)." "Displays information about the current status of flymake in the mode-line (if available)."
(when (and (boundp 'flymake-mode) flymake-mode) (when (and (boundp 'flymake-mode) flymake-mode)
(concat (--string-trim (format-mode-line flymake--mode-line-format)) " "))) (concat (mood-line--string-trim (format-mode-line flymake--mode-line-format)) " ")))
(defun mood-line-segment-process () (defun mood-line-segment-process ()
"Displays the current value of `mode-line-process' in the mode-line." "Displays the current value of `mode-line-process' in the mode-line."
(when mode-line-process (when mode-line-process
(concat (--string-trim (format-mode-line mode-line-process)) " "))) (concat (mood-line--string-trim (format-mode-line mode-line-process)) " ")))
;; ;;
;; Activation function ;; Activation function
@ -315,7 +325,7 @@
;; Set the new mode-line-format ;; Set the new mode-line-format
(setq-default mode-line-format (setq-default mode-line-format
'((:eval '((:eval
(--format-mood-line (mood-line--format
;; Left ;; Left
(format-mode-line (format-mode-line
'(" " '(" "