emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/sesman 19151a8b60 065/100: Add colors for marking dir, pr


From: ELPA Syncer
Subject: [nongnu] elpa/sesman 19151a8b60 065/100: Add colors for marking dir, proj and buf in listings
Date: Tue, 28 Dec 2021 14:06:03 -0500 (EST)

branch: elpa/sesman
commit 19151a8b60ea751875715bedea0dce3b9a04048a
Author: Vitalie Spinu <spinuvit@gmail.com>
Commit: Vitalie Spinu <spinuvit@gmail.com>

    Add colors for marking dir, proj and buf in listings
---
 sesman-browser.el | 68 +++++++++++++++++++++++++++++++++++++++----------------
 1 file changed, 49 insertions(+), 19 deletions(-)

diff --git a/sesman-browser.el b/sesman-browser.el
index 935e1bc7e6..5e2e1898f6 100644
--- a/sesman-browser.el
+++ b/sesman-browser.el
@@ -40,13 +40,6 @@
   :group 'sesman
   :link '(url-link :tag "GitHub" "https://github.com/vspinu/sesman";))
 
-(defvar-local sesman-browser--sort-types '(name relevance))
-(defcustom sesman-browser-sort-type 'name
-  "Default sorting type in sesman browser buffers.
-Currently can be either 'name  or 'relevance."
-  :type '(choice (const name) (const relevance))
-  :group 'sesman-browser)
-
 (defface sesman-browser-highligh
   '((default (:inherit highlight :weight bold)))
   "Face used to highlight currently selected button."
@@ -57,6 +50,33 @@ Currently can be either 'name  or 'relevance."
   "Face used to highlight currently selected object."
   :group 'sesman-browser)
 
+(defface sesman-browser-project-face
+  '((default (:inherit font-lock-comment-face)))
+  "Face used to mark projects."
+  :group 'sesman-browser)
+
+(defface sesman-browser-directory-face
+  '((default (:inherit font-lock-constant-face)))
+  "Face used to mark directories."
+  :group 'sesman-browser)
+
+(defface sesman-browser-buffer-face
+  '((default (:inherit font-lock-keyword-face)))
+  "Face used to mark buffers."
+  :group 'sesman-browser)
+
+(defface sesman-browser-project-face
+  '((default (:inherit font-lock-comment-face)))
+  "Face used to mark projects."
+  :group 'sesman-browser)
+
+(defvar-local sesman-browser--sort-types '(name relevance))
+(defcustom sesman-browser-sort-type 'name
+  "Default sorting type in sesman browser buffers.
+Currently can be either 'name  or 'relevance."
+  :type '(choice (const name) (const relevance))
+  :group 'sesman-browser)
+
 (defvar sesman-browser-map
   (let (sesman-browser-map)
     (define-prefix-command 'sesman-browser-map)
@@ -332,7 +352,9 @@ See `sesman-browser-sort-type' for the default sorting 
type."
            (propertize (symbol-name sesman-browser-sort-type) 'face 'bold)))
 
 (define-derived-mode sesman-browser-mode special-mode "SesmanBrowser"
-  "Interactive view of Sesman sessions."
+  "Interactive view of Sesman sessions.
+When applicable, system specific commands are locally bound to j when point is
+on a session object."
   ;; ensure there is a sesman-system here
   (sesman--system)
   (delete-all-overlays)
@@ -371,20 +393,27 @@ See `sesman-browser-sort-type' for the default sorting 
type."
           (vert-stop))
       (dolist (grp link-groups)
         (let* ((type (car grp))
-               (short-type (or (plist-get sesman--cxt-abbrevs type) type)))
+               (face (intern (format "sesman-browser-%s-face" type)))
+               (short-type (propertize (or (plist-get sesman--cxt-abbrevs type)
+                                           (symbol-value type))
+                                       'face (list (if (facep face)
+                                                       face
+                                                     
'font-lock-function-name-face)
+                                                   'sesman-browser-button))))
           (dolist (link (cdr grp))
             (when (> (current-column) fill-column)
               (insert "\n" (format head-template " "))
               (setq vert-stop nil))
-            (insert (propertize (format "%s(%s)" short-type
-                                        (sesman--abbrev-path-maybe
-                                         (sesman--lnk-value link)))
-                                :sesman-stop (car link)
-                                :sesman-vertical-stop (unless vert-stop (setq 
vert-stop t))
-                                :sesman-link link
-                                'cursor-sensor-functions (list 
#'sesman-browser--sensor-function)
-                                'mouse-face 'highlight
-                                'face 'sesman-browser-button))
+            (let ((link-spec (propertize (format "(%s)"
+                                                 (sesman--abbrev-path-maybe
+                                                  (sesman--lnk-value link)))
+                                         'face 'sesman-browser-button)))
+              (insert (propertize (concat short-type link-spec)
+                                  :sesman-stop (car link)
+                                  :sesman-vertical-stop (unless vert-stop 
(setq vert-stop t))
+                                  :sesman-link link
+                                  'cursor-sensor-functions (list 
#'sesman-browser--sensor-function)
+                                  'mouse-face 'highlight)))
             (insert "  ")))))
     (insert "\n")
 
@@ -425,7 +454,8 @@ See `sesman-browser-sort-type' for the default sorting 
type."
 
 ;;;###autoload
 (defun sesman-browser ()
-  "Display an interactive session browser."
+  "Display an interactive session browser.
+See `sesman-browser-mode' for more details."
   (interactive)
   (let* ((system (sesman--system))
          (pop-to (called-interactively-p 'any))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]