I browse, I request.
;;; wal-web.el --- The Internet. -*- lexical-binding: t -*-
;;; Commentary:
;;
;; Provide web packages.
;;; Code:
(eval-when-compile
(require 'wal-useful nil t)
(require 'wal-package nil t)
(require 'wal-key-bindings nil t)
(require 'wal-bridge nil t))
Make requests from Org files. When deleting response buffers, their windows are kept. Headings that describe requests are marked using a verb
tag, so this is added to the org-tag-alist
. Adds a major
transient
that is context-aware (looking at request or looking at response) and bound in ambassador.
(defun wal-pick-windows-being-kept (&rest _args)
"Provide t to `verb-kill-*' functions to keep window."
(list t))
(use-package verb
:after org
:init
;; Make the tag available.
(add-to-list 'org-tag-alist '("verb" . ?v))
;; Make sure windows are being kept.
(wal-advise-many
'wal-pick-windows-being-kept :filter-args
'(verb-kill-all-response-buffers
verb-kill-response-buffer-and-window))
:config
(wal-transient-define-major verb ()
"Dispatch `verb' commands."
[["Request"
("r" "send" verb-send-request-on-point
:inapt-if-non-nil verb-response-body-mode)
("e" "export" verb-export-request-on-point
:inapt-if-non-nil verb-response-body-mode)]
["Response"
("R" "resend" verb-re-send-request
:inapt-if-nil verb-response-body-mode)
("k" "kill all" verb-kill-all-response-buffers)]
["Variables"
("v" "set" verb-set-var)
("V" "show" verb-show-vars)]])
:bind
(:map verb-response-body-mode-map
("k" . verb-kill-buffer-and-window)
("q" . quit-window))
:general
(ambassador :keymaps '(verb-mode-map verb-response-body-mode-map)
"v" '(verb-major :wk "verb"))
:delight
(verb-mode " vrb")
(verb-response-body-mode " vRb"))
(provide 'wal-web)
;;; wal-web.el ends here