mirror of
https://github.com/macocianradu/nvim-http.git
synced 2026-03-18 12:50:06 +00:00
149 lines
3.9 KiB
Plaintext
149 lines
3.9 KiB
Plaintext
*nvim-http.txt* nvim-http
|
|
|
|
==============================================================================
|
|
CONTENTS *nvim-http-contents*
|
|
|
|
1. Introduction.............................................|nvim-http-intro|
|
|
2. Setup....................................................|nvim-http-setup|
|
|
3. Commands.................................................|nvim-http-commands|
|
|
4. HTTP Runner..............................................|nvim-http-http|
|
|
|
|
==============================================================================
|
|
INTRODUCTION *nvim-http-intro*
|
|
|
|
nvim-http supports:
|
|
- Running HTTP commands from the current line under cursor
|
|
- Parsing optional YAML header/body blocks under the request line
|
|
- Showing command output in a Telescope tree window
|
|
|
|
==============================================================================
|
|
SETUP *nvim-http-setup*
|
|
|
|
Using lazy.nvim:
|
|
|
|
>lua
|
|
{
|
|
"macocianradu/nvim-http",
|
|
dependencies = {
|
|
"nvim-lua/plenary.nvim",
|
|
"nvim-telescope/telescope.nvim",
|
|
},
|
|
build = "rockspec",
|
|
config = function()
|
|
require("nvim_http").setup({
|
|
http = {
|
|
enabled = true,
|
|
execute_keymap = "<leader>hr",
|
|
clear_keymap = "<leader>hc",
|
|
timeout_ms = 10000,
|
|
highlight_group = "Comment",
|
|
command_patterns = {
|
|
"^curl%s+",
|
|
"^http%s+",
|
|
"^wget%s+",
|
|
"^%u+%s+https?://",
|
|
"^https?://",
|
|
},
|
|
},
|
|
})
|
|
end,
|
|
}
|
|
<
|
|
|
|
==============================================================================
|
|
COMMANDS *nvim-http-commands*
|
|
|
|
:NvimHttpRun
|
|
Run the HTTP command under cursor and open a Telescope window with:
|
|
- response_code
|
|
- a collapsed request block (url, headers, body)
|
|
- a collapsed headers block
|
|
- a collapsed result block (nested JSON tree when response is JSON)
|
|
|
|
:NvimHttpClear
|
|
Close and clear the HTTP result Telescope window.
|
|
|
|
==============================================================================
|
|
HTTP RUNNER *nvim-http-http*
|
|
|
|
Default mapping:
|
|
<leader>hr
|
|
|
|
Default clear mapping:
|
|
<leader>hc
|
|
|
|
Result window usage:
|
|
<CR> or <Tab> to open/close/toggle the selected node
|
|
q to close the result window
|
|
|
|
Supported line styles:
|
|
curl https://example.com
|
|
http GET https://example.com
|
|
wget https://example.com
|
|
GET https://example.com
|
|
https://example.com
|
|
|
|
Lines in markdown lists/quotes/inline code are normalized first, so these also
|
|
work:
|
|
- curl https://example.com
|
|
`GET https://example.com`
|
|
> https://example.com
|
|
|
|
YAML request blocks under request line:
|
|
POST https://jsonplaceholder.typicode.com/users
|
|
headers:
|
|
Content-Type: application/json
|
|
Authorization: Bearer token
|
|
body:
|
|
name: Jane
|
|
username: jane1
|
|
|
|
Accepted block names:
|
|
header / headers
|
|
body / request
|
|
|
|
Parsing behavior:
|
|
- scans only directly-below lines with bounded lookahead (does not scan file)
|
|
- ignores leading whitespace
|
|
- uses only first header(s) block and first body/request block
|
|
- stops when both are found
|
|
- also stops when another top-level block is found after parsing started
|
|
- request blocks are currently applied to curl-style requests
|
|
- YAML block decoding requires the lyaml Lua rock
|
|
|
|
Examples:
|
|
url
|
|
header:
|
|
X-Test: 1
|
|
body:
|
|
a: 1
|
|
-> uses both
|
|
|
|
url
|
|
header:
|
|
X-Test: 1
|
|
body:
|
|
a: 1
|
|
header2:
|
|
ignored: true
|
|
-> stops after body, ignores header2
|
|
|
|
url
|
|
header:
|
|
X-Test: 1
|
|
header2:
|
|
nope: 1
|
|
body:
|
|
ignored: true
|
|
-> stops at header2, ignores body
|
|
|
|
url
|
|
body:
|
|
a: 1
|
|
header:
|
|
X-Test: 1
|
|
-> body-first order works
|
|
|
|
==============================================================================
|
|
vim:tw=78:ts=8:ft=help:norl:
|