From 062b362066fb0504d33ea1baa102a425693c50ae Mon Sep 17 00:00:00 2001 From: Adam Porter Date: Fri, 4 Dec 2020 02:27:33 -0600 Subject: [PATCH] Add: Timestamp headers --- README.org | 4 ++ ement-room.el | 110 +++++++++++++++++++++++++++++++++-------- ement.el | 2 +- images/screenshot3.png | Bin 0 -> 55728 bytes 4 files changed, 94 insertions(+), 22 deletions(-) create mode 100644 images/screenshot3.png diff --git a/README.org b/README.org index 15c5334..dfb936e 100644 --- a/README.org +++ b/README.org @@ -14,6 +14,10 @@ The message formatting is customizeable (e.g. the timestamp can be displayed in [[images/screenshot2.png]] +Timestamp headers are displayed where a certain amount of time passes between events. + +[[images/screenshot3.png]] + * Contents :noexport: :PROPERTIES: :TOC: :include siblings diff --git a/ement-room.el b/ement-room.el index fe57d3a..e755e72 100644 --- a/ement-room.el +++ b/ement-room.el @@ -133,6 +133,12 @@ See Info node `(elisp)Other Display Specs'." (function :tag "Function") (sexp :tag "Form"))) )) +(defcustom ement-room-timestamp-header-delta 600 + "Show timestamp header where events are at least this many seconds apart." + :type 'integer) + +;;;;; Faces + (defface ement-room-membership '((t (:inherit font-lock-comment-face))) "Membership events (join/part).") @@ -153,6 +159,10 @@ See Info node `(elisp)Other Display Specs'." '((t (:inherit font-lock-variable-name-face))) "Own messages.") +(defface ement-room-timestamp-header + '((t (:inherit header-line :weight bold))) + "Timestamp headers.") + ;;;; Commands (defun ement-room-goto-prev (num) @@ -216,7 +226,8 @@ See Info node `(elisp)Other Display Specs'." ((map _start end chunk state) data) (buffer (cl-loop for buffer in (buffer-list) when (equal room (buffer-local-value 'ement-room buffer)) - return buffer))) + return buffer)) + (window) (point-node) (orig-first-node)) ;; FIXME: These are pushed onto the front of the lists. Doesn't ;; really matter, but maybe better to put them at the other end. (cl-loop for event across state @@ -227,15 +238,19 @@ See Info node `(elisp)Other Display Specs'." (push event (ement-room-timeline room))) (when buffer (with-current-buffer buffer - (when-let* ((window (get-buffer-window buffer)) - (point-node (with-selected-window window - (ewoc-locate ement-ewoc (window-start))))) - (cl-loop for event across chunk - do (ement-room--insert-event event)) - (with-selected-window (get-buffer-window buffer) - (set-window-start nil (ewoc-location point-node)) - ;; FIXME: Experiment with this. - (forward-line -1))) + (setf window (get-buffer-window buffer) + point-node (when window + (with-selected-window window + (ewoc-locate ement-ewoc (window-start)))) + orig-first-node (ewoc-nth ement-ewoc 0)) + (cl-loop for event across chunk + do (ement-room--insert-event event)) + ;; Insert timestamp headers up to the original first node. + (ement-room--insert-ts-headers nil orig-first-node) + (with-selected-window (get-buffer-window buffer) + (set-window-start nil (ewoc-location point-node)) + ;; FIXME: Experiment with this. + (forward-line -1)) (setf (ement-room-prev-batch room) end ement-room-retro-loading nil))))) @@ -295,7 +310,7 @@ and erases the buffer." left-margin-width ement-room-left-margin-width right-margin-width ement-room-right-margin-width ;; TODO: Use EWOC header/footer for, e.g. typing messages. - ement-ewoc (ewoc-create #'ement-room--pp-event))) + ement-ewoc (ewoc-create #'ement-room--pp-thing))) (defun ement-room--buffer (session room name) "Return a buffer named NAME showing ROOM's events on SESSION." @@ -311,6 +326,8 @@ and erases the buffer." ;; Move new events to main list. (setf (ement-room-timeline room) (append (ement-room-timeline* room) (ement-room-timeline room)) (ement-room-timeline* room) nil) + ;; Insert timestamp headers. + (ement-room--insert-ts-headers) ;; Return the buffer! (current-buffer)))) @@ -331,6 +348,38 @@ and erases the buffer." ;;;;; EWOC +(defun ement-room--ewoc-next-matching (ewoc node pred) + "Return the next node in EWOC after NODE that matches PRED." + ;; MAYBE: Make the next/prev fn an arg. + (cl-loop do (setf node (ewoc-next ewoc node)) + until (or (null node) + (funcall pred (ewoc-data node))) + finally return node)) + +(defun ement-room--insert-ts-headers (&optional start-node end-node) + "Insert timestamp headers into current buffer." + (ignore start-node end-node) + (let* ((ewoc ement-ewoc) + (end-pos (ewoc-location (or end-node + (ewoc-nth ewoc -1)))) + (node-b (or start-node (ewoc-nth ewoc 0))) + node-a) + (while (and (setf node-a (ement-room--ewoc-next-matching ewoc node-b #'ement-event-p) + node-b (when node-a + (ement-room--ewoc-next-matching ewoc node-a #'ement-event-p))) + (not (or (>= (ewoc-location node-a) end-pos) + (>= (ewoc-location node-b) end-pos)))) + ;; NOTE: Matrix timestamps are in milliseconds. + (let* ((a-ts (/ (ement-event-origin-server-ts (ewoc-data node-a)) 1000)) + (b-ts (/ (ement-event-origin-server-ts (ewoc-data node-b)) 1000)) + (diff-seconds (- b-ts a-ts))) + (when (and (>= diff-seconds ement-room-timestamp-header-delta) + (not (when-let ((node-after-a (ewoc-next ewoc node-a))) + (pcase (ewoc-data node-after-a) + (`(ts) t))))) + (ewoc-enter-after ewoc node-a + (list 'ts b-ts))))))) + (defun ement-room--insert-event (event) "Insert EVENT into current buffer." (let* ((ewoc ement-ewoc) @@ -372,9 +421,20 @@ and erases the buffer." (ewoc-enter-before ewoc new-node (ement-event-sender event))) (ement-debug "Event before: compare sender.") (if (equal (ement-event-sender event) - (cl-typecase (ewoc-data node-before) - (ement-event (ement-event-sender (ewoc-data node-before))) - (ement-user (ewoc-data node-before)))) + (pcase-exhaustive (ewoc-data node-before) + ((pred ement-event-p) + (ement-event-sender (ewoc-data node-before))) + ((pred ement-user-p) + (ewoc-data node-before)) + (`(ts ,(pred numberp)) + ;; Timestamp header. + (when-let ((node-before-ts (ewoc-prev ewoc node-before))) + ;; FIXME: Well this is ugly. Make a filter predicate or something. + (pcase-exhaustive (ewoc-data node-before-ts) + ((pred ement-event-p) + (ement-event-sender (ewoc-data node-before))) + ((pred ement-user-p) + (ewoc-data node-before))))))) (ement-debug "Same sender.") (ement-debug "Different sender: insert new sender node.") (ewoc-enter-before ewoc new-node (ement-event-sender event)) @@ -418,13 +478,21 @@ and erases the buffer." ;;;;; Formatting -(defun ement-room--pp-event (struct) - "Pretty-print STRUCT. -To be used as the pretty-printer for `ewoc-create'." - (cl-etypecase struct - (ement-event (insert "" (ement-room--format-event struct))) - (ement-user (insert (propertize (ement-room--format-user struct) - 'display ement-room-username-display-property))))) +(defun ement-room--pp-thing (thing) + "Pretty-print THING. +To be used as the pretty-printer for `ewoc-create'. THING may be +an `ement-event' or `ement-user' struct, or a list like `(ts +TIMESTAMP)', where TIMESTAMP is a Unix timestamp number of +seconds." + (pcase-exhaustive thing + ((pred ement-event-p) + (insert "" (ement-room--format-event thing))) + ((pred ement-user-p) + (insert (propertize (ement-room--format-user thing) + 'display ement-room-username-display-property))) + (`(ts ,(and (pred numberp) ts)) ;; Insert a date header. + (insert "\n" (propertize (format-time-string " %H:%M\n" ts) + 'face 'ement-room-timestamp-header))))) ;; (defun ement-room--format-event (event) ;; "Format `ement-event' EVENT." diff --git a/ement.el b/ement.el index e7d3b5f..99489d6 100644 --- a/ement.el +++ b/ement.el @@ -6,7 +6,7 @@ ;; Keywords: comm ;; URL: https://github.com/alphapapa/ement.el ;; Package-Version: 0.1-pre -;; Package-Requires: ((emacs "26.3") (plz "0.1-pre") (ts "0.2")) +;; Package-Requires: ((emacs "26.3") (plz "0.1-pre")) ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by diff --git a/images/screenshot3.png b/images/screenshot3.png new file mode 100644 index 0000000000000000000000000000000000000000..5d11958fb1c3522bcfdf539e3c73cf683a5ae807 GIT binary patch literal 55728 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 VY`yp)-5US^002ovPDHLkV1ffRcpd-% literal 0 HcmV?d00001