[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/ellama f436d96206 47/53: Make changes by ellama atomic
From: |
ELPA Syncer |
Subject: |
[elpa] externals/ellama f436d96206 47/53: Make changes by ellama atomic |
Date: |
Sun, 17 Dec 2023 18:58:00 -0500 (EST) |
branch: externals/ellama
commit f436d962060e59305ef78b02ed3b1aa70ff4ae74
Author: Sergey Kostyaev <kostyaev.sergey2@wb.ru>
Commit: Sergey Kostyaev <kostyaev.sergey2@wb.ru>
Make changes by ellama atomic
---
ellama.el | 32 +++++++++++++++++++++++++++-----
1 file changed, 27 insertions(+), 5 deletions(-)
diff --git a/ellama.el b/ellama.el
index 40b3f9470c..978bc182af 100644
--- a/ellama.el
+++ b/ellama.el
@@ -90,6 +90,8 @@
(defvar-local ellama--chat-prompt nil)
+(defvar-local ellama--change-group nil)
+
(defconst ellama--code-prefix
(rx (minimal-match
(zero-or-more anything) (literal "```") (zero-or-more anything)
line-end)))
@@ -110,7 +112,8 @@ in. Default value is (current-buffer).
(point (or (plist-get args :point)
(with-current-buffer buffer (point)))))
(with-current-buffer buffer
- (save-excursion
+ (unwind-protect
+ (save-excursion
(let* ((start (make-marker))
(end (make-marker))
(insert-text
@@ -121,6 +124,8 @@ in. Default value is (current-buffer).
(goto-char start)
(delete-region start end)
(insert text))))))
+ (setq ellama--change-group (prepare-change-group))
+ (activate-change-group ellama--change-group)
(set-marker start point)
(set-marker end point)
(set-marker-insertion-type start nil)
@@ -132,14 +137,19 @@ in. Default value is (current-buffer).
(lambda (text)
(funcall insert-text text)
(with-current-buffer buffer
+ (undo-amalgamate-change-group
ellama--change-group)
+ (accept-change-group ellama--change-group)
(spinner-stop)))
- (lambda (_ msg) (error "Error calling the LLM:
%s" msg))))))))
+ (lambda (_ msg)
+ (error "Error calling the LLM: %s" msg)
+ (cancel-change-group
ellama--change-group)))))))))
(defun ellama-stream-filter (prompt prefix suffix buffer point)
"Query ellama for PROMPT with filtering.
In BUFFER at POINT will be inserted result between PREFIX and SUFFIX."
(with-current-buffer buffer
- (save-excursion
+ (unwind-protect
+ (save-excursion
(let* ((start (make-marker))
(end (make-marker))
(insert-text (lambda (text)
@@ -152,6 +162,8 @@ In BUFFER at POINT will be inserted result between PREFIX
and SUFFIX."
(insert (string-trim-right
(string-trim-left text prefix)
suffix)))))))
+ (setq ellama--change-group (prepare-change-group))
+ (activate-change-group ellama--change-group)
(set-marker start point)
(set-marker end point)
(set-marker-insertion-type start nil)
@@ -163,8 +175,12 @@ In BUFFER at POINT will be inserted result between PREFIX
and SUFFIX."
(lambda (text)
(funcall insert-text text)
(with-current-buffer buffer
+ (undo-amalgamate-change-group
ellama--change-group)
+ (accept-change-group ellama--change-group)
(spinner-stop)))
- (lambda (_ msg) (error "Error calling the LLM: %s"
msg)))))))
+ (lambda (_ msg)
+ (cancel-change-group ellama--change-group)
+ (error "Error calling the LLM: %s" msg))))))))
;;;###autoload
(defun ellama-chat (prompt)
@@ -195,6 +211,8 @@ In BUFFER at POINT will be inserted result between PREFIX
and SUFFIX."
(goto-char start)
(delete-region start end)
(insert text))))))
+ (setq ellama--change-group (prepare-change-group))
+ (activate-change-group ellama--change-group)
(set-marker start point)
(set-marker end point)
(set-marker-insertion-type start nil)
@@ -209,8 +227,12 @@ In BUFFER at POINT will be inserted result between PREFIX
and SUFFIX."
(save-excursion
(goto-char (point-max))
(insert "\n\n"))
+ (undo-amalgamate-change-group
ellama--change-group)
+ (accept-change-group ellama--change-group)
(spinner-stop)))
- (lambda (_ msg) (error "Error calling the LLM: %s"
msg)))))))
+ (lambda (_ msg)
+ (cancel-change-group ellama--change-group)
+ (error "Error calling the LLM: %s" msg)))))))
;;;###autoload
(defalias 'ellama-ask 'ellama-chat)
- [elpa] externals/ellama b9fe2ebdaa 06/53: add ellama-summarize-webpage function, (continued)
- [elpa] externals/ellama b9fe2ebdaa 06/53: add ellama-summarize-webpage function, ELPA Syncer, 2023/12/17
- [elpa] externals/ellama 8bd196068a 08/53: add functions to work with code, ELPA Syncer, 2023/12/17
- [elpa] externals/ellama a1112d64a0 09/53: improve ask about template, ELPA Syncer, 2023/12/17
- [elpa] externals/ellama 00b8ddd155 19/53: fix for use libxml-parse-html-region, ELPA Syncer, 2023/12/17
- [elpa] externals/ellama bfac7db4ef 27/53: Create melpa.yml, ELPA Syncer, 2023/12/17
- [elpa] externals/ellama 963843016b 14/53: add ellama-ask-about gif and fix typos, ELPA Syncer, 2023/12/17
- [elpa] externals/ellama 660f08c126 23/53: add badges and installation section to readme, ELPA Syncer, 2023/12/17
- [elpa] externals/ellama 3eac28a1ea 31/53: Merge pull request #4 from stardiviner/main, ELPA Syncer, 2023/12/17
- [elpa] externals/ellama 327c488e9b 33/53: Format and remove unnecessary code., ELPA Syncer, 2023/12/17
- [elpa] externals/ellama 1c4aa12bf9 39/53: make spinner type customizable, ELPA Syncer, 2023/12/17
- [elpa] externals/ellama f436d96206 47/53: Make changes by ellama atomic,
ELPA Syncer <=
- [elpa] externals/ellama 88e8f3455f 16/53: remove ellama-instant from command list, ELPA Syncer, 2023/12/17
- [elpa] externals/ellama 7a84c5e737 18/53: add gif for enhance grammar and spelling, ELPA Syncer, 2023/12/17
- [elpa] externals/ellama f22a21dd56 30/53: Add spinner support as mode-line progress indicator, ELPA Syncer, 2023/12/17
- [elpa] externals/ellama f9e0de5af6 34/53: Merge pull request #3 from jiahut/main, ELPA Syncer, 2023/12/17
- [elpa] externals/ellama 2e5219afbe 43/53: Merge pull request #1 from s-kostyaev/switch-to-llm-library, ELPA Syncer, 2023/12/17
- [elpa] externals/ellama a0acd24abb 51/53: Add ellama complete command., ELPA Syncer, 2023/12/17
- [elpa] externals/ellama 034140969d 12/53: reformat readme, ELPA Syncer, 2023/12/17
- [elpa] externals/ellama 68bbca9cb3 17/53: add more gifs to readme, ELPA Syncer, 2023/12/17
- [elpa] externals/ellama ff604fc2b9 10/53: change default language to english, ELPA Syncer, 2023/12/17
- [elpa] externals/ellama 8717dcb145 11/53: add readme, ELPA Syncer, 2023/12/17