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

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

[elpa] master 7854d03 129/184: counsel.el (counsel-google): Add


From: Oleh Krehel
Subject: [elpa] master 7854d03 129/184: counsel.el (counsel-google): Add
Date: Wed, 16 Oct 2019 13:15:05 -0400 (EDT)

branch: master
commit 7854d03b98f793904b10f7f2dc87f9be6f605083
Author: Oleh Krehel <address@hidden>
Commit: Oleh Krehel <address@hidden>

    counsel.el (counsel-google): Add
    
    It relies on a sync version of `request' for now.
---
 counsel.el | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/counsel.el b/counsel.el
index 69e1794..927428c 100644
--- a/counsel.el
+++ b/counsel.el
@@ -5919,6 +5919,31 @@ Additional actions:\\<ivy-minibuffer-map>
             :action #'counsel-M-x-action
             :caller 'counsel-major))
 
+;;* `counsel-google'
+(defun counsel-google-function (input)
+  (or
+   (ivy-more-chars)
+   (mapcar #'identity
+           (aref
+            (request-response-data
+             (request
+              "http://suggestqueries.google.com/complete/search";
+              :type "GET"
+              :params (list
+                       (cons "client" "firefox")
+                       (cons "q" input))
+              :parser 'json-read
+              :sync t))
+            1))))
+
+(defun counsel-google ()
+  (interactive)
+  (ivy-read "search: " #'counsel-google-function
+            :action (lambda (x)
+                      (browse-url (concat "https://www.google.com/search?q="; 
x)))
+            :dynamic-collection t
+            :caller 'counsel-google))
+
 ;;* `counsel-mode'
 (defvar counsel-mode-map
   (let ((map (make-sparse-keymap)))



reply via email to

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