From e3d995a74f7fb9fe9c2f8ef01b0c98a67b201733 Mon Sep 17 00:00:00 2001 From: Debanjum Singh Solanky Date: Thu, 13 Jun 2024 08:24:53 +0530 Subject: [PATCH] Extract select conversation session logic into func for reusability --- src/interface/emacs/khoj.el | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/interface/emacs/khoj.el b/src/interface/emacs/khoj.el index 7a68707a..587cce56 100644 --- a/src/interface/emacs/khoj.el +++ b/src/interface/emacs/khoj.el @@ -858,17 +858,22 @@ CBARGS are optional additional arguments to pass to CALLBACK." "GET" (when session-id `(("conversation_id" ,session-id))))) -(defun khoj--open-conversation-session () - "Menu to select Khoj conversation session to open." - (let* ((sessions (khoj--get-chat-sessions)) +(defun khoj--select-conversation-session (&optional completion-action) + "Select Khoj conversation session to perform COMPLETION-ACTION on." + (let* ((completion-text (format "%s Conversation:" (or completion-action "Open"))) + (sessions (khoj--get-chat-sessions)) (session-alist (-map (lambda (session) (cons (if (not (equal :null (cdr (assoc 'slug session)))) (cdr (assoc 'slug session)) (format "New Conversation (%s)" (cdr (assoc 'conversation_id session)))) (cdr (assoc 'conversation_id session)))) sessions)) - (selected-session-slug (completing-read "Open Conversation: " session-alist nil t)) - (selected-session-id (cdr (assoc selected-session-slug session-alist)))) + (selected-session-slug (completing-read completion-text session-alist nil t))) + (cdr (assoc selected-session-slug session-alist)))) + +(defun khoj--open-conversation-session () + "Menu to select Khoj conversation session to open." + (let ((selected-session-id (khoj--select-conversation-session "Open"))) (khoj--load-chat-session khoj--chat-buffer-name selected-session-id) (khoj--open-side-pane khoj--chat-buffer-name)))