branch: elpa/graphql-mode
commit 7eec227135e97968c5edfbc472602259de1e1642
Author: Aleksandar Dimitrov <[email protected]>
Commit: Aleksandar Dimitrov <[email protected]>
Add header edit buffer UI & stubs
---
graphql-mode.el | 37 +++++++++++++++++++++++++++++++++++++
1 file changed, 37 insertions(+)
diff --git a/graphql-mode.el b/graphql-mode.el
index 68f0364be2..211ee37255 100644
--- a/graphql-mode.el
+++ b/graphql-mode.el
@@ -153,6 +153,43 @@ Please install it and try again."))
(format "%s?operationName=%s"
url operation)))))))
+(defun graphql-edit-headers ()
+ "Edit graphql request headers interactively in a dedicated buffer.
+
+Open a buffer to edit `graphql-extra-headers'. The contents of this
+buffer take precedence over the setting in `graphql-extra-headers'
+when sending a request."
+ (interactive)
+ (let* ((extra-headers-buffer
+ (concat "*Graphql Headers for " (buffer-file-name
(buffer-base-buffer)) "*")))
+ (pop-to-buffer extra-headers-buffer)
+ (graphql-edit-headers-mode)
+ (when (fboundp 'json-mode)
+ (json-mode))))
+
+(defun graphql-edit-headers-save ()
+ "TODO."
+ (interactive)
+ (message "TODO"))
+
+(defun graphql-edit-headers-abort ()
+ "TODO."
+ (interactive)
+ (message "TODO"))
+
+(define-minor-mode graphql-edit-headers-mode
+ "Minor mode for editing graphql extra headers.
+\\<graphql-mode-map>
+This minor mode is turned on when you edit GraphQL headers
+interactively with `\\[graphql-edit-headers]'."
+ :lighter " GQL Hdr"
+ :keymap (let ((map (make-sparse-keymap)))
+ (define-key map (kbd "C-c C-c") 'graphql-edit-headers-save)
+ (define-key map (kbd "C-c C-k") 'graphql-edit-headers-abort)
+ map)
+ (setq header-line-format (substitute-command-keys "Edit GraphQL query
headers. Save with \
+`\\[graphql-edit-headers-save]' or abort with
`\\[graphql-edit-headers-abort]'")))
+
(defun graphql-beginning-of-query ()
"Move the point to the beginning of the current query."
(interactive)