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

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

[nongnu] elpa/nix-mode 75d2111891 433/500: Merge pull request #129 from


From: ELPA Syncer
Subject: [nongnu] elpa/nix-mode 75d2111891 433/500: Merge pull request #129 from nagy/nix-search-separate
Date: Sat, 29 Jan 2022 08:27:52 -0500 (EST)

branch: elpa/nix-mode
commit 75d21118917330128492f1ab5832cd36acd66cf3
Merge: 0023fc5b10 0de9c70c89
Author: Matthew Bauer <mjbauer95@gmail.com>
Commit: GitHub <noreply@github.com>

    Merge pull request #129 from nagy/nix-search-separate
    
    Split up `nix-search` into two separate functions
---
 nix-search.el | 55 +++++++++++++++++++++++++++----------------------------
 1 file changed, 27 insertions(+), 28 deletions(-)

diff --git a/nix-search.el b/nix-search.el
index 106fe55189..ccd0f03645 100644
--- a/nix-search.el
+++ b/nix-search.el
@@ -17,38 +17,37 @@
 (require 'json)
 
 ;;;###autoload
-(defun nix-search (&optional search file)
+(defun nix-search--search (search file &optional no-cache)
+  (with-temp-buffer
+    (call-process nix-executable nil (list t nil) nil
+      "search" "--json" (if no-cache "--no-cache" "") "--file" file search)
+    (goto-char (point-min))
+    (json-read)))
+
+;;;###autoload
+(defun nix-search--display (results &optional display-buffer)
+  (unless display-buffer (setq display-buffer (generate-new-buffer "*nix 
search*")))
+  (with-current-buffer display-buffer
+    (dolist (entry results)
+      (widget-insert
+        (format "attr: %s\nname: %s\nversion: %s\ndescription: %s\n\n"
+          (car entry)
+          (alist-get 'pkgName (cdr entry))
+          (alist-get 'version (cdr entry))
+          (alist-get 'description (cdr entry))))))
+  (display-buffer display-buffer))
+
+;;;###autoload
+(defun nix-search (search &optional file)
   "Run nix search.
 SEARCH a search term to use.
 FILE a Nix expression to search in."
-  (interactive)
-  (unless search (setq search ""))
-  (unless file (nix-read-file))
-
-  (let ((stdout (generate-new-buffer "nix search"))
-       result)
-    (call-process nix-executable nil (list stdout nil) nil
-                 "search" "--json" "-f" file search)
-    (with-current-buffer stdout
-      (when (eq (buffer-size) 0)
-       (error "Error: nix search %s failed to produce any output" search))
-      (goto-char (point-min))
-      (setq result (json-read)))
-    (kill-buffer stdout)
+  (interactive "snix-search> \n")
+  (setq file (or file (nix-read-file)))
+  (let ((results (nix-search--search search file)))
     (when (called-interactively-p 'any)
-      (let ((display (generate-new-buffer "*nix search*")))
-       (with-current-buffer display
-         (dolist (entry result)
-           (widget-insert
-            (format "attr: %s\nname: %s\nversion: %s\ndescription: %s\n\n"
-                     (car entry)
-                    (alist-get 'pkgName (cdr entry))
-                    (alist-get 'version (cdr entry))
-                    (alist-get 'description (cdr entry)))))
-         )
-       (display-buffer display 'display-buffer-pop-up-window)))
-    (kill-buffer stdout)
-    result))
+      (nix-search--display results))
+    results))
 
 (defun nix-search-read-attr (file)
   "Read from a list of attributes.



reply via email to

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