Skip to content

Latest commit

 

History

History
96 lines (76 loc) · 2.43 KB

wal-web.org

File metadata and controls

96 lines (76 loc) · 2.43 KB

The Internet

I browse, I request.

Header

;;; 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))

Requests

verb

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"))

Footer

(provide 'wal-web)

;;; wal-web.el ends here