From b3ac2dd7300b6273fadbfeace53c7cfe5c01ddcb Mon Sep 17 00:00:00 2001 From: Debanjum Singh Solanky Date: Sat, 26 Feb 2022 17:33:10 -0500 Subject: [PATCH] Improve Results Rendered on Emacs from Semantic Search on Ledger - Add search query to top of buffer as Beancount comment - Remove trailing ) from response - Separate entries by empty line - Load beancount-mode in semantic search on ledger buffer --- src/interface/emacs/semantic-search.el | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/src/interface/emacs/semantic-search.el b/src/interface/emacs/semantic-search.el index 0b961262..753ff635 100644 --- a/src/interface/emacs/semantic-search.el +++ b/src/interface/emacs/semantic-search.el @@ -69,16 +69,20 @@ (lambda (args) (format "\n** \n [[%s]]" (cdr (assoc 'Entry args)))) json-response)))) -(defun semantic-search--extract-entries-as-ledger (json-response) +(defun semantic-search--extract-entries-as-ledger (json-response query) "Convert json response from API to ledger entries" ;; remove leading (, ) or SPC from extracted entries string (replace-regexp-in-string - "^[\(\) ]" "" - ;; extract entries from response as single string and convert to entries - (format "%s" - (mapcar - (lambda (args) (format "* %s" (cdr (assoc 'Entry args)))) - json-response)))) + "[\(\) ]$" "" + (replace-regexp-in-string + "^[\(\) ]" "" + ;; extract entries from response as single string and convert to entries + (format ";; %s\n\n%s\n" + query + (mapcar + (lambda (args) + (format "%s\n\n" (cdr (assoc 'Entry args)))) + json-response))))) (defun semantic-search--buffer-name-to-search-type (buffer-name) (let ((file-extension (file-name-extension buffer-name))) @@ -112,10 +116,11 @@ (erase-buffer) (insert (cond ((or (equal search-type "notes") (equal search-type "music")) (semantic-search--extract-entries-as-org json-response query)) - ((equal search-type "ledger") (semantic-search--extract-entries-as-ledger json-response)) + ((equal search-type "ledger") (semantic-search--extract-entries-as-ledger json-response query)) ((equal search-type "image") (semantic-search--extract-entries-as-images json-response query)) (t (format "%s" json-response))))) (cond ((equal search-type "notes") (org-mode)) + ((equal search-type "ledger") (beancount-mode)) ((equal search-type "music") (progn (org-mode) (org-music-mode))) ((equal search-type "image") (progn (org-mode)