From 77249e97e357af125e953c7b0acf852e072d6acb Mon Sep 17 00:00:00 2001 From: cage Date: Thu, 4 Apr 2024 15:45:47 +0200 Subject: [PATCH] -added new command: 'thread-go-to-parent-post'. --- etc/init.lisp | 2 ++ src/package.lisp | 3 ++- src/ui-goodies.lisp | 13 ++++++++++++- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/etc/init.lisp b/etc/init.lisp index 6330357..a101a71 100644 --- a/etc/init.lisp +++ b/etc/init.lisp @@ -270,6 +270,8 @@ (status-id (db:row-message-status-id selected-row))) (ui:info-message (format nil "ID: ~a" status-id)))) +(define-key "^" #'thread-go-to-parent-post *thread-keymap*) + (define-key "/ b" #'thread-search-next-message-body *thread-keymap*) (define-key "/ m" #'thread-search-next-message-meta *thread-keymap*) diff --git a/src/package.lisp b/src/package.lisp index 3333ea5..25e74b5 100644 --- a/src/package.lisp +++ b/src/package.lisp @@ -3203,7 +3203,8 @@ :delete-notifications :show-announcements :show-parent-post - :switch-fediverse-account)) + :switch-fediverse-account + :thread-go-to-parent-post)) (defpackage :scheduled-events (:use diff --git a/src/ui-goodies.lisp b/src/ui-goodies.lisp index 609c08d..27810f3 100644 --- a/src/ui-goodies.lisp +++ b/src/ui-goodies.lisp @@ -265,7 +265,7 @@ "Jump to message" (flet ((on-input-complete (index) (when-let* ((index-as-number (num:safe-parse-number index)) - (event (make-instance 'thread-goto-message + (event (make-instance 'thread-goto-message :payload index-as-number))) (push-event event)))) (ask-string-input #'on-input-complete :prompt (_ "Jump to message: ")))) @@ -3635,3 +3635,14 @@ gemini client certificates!)." (ask-string-input #'on-input-complete :prompt (_ "Switch to account: ") :complete-fn #'complete:fediverse-account))) + +(defun thread-go-to-parent-post () + "Select and move to th parent of the current selected post" + (when-let* ((selected-row (line-oriented-window:selected-row-fields *thread-window*)) + (status-id (actual-author-message-id selected-row)) + (parent-row (db:get-parent-status-row status-id)) + (index (db:row-message-index parent-row)) + (event (make-instance 'thread-goto-message + :payload index))) + (info-message (format nil "~a" index)) + (push-event event)))