diff --git a/lv.el b/lv.el index 306adf7..af78610 100644 --- a/lv.el +++ b/lv.el @@ -43,6 +43,11 @@ :group 'lv :type 'boolean) +(defcustom lv-use-padding nil + "Wheter to use horizontal padding in the LV window." + :group 'lv + :type 'boolean) + (defface lv-separator '((((class color) (background light)) :background "grey80") (((class color) (background dark)) :background "grey30")) @@ -89,6 +94,14 @@ Only the background color is significant." (defvar lv-force-update nil "When non-nil, `lv-message' will refresh even for the same string.") +(defun lv--pad-to-center (str width) + "Pad STR with spaces on the left to be centered to WIDTH." + (let* ((strs (split-string str "\n")) + (padding (make-string + (/ (- width (length (car strs))) 2) + ?\ ))) + (mapconcat (lambda (s) (concat padding s)) strs "\n"))) + (defun lv-message (format-string &rest args) "Set LV window contents to (`format' FORMAT-STRING ARGS)." (let* ((str (apply #'format format-string args)) @@ -96,6 +109,8 @@ Only the background color is significant." deactivate-mark golden-ratio-mode) (with-selected-window (lv-window) + (when lv-use-padding + (setq str (lv--pad-to-center str (window-width)))) (unless (and (string= (buffer-string) str) (null lv-force-update)) (delete-region (point-min) (point-max))