branch: externals/calibre
commit 521fc7471b61d943b96661c8541feb8654c9cdba
Author: Kjartan Óli Ágústsson <[email protected]>
Commit: Kjartan Óli Ágústsson <[email protected]>

    Add faces to make library buffer easier to parse
    
    * calibre-library.el (calibre-library-mode): Set font lock keywords
    for library buffer.
    * calibre.el (calibre-faces): Create group.
    (calibre-modified, calibre-modified-face, calibre-flagged,
    calibre-flagged-face): Create faces.
    (calibre-font-lock-keywords): Create font lock keywords.
---
 calibre-library.el |  2 ++
 calibre.el         | 33 +++++++++++++++++++++++++++++++++
 2 files changed, 35 insertions(+)

diff --git a/calibre-library.el b/calibre-library.el
index 7d7558348a..ade73112f8 100644
--- a/calibre-library.el
+++ b/calibre-library.el
@@ -123,6 +123,8 @@
 (define-derived-mode calibre-library-mode tabulated-list-mode
   (setf tabulated-list-padding 2)
   (setq-local revert-buffer-function #'calibre-library-revert)
+  (setq-local font-lock-defaults
+              '(calibre-font-lock-keywords t nil nil beginning-of-line))
   (calibre-library--set-header))
 
 ;;;###autoload
diff --git a/calibre.el b/calibre.el
index 634bfb9c25..562c72a134 100644
--- a/calibre.el
+++ b/calibre.el
@@ -55,5 +55,38 @@
 (defconst calibre-mod-marker ?M
   "Character used to flag books that have been modified.")
 
+
+;;; Faces
+
+(defgroup calibre-faces nil
+  "Faces used by Calibre."
+  :group 'calibre
+  :group 'faces)
+
+(defface calibre-modified
+  '((t (:inherit warning)))
+  "Face used for marked as modified."
+  :group 'calibre-faces
+  :package-version '("calibre" . "1.2.0"))
+
+(defvar calibre-modified-face 'calibre-modified
+  "Face used for marked as modified.")
+
+(defface calibre-flagged
+  '((t (:inherit error)))
+  "Face used for books flagged for deletion."
+  :group 'calibre-faces
+  :package-version '("calibre" . "1.2.0"))
+
+(defvar calibre-flagged-face 'calibre-flagged
+  "Face used for books flagged for deletion.")
+
+(defvar calibre-font-lock-keywords
+  (list
+   (list (concat "^[" (char-to-string calibre-del-marker) "]")
+         '(".+" (beginning-of-line) nil (0 calibre-flagged-face)))
+   (list (concat "^[" (char-to-string calibre-mod-marker) "]")
+         '(".+" (beginning-of-line) nil (0 calibre-modified-face)))))
+
 (provide 'calibre)
 ;;; calibre.el ends here

Reply via email to