- Added support for
Verb-Map-Response
heading property. This allows for calling functions automatically with the HTTP response data, when it is received. - Added the
verb-util-form-url-encode
helper function for use withapplication/x-www-form-urlencoded
. - Fixed error occuring when maxium number of redirections set by
url-max-redirections
was reached. - Added support for
Verb-Max-Redirections
heading property. - The
verb-headers-get
function now accepts an instance ofverb-response
as first argument.
Breaking changes:
- Updated behaviour for
verb-send-request-on-point-*
functions when dealing with one or more Babel source blocks under a heading. Now, the actual source block on point will be used to build the request, instead of simply the first one. See issue #53. - Defining a URL origin (scheme + host + port) in a request specification will now make Verb ignore all parent headings when computing what request to send. In other words, defining a new URL origin effectively creates a new tree of request specifications.
- Removed support for the
url-queue
backend. - Removed all Emacs 25-specific code.
- Escape sequences ('\') contained in strings resulting from evaluating code tags will not be interepreted, i.e. all contents will be taken as literal.
- Removed
verb-view-log
alias. - Renamed
verb-show-log
toverb-util-show-log
. - All
verb-log-*
variables containing faces are no longer part of the package's public API.
New features / improvements:
- Added support for
Verb-Proxy
heading property. - Improved
*Verb Log*
buffer formatting. - Headers can now contain code tags that expand to multiple lines.
- URLs can now span multiple lines, place '\' at the end of the URL line to continue it in the next one. Leading whitespace in the additional lines will be skipped.
- Added new function
verb-body-lf-to-crlf
designed for use with requests sending multipart data. - Added new
Verb-Prelude
heading property, which can be used to specify Emacs Lisp or JSON contents to load variables from, before performing requests. Contents can come optionally from files, e.g..el
or.json
. - Added
verb-shell
,verb-url
andverb-unix-epoch
utility functions. - Allow using Org hyperlinks in URLs, for example:
get [[http://example.com][my example]]
.
- Fixed LF being used instead of CRLF in multipart boundaries.
- When sending a request, include the HTTP method and path in the message displayed on the minibuffer.
- The
verb-json-get
function now accepts negative integer arguments for accessing list elements. - Changed default binding of
verb-send-request-on-point-no-window
to C-c C-r C-. - Allow using single- or multi-line lambda expressions for
Verb-Map-Request
. - The
verb-auto-kill-response-buffers
customizable variable can now be set to an integer. This will cause all response buffers to be killed when a request is sent, except the N most recent ones. - Calling
verb-set-var
interactively with a prefix argument (C-u) will copy the variable value to the kill ring. - The current value of a Verb variable will be shown in the minibuffer when the point is moved over a code tag containing only
(verb-var xyz)
. verb-set-var
now has its own input history.- Dropped support for Emacs 25. Emacs 26.3 is now the minimum supported version. Verb may still work partially or completely on Emacs 25, but this may change without prior warning.
- Added default binding for
verb-show-vars
: C-c C-r C-x. - Added new export format
websocat
. - Added new function
verb-export-request-on-point-websocat
. - Removed default keybindings for all
verb-export-request-on-point-*
functions, and made export function querying faster inverb-export-request-on-point
. - Added additional advice to url.el to prevent it from dropping the response body when the
Content-Encoding
is set togzip
but the contents themselves are not actually compressed. - Added support for using
org-babel-expand-src-block
onverb
Babel source blocks.
- Fixed font locking on indented Babel source blocks.
- Added
verb-part
andverb-boundary
functions, to facilitate building requests usingmultipart/form-data
.
- Fixed error when receiving JSON responses that include
"t"
as a key. - Allow underscores (
_
) in HTTP header names. - Fixed C-u C-c C-r C-r and C-u C-c C-r C-s not displaying the response buffer when a response is received.
- Fixed Verb not reading parent headings when buffer has been narrowed (e.g. with
org-narrow-to-subtree
). - When using Babel
verb
source blocks, arguments specified via the:var
keyword can now be read usingverb-var
. - Added new export function
verb-export-request-on-point-eww
, which uses EWW to displayGET
requests. - Added new function
verb-re-send-request-eww
(see above).
- Heading properties (e.g.
Verb-Store
,Verb-Map-Request
) can now be inherited from parent headings by settingorg-use-property-inheritance
tot
.
- Added the
verb-default-content-type-handler
customizable variable. - Verb will now display response buffer immediately after the request is sent to avoid window/buffer configuration being changed after the response is received, which can happen after an indeterminate amount of time. Note that this only applies to commands that display the response buffer. This change makes the behaviour of Verb more predictable.
- Made the minibuffer response status message more descriptive.
- Added the
verb-show-vars
command. It allows users to see a listing of all currently defined variables. - Added the
verb-unset-vars
command. It allows users to unset all currently defined variables. This implies that if the DEFAULT argument was specified forverb-var
, that value will be used the next time the variable's value is retrieved. - Added the
verb-show-request
command. It allows users to quickly see the corresponding request that was sent for an already received HTTP response. - Renamed
verb-view-log
toverb-show-log
. - Added
verb-version
constant.
- If a (non-Verb) Babel source block is found inside a request body, its corresponding
#+begin_src
and#+end_src
delimiters are erased before sending the request. - Enabled code completion for code tags by default.
- Added support for the
Verb-Map-Request
heading property. This allows specifying a function per request, that can modify the request before it's sent. - Properly clean up font locking and completion at point functions when
verb-mode
is disabled. - Added
verb-send-request-on-point-no-window
toverb-mode
mouse menu.
- Added the
verb-json-use-mode
customizable variable. It allows users to change what mode is enabled on JSON responses. - Renamed
verb--handler-json
toverb-handler-json
. - Added code completion for code tags via
completion-at-point-functions
.
- Added support for Emacs 25.
- Removed human-readable export format as it was too similar to Verb format.
- Search for
:verb:
tag now respects theorg-use-tag-inheritance
variable.
- Fixed error signaled when receiving a response with an unknown content type.
- Use standard
switch-to-buffer
/display-buffer
functions to show side buffers and pop-up buffers. - Added
verb-send-request-on-point-no-window
command. By default, it is bound to C-c C-r C-m. - Fixed error signaled when specifying an
Accept
header and using a non-ascii body at the same time.
- All the
verb-send-request-on-point-*
commands now accept a prefix argument (C-u). When it is specified, the user can modify the request that was extracted from the headings hierarchy before it is sent, in a temporary buffer. - The
verb-set-var
command can now set variable values for variables that haven't been used before. - Changed type of
verb-content-type-handlers
elements (to lists).
- Fixed code tags not being fontified when having more than one of them on a single line.
- Log a warning when sending a request with a body present on GET, HEAD, DELETE, etc.
- Use
file-size-human-readable
to format response body sizes in header lines. - Fixed error on responses with no content type.
- Bound
verb-export-request-on-point-verb
toC-b
in the Verb command map. - Bound
verb-export-request-on-point-human
toC-n
in the Verb command map. - Variables created with
verb-var
are now buffer-local, and are not defined as global values. - Code tags are now evaluated with the current
.org
buffer as the current buffer. - Added
verb-headers-get
function. - Regular expressions can now be used as keys in
verb-content-type-handlers
, to easily assign one handler to one or more content types.
- Removed
verb-max-redirections
variable, as it wasn't working as intended. Useurl-max-redirections
instead. - Added
default
argument toverb-var
. - Removed automatic addition of
charset=
value inContent-Type
request headers. - Added optional
coding-system
argument toverb-read-file
.
- Added
verb-trim-body-end
variable. - Extended
:op send
so that it now accepts an optional, additionalget-headers
orget-body
argument. - Added "Customize Verb" button to the
verb-mode
mouse menu. - Removed
verb-using-proxy
variable, as it wasn't working as intended. - Combined
verb-binary-content-type-handlers
andverb-text-content-type-handlers
variables into a unified one,verb-content-type-handlers
.
- Heading properties starting with
Verb-
will now be added to request and response objects automatically as metadata. Metadata is not included in outgoing HTTP requests. - Added mechanism for automatically storing responses by key.
- Added the
verb-stored-response
function. - Added the
verb-json-get
function.
- Do not automatically add
Accept-Charset
header to requests anymore. - Fixed
Accept
header being sent duplicated if included in a request specification. - Log a warning to
*Verb Log*
buffer when headers might get duplicated by url.el. - Overriding HTTP headers now ignores case (e.g. it is now possible to override
content-type
usingContent-Type
). - Added customizable option
verb-base-headers
.
- Renamed
verb-mode-prefix-map
toverb-command-map
(existinginit.el
configs must be updated). - Signal an error when using
verb-set-var
if no variables have been previously set withverb-var
. - Fixed
verb-re-send-request
not showing response buffer. - Added mouse menus for
verb-mode
andverb-response-body-mode
.
- Verb can now be used from Babel source blocks.
- Added customizable option
verb-babel-timeout
. - Added new major mode:
ob-verb-response-mode
. - Verb now requires at least one heading to be defined for reading request specifications.
- Verb is now based on Org mode instead of Outline mode.
- Verb is now a minor mode (to be enabled with Org) instead of a major mode.
- Because Verb now works on Org mode buffers, the preferred file extension is
.org
(the old.verb
extension is no longer used). - Added package autoloads for most user-facing commands (e.g.
verb-send-request-on-point
). - Verb now only processes headings which have been tagged as
verb
. All other headings are ignored. - Fixed small detail in HTTP method parsing - leaving a space between the method and the URL was optional before but now it's required.
- Fixed error when receiving an empty body marked as content type JSON.
- HTTP headers in request specifications now accept empty values.
- Fixed error when receiving HTTP headers with empty values.
- Added new logging system, logs will be shown in the
*Verb Log*
buffer. - Added a
verb-enable-log
customizable option.
- Fixed Lisp code tags being evaluated in comments.
- Rebound
verb-send-request-on-point-other-window
to C-c C-r C-s in Verb mode. - Added new command
verb-send-request-on-point-other-window-stay
, bound to C-c C-r C-r in Verb mode. - Added new command
verb-kill-all-response-buffers
, bound to C-c C-r C-k in Verb mode. - Added new command
verb-re-send-request
, bound to C-c C-r C-f in Verb response body mode. - Removed
verb-headers-to-string
function. - A blank line must now be present between request headers and body.
- Added user error messages for invalid HTTP headers.
- Allow using code tags in HTTP header names.
- Request headers can now be commented out using
#
. - Surrounding whitespace is now automatically removed from header names and values.
- Changed
curl
export format slightly:- URL is now the first argument.
- Arguments are now separated by (escaped) newlines.
- Added
verb-export-request-on-point-curl
,verb-export-request-on-point-verb
andverb-export-request-on-point-human
commands. - Bound C-c C-r C-u to
verb-export-request-on-point-curl
in Verb mode. - Added
verb-set-var
command, bound to C-c C-r C-v in Verb mode.
- Request specifications can now be exported to
curl
.
- Made Lisp code tags more useful: the HTTP method for a request spec can now be determined by the result of a code tag.
- Renamed customizable variable
verb-show-headers-buffer
toverb-auto-show-headers-buffer
. - Added
verb-last
variable. - Added
verb-headers-to-string
function. - Added
verb-post-response-hook
hook.
- Initial release.