emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/ellama 2d58238f22 07/12: don't repeatedly push to globa


From: ELPA Syncer
Subject: [elpa] externals/ellama 2d58238f22 07/12: don't repeatedly push to global list, build a local list instead
Date: Sat, 16 Mar 2024 12:58:02 -0400 (EDT)

branch: externals/ellama
commit 2d58238f226dbe3af2ca11ec854657b727dd5e79
Author: Martin R. Albrecht <martinralbrecht@googlemail.com>
Commit: Martin R. Albrecht <martinralbrecht@googlemail.com>

    don't repeatedly push to global list, build a local list instead
---
 ellama.el | 75 ++++++++++++++++++++++++++++++---------------------------------
 1 file changed, 36 insertions(+), 39 deletions(-)

diff --git a/ellama.el b/ellama.el
index f7a124bdda..223530d4ee 100644
--- a/ellama.el
+++ b/ellama.el
@@ -1034,39 +1034,36 @@ ARGS contains keys for fine control.
 
 :provider PROVIDER -- PROVIDER is an llm provider for generation."
   (interactive "sAsk ellama: ")
-  (let* ((providers (progn
-                     (push '("default model" . ellama-provider)
-                           ellama-providers)
-                     (if (and ellama-ollama-binary
-                              (file-exists-p ellama-ollama-binary))
-                         (push '("ollama model" . 
(ellama-get-ollama-local-model))
-                               ellama-providers)
-                       ellama-providers)))
-        (variants (mapcar #'car providers))
-        (provider (if current-prefix-arg
-                      (eval (alist-get
-                             (completing-read "Select model: " variants)
-                             providers nil nil #'string=))
-                    (or (plist-get args :provider)
-                        ellama-provider)))
-        (session (if (or create-session
-                         current-prefix-arg
-                         (and (not ellama--current-session)
-                              (not ellama--current-session-id)))
-                     (ellama-new-session provider prompt)
-                   (or ellama--current-session
-                       (with-current-buffer (ellama-get-session-buffer
-                                             ellama--current-session-id)
-                         ellama--current-session))))
-        (buffer (ellama-get-session-buffer
-                 (ellama-session-id session)))
-        (file-name (ellama-session-file session))
-        (translation-buffer (when ellama-chat-translation-enabled
-                              (if file-name
-                                  (progn
-                                    (find-file-noselect
-                                     (ellama--get-translation-file-name 
file-name)))
-                                (get-buffer-create (ellama-session-id 
session))))))
+  (let* ((providers (append
+                     `(("default model" . ellama-provider)
+                              ,(if (and ellama-ollama-binary (file-exists-p 
ellama-ollama-binary))
+                                       '("ollama model" . 
(ellama-get-ollama-local-model))))
+                     ellama-providers))
+            (variants (mapcar #'car providers))
+            (provider (if current-prefix-arg
+                              (eval (alist-get
+                                         (completing-read "Select model: " 
variants)
+                                         providers nil nil #'string=))
+                            (or (plist-get args :provider)
+                                    ellama-provider)))
+            (session (if (or create-session
+                                     current-prefix-arg
+                                     (and (not ellama--current-session)
+                                          (not ellama--current-session-id)))
+                             (ellama-new-session provider prompt)
+                           (or ellama--current-session
+                                   (with-current-buffer 
(ellama-get-session-buffer
+                                                                 
ellama--current-session-id)
+                                     ellama--current-session))))
+            (buffer (ellama-get-session-buffer
+                         (ellama-session-id session)))
+            (file-name (ellama-session-file session))
+            (translation-buffer (when ellama-chat-translation-enabled
+                                          (if file-name
+                                                  (progn
+                                                    (find-file-noselect
+                                                     
(ellama--get-translation-file-name file-name)))
+                                                (get-buffer-create 
(ellama-session-id session))))))
     (if ellama-chat-translation-enabled
        (ellama--translate-interaction prompt translation-buffer buffer session)
       (display-buffer buffer)
@@ -1376,12 +1373,12 @@ buffer."
 (defun ellama-provider-select ()
   "Select ellama provider."
   (interactive)
-  (let* ((providers (if (and ellama-ollama-binary
-                            (file-exists-p ellama-ollama-binary))
-                       (push '("ollama model" . 
(ellama-get-ollama-local-model))
-                             ellama-providers)
-                     ellama-providers))
-        (variants (mapcar #'car providers)))
+  (let* ((providers (append
+                     `(("default model" . ellama-provider)
+                              ,(if (and ellama-ollama-binary (file-exists-p 
ellama-ollama-binary))
+                                       '("ollama model" . 
(ellama-get-ollama-local-model))))
+                     ellama-providers))
+            (variants (mapcar #'car providers)))
     (setq ellama-provider
          (eval (alist-get
                 (completing-read "Select model: " variants)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]