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

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

[nongnu] elpa/sweeprolog 0f86b23be9 080/166: ENHANCED: emit Prolog messa


From: ELPA Syncer
Subject: [nongnu] elpa/sweeprolog 0f86b23be9 080/166: ENHANCED: emit Prolog messages with color coding
Date: Fri, 30 Sep 2022 04:59:28 -0400 (EDT)

branch: elpa/sweeprolog
commit 0f86b23be97990614f2f0fa582f3a60371df34b1
Author: Eshel Yaron <me@eshelyaron.com>
Commit: Eshel Yaron <me@eshelyaron.com>

    ENHANCED: emit Prolog messages with color coding
---
 sweep.el | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 sweep.pl | 13 +++++++------
 2 files changed, 69 insertions(+), 7 deletions(-)

diff --git a/sweep.el b/sweep.el
index a1d08b0491..e6790d52c2 100644
--- a/sweep.el
+++ b/sweep.el
@@ -122,6 +122,47 @@ is used to find a the swipl executable."
           (require 'sweep-module))
       (error "Sweep will not work until `sweep-module' is compiled!"))))
 
+
+(defface sweep-debug-prefix-face
+  '((default :inherit shadow))
+  "Face used to highlight the \"DEBUG\" message prefix."
+  :group 'sweep-faces)
+
+(defvar sweep-debug-prefix-face 'sweep-debug-prefix-face
+  "Name of the face used to highlight the \"DEBUG\" message prefix.")
+
+(defface sweep-debug-topic-face
+  '((default :inherit shadow))
+  "Face used to highlight the topic in debug messages."
+  :group 'sweep-faces)
+
+(defvar sweep-debug-topic-face 'sweep-debug-topic-face
+  "Name of the face used to highlight the topic in debug messages.")
+
+(defface sweep-info-prefix-face
+  '((default :inherit default))
+  "Face used to highlight the \"INFO\" message prefix."
+  :group 'sweep-faces)
+
+(defvar sweep-info-prefix-face 'sweep-info-prefix-face
+  "Name of the face used to highlight the \"INFO\" message prefix.")
+
+(defface sweep-warning-prefix-face
+  '((default :inherit font-lock-warning-face))
+  "Face used to highlight the \"WARNING\" message prefix."
+  :group 'sweep-faces)
+
+(defvar sweep-warning-prefix-face 'sweep-warning-prefix-face
+  "Name of the face used to highlight the \"WARNING\" message prefix.")
+
+(defface sweep-error-prefix-face
+  '((default :inherit error))
+  "Face used to highlight the \"ERROR\" message prefix."
+  :group 'sweep-faces)
+
+(defvar sweep-error-prefix-face 'sweep-error-prefix-face
+  "Name of the face used to highlight the \"ERROR\" message prefix.")
+
 (defun sweep-view-messages ()
   "View the log of recent Prolog messages."
   (interactive)
@@ -147,7 +188,27 @@ is used to find a the swipl executable."
   (with-current-buffer (get-buffer-create sweep-messages-buffer-name)
     (save-excursion
       (goto-char (point-max))
-      (insert message)
+      (let ((kind (car message))
+            (content (cdr message)))
+        (pcase kind
+          (`("debug" . ,topic)
+           (insert (propertize "DEBUG" 'face sweep-debug-prefix-face))
+           (insert "[")
+           (insert (propertize topic 'face sweep-debug-topic-face))
+           (insert "]: ")
+           (insert content))
+          ("informational"
+           (insert (propertize "INFO" 'face sweep-info-prefix-face))
+           (insert ": ")
+           (insert content))
+          ("warning"
+           (insert (propertize "WARNING" 'face sweep-warning-prefix-face))
+           (insert ": ")
+           (insert content))
+          ("error"
+           (insert (propertize "ERROR" 'face sweep-error-prefix-face))
+           (insert ": ")
+           (insert content))))
       (newline))))
 
 (defun sweep-start-prolog-server ()
diff --git a/sweep.pl b/sweep.pl
index 7b97502b38..8afce756b9 100644
--- a/sweep.pl
+++ b/sweep.pl
@@ -593,12 +593,13 @@ sweep_setup_message_hook(_, _) :-
              sweep_message_hook(Term, Kind, Lines)
              )).
 
-sweep_message_hook(Term, Kind, _Lines) :-
-    should_handle_message_kind(Kind),
+sweep_message_hook(Term, Kind0, _Lines) :-
+    should_handle_message_kind(Kind0, Kind),
     !,
     message_to_string(Term, String),
-    sweep_funcall("sweep-message", String, _).
+    sweep_funcall("sweep-message", [Kind|String], _).
 
-should_handle_message_kind(error).
-should_handle_message_kind(warning).
-should_handle_message_kind(debug(_)).
+should_handle_message_kind(error, "error").
+should_handle_message_kind(warning, "warning").
+should_handle_message_kind(informational, "informational").
+should_handle_message_kind(debug(Topic0), ["debug"|Topic]) :- 
atom_string(Topic0, Topic).



reply via email to

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