[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/graphql-mode 36b1a4ed9f 070/122: Merge pull request #16 fr
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/graphql-mode 36b1a4ed9f 070/122: Merge pull request #16 from emacsjanitors/no-request |
Date: |
Sat, 29 Jan 2022 08:03:33 -0500 (EST) |
branch: elpa/graphql-mode
commit 36b1a4ed9fe78ccd1f386111644e69a5424a1a7b
Merge: 1f3bd34b18 fb84a08434
Author: David Vázquez Púa <davazp@gmail.com>
Commit: GitHub <noreply@github.com>
Merge pull request #16 from emacsjanitors/no-request
Fix a bug and some warnings. Make dependency on request optional
---
graphql-mode.el | 65 ++++++++++++++++++++++++++++++++-------------------------
1 file changed, 36 insertions(+), 29 deletions(-)
diff --git a/graphql-mode.el b/graphql-mode.el
index 5b7d65a635..38b72275b5 100644
--- a/graphql-mode.el
+++ b/graphql-mode.el
@@ -4,7 +4,7 @@
;; Author: David Vazquez Pua <davazp@gmail.com>
;; Keywords: languages
-;; Package-Requires: ((emacs "24.3") (request "20170131.1747"))
+;; Package-Requires: ((emacs "24.3"))
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
@@ -40,7 +40,6 @@
(require 'json)
(require 'url)
(require 'cl-lib)
-(require 'request)
;;; User Customizations:
@@ -86,10 +85,11 @@ The query is sent as a HTTP POST request to the URL at
mutation or subscription). OPERATION is a name for the
operation. VARIABLES is the JSON string that specifies the values
of the variables used in the query."
- (let* ((body (graphql-encode-json query operation variables))
- (url graphql-url))
- (with-temp-buffer
- (graphql-post-request url query operation variables))))
+ (with-temp-buffer
+ (graphql-post-request graphql-url query operation variables)))
+
+(declare-function request "request")
+(declare-function request-response-data "request")
(defun graphql-post-request (url query &optional operation variables)
"Make post request to graphql server with url and body.
@@ -98,17 +98,22 @@ URL hostname, path, search parameters, such as
operationName and variables
QUERY query definition(s) of query, mutation, and/or subscription
OPERATION name of the operation if multiple definition is given in QUERY
VARIABLES list of variables for query operation"
+ (or (require 'request nil t)
+ (error "graphql-post-request needs the request package. \
+Please install it and try again."))
(let* ((body (graphql-encode-json query operation variables))
- (response (request url
- :type "POST"
- :data body
- :headers '(("Content-Type" . "application/json"))
- :parser 'json-read
- :sync t
- :complete (lambda (&rest _)
- (message "%s" (if (string-equal ""
operation)
- url
- (format
"%s?operationName=%s" endpoint operation)))))))
+ (response (request
+ url
+ :type "POST"
+ :data body
+ :headers '(("Content-Type" . "application/json"))
+ :parser 'json-read
+ :sync t
+ :complete (lambda (&rest _)
+ (message "%s" (if (string-equal "" operation)
+ url
+ (format "%s?operationName=%s"
+ url operation)))))))
(json-encode (request-response-data response))))
(defun graphql-beginning-of-query ()
@@ -154,7 +159,8 @@ VARIABLES list of variables for query operation"
"Return the name of the current graphql query."
(let* ((query
(save-excursion
- (replace-regexp-in-string "^[ \t\n]*" "" (or
(graphql-current-query) ""))))
+ (replace-regexp-in-string "^[ \t\n]*" ""
+ (or (graphql-current-query) ""))))
(tokens
(split-string query "[ \f\t\n\r\v]+"))
(first (nth 0 tokens)))
@@ -190,15 +196,14 @@ VARIABLES list of variables for query operation"
(with-current-buffer-window
"*GraphQL*" 'display-buffer-pop-up-window nil
(erase-buffer)
- (when (fboundp 'json-mode)
- ;; TODO: This line has been disabled temporarily as
- ;; json-mode does not support enabling the mode for buffers
- ;; without files at this point:
- ;;
- ;; https://github.com/joshwnj/json-mode/issues/55
- ;;
- ;; (json-mode)
- )
+ ;; TODO: This has been disabled temporarily as
+ ;; json-mode does not support enabling the mode for buffers
+ ;; without files at this point:
+ ;;
+ ;; https://github.com/joshwnj/json-mode/issues/55
+ ;;
+ ;; (when (fboundp 'json-mode)
+ ;; (json-mode))
(insert response)
(json-pretty-print-buffer))))
;; If the query was successful, then save the value of graphql-url
@@ -241,7 +246,8 @@ VARIABLES list of variables for query operation"
(goto-char indent-pos))))
(defvar graphql-keywords
- '("type" "input" "interface" "fragment" "query" "enum" "mutation"
"subscription"
+ '("type" "input" "interface" "fragment"
+ "query" "enum" "mutation" "subscription"
"Int" "Float" "String" "Boolean" "ID"
"true" "false" "null"))
@@ -255,7 +261,8 @@ This is the function to be used for the hook
`completion-at-point-functions'."
(defvar graphql-definition-regex
- (concat "\\(" (regexp-opt '("type" "input" "interface" "fragment" "query"
"mutation" "subscription" "enum")) "\\)"
+ (concat "\\(" (regexp-opt '("type" "input" "interface" "fragment" "query"
+ "mutation" "subscription" "enum")) "\\)"
"[[:space:]]+\\(\\_<.+?\\_>\\)")
"Keyword Regular Expressions.")
@@ -346,7 +353,7 @@ This is the function to be used for the hook
`completion-at-point-functions'."
nil
nil))
(setq imenu-generic-expression `((nil ,graphql-definition-regex 2)))
- (add-hook 'completion-at-point-functions 'graphql-completion-at-point nil
'local))
+ (add-hook 'completion-at-point-functions 'graphql-completion-at-point nil t))
;;;###autoload
(add-to-list 'auto-mode-alist '("\\.graphql\\'" . graphql-mode))
- [nongnu] elpa/graphql-mode 836373c72e 010/122: Basic support for imenu, (continued)
- [nongnu] elpa/graphql-mode 836373c72e 010/122: Basic support for imenu, ELPA Syncer, 2022/01/29
- [nongnu] elpa/graphql-mode 497529dd4d 008/122: Fontify query, ELPA Syncer, 2022/01/29
- [nongnu] elpa/graphql-mode 26a5d8a665 043/122: make graphql-current-* function, not command. also graphql-begining-of-variables, ELPA Syncer, 2022/01/29
- [nongnu] elpa/graphql-mode 6e1f5335fa 030/122: Mention json-mode in the README.md, ELPA Syncer, 2022/01/29
- [nongnu] elpa/graphql-mode 8a4a5fae69 015/122: Fontify field arguments as variable names, ELPA Syncer, 2022/01/29
- [nongnu] elpa/graphql-mode 7798aef2a8 029/122: Fix typo, ELPA Syncer, 2022/01/29
- [nongnu] elpa/graphql-mode 052491e05f 048/122: update variable encoding in post body, ask operation Name if needed, ELPA Syncer, 2022/01/29
- [nongnu] elpa/graphql-mode 83cba48fd8 014/122: Remove unnecessary syntax, ELPA Syncer, 2022/01/29
- [nongnu] elpa/graphql-mode 6017afac92 017/122: Rename graphql.el to graphql-mode.el, ELPA Syncer, 2022/01/29
- [nongnu] elpa/graphql-mode 7482c1b100 025/122: Add basic commentary, ELPA Syncer, 2022/01/29
- [nongnu] elpa/graphql-mode 36b1a4ed9f 070/122: Merge pull request #16 from emacsjanitors/no-request,
ELPA Syncer <=
- [nongnu] elpa/graphql-mode 4b0134a19a 050/122: forget docstring, ELPA Syncer, 2022/01/29
- [nongnu] elpa/graphql-mode 5f2ee4b3b3 024/122: Add melpa badge, ELPA Syncer, 2022/01/29
- [nongnu] elpa/graphql-mode 8e58196e21 023/122: Merge pull request #1 from syohex/fix-package, ELPA Syncer, 2022/01/29
- [nongnu] elpa/graphql-mode 2ee89d4e05 080/122: Fix Error during redisplay, ELPA Syncer, 2022/01/29
- [nongnu] elpa/graphql-mode 0b4152d485 051/122: Fix tests to use variables, ELPA Syncer, 2022/01/29
- [nongnu] elpa/graphql-mode 74ee772a62 087/122: Merge pull request #26 from Malabarba/master, ELPA Syncer, 2022/01/29
- [nongnu] elpa/graphql-mode ebd6502c09 085/122: Merge pull request #25 from Malabarba/operation-bug, ELPA Syncer, 2022/01/29
- [nongnu] elpa/graphql-mode f1be68cea4 108/122: Add key binding for editing headers, ELPA Syncer, 2022/01/29
- [nongnu] elpa/graphql-mode 3cbaa5ef35 041/122: Add multiple queries definition and variables support, ELPA Syncer, 2022/01/29
- [nongnu] elpa/graphql-mode 4c942986fa 086/122: Also insert response headers in the buffer (with comment face), ELPA Syncer, 2022/01/29