Skip to content

Commit c349020

Browse files
authored
Merge pull request #214 from teto/callbacks
2 parents 80283b7 + 61575ef commit c349020

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed

doc/rest-nvim.txt

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ CONTENTS *rest-nvim-contents*
2121
3. Import body from external file......|rest-nvim-usage-external-files|
2222
4. Environment Variables........|rest-nvim-usage-environment-variables|
2323
5. Dynamic Variables................|rest-nvim-usage-dynamic-variables|
24+
6. Callbacks................................|rest-nvim-usage-callbacks|
2425
5. Known issues..........................................|rest-nvim-issues|
2526
6. License..............................................|rest-nvim-license|
2627
7. Contributing....................................|rest-nvim-contributing|
@@ -220,6 +221,22 @@ You can extend or overwrite built-in dynamic variables, with the config key
220221
` },`
221222
`})`
222223

224+
===============================================================================
225+
CALLBACKS *rest-nvim-usage-callbacks*
226+
227+
rest.nvim fires different events upon requests:
228+
- a User RestStartRequest event when launching the request
229+
- a User RestStopRequest event when the requests finishes or errors out
230+
231+
vim.api.nvim_create_autocmd("User", {
232+
pattern = "RestStartRequest",
233+
once = true,
234+
callback = function(opts)
235+
print("IT STARTED")
236+
vim.pretty_print(opts)
237+
end,
238+
})
239+
223240

224241
===============================================================================
225242
KNOWN ISSUES *rest-nvim-issues*

lua/rest-nvim/init.lua

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,20 @@ rest.run_request = function(req, opts)
9595
request.highlight(result.bufnr, result.start_line, result.end_line)
9696
end
9797

98+
local request_id = vim.loop.now()
99+
local data = {
100+
requestId = request_id,
101+
request = req
102+
}
103+
104+
vim.api.nvim_exec_autocmds("User", {
105+
pattern = "RestStartRequest",
106+
modeline = false,
107+
data = data
108+
})
98109
local success_req, req_err = pcall(curl.curl_cmd, Opts)
110+
vim.api.nvim_exec_autocmds("User", { pattern = "RestStopRequest", modeline = false,
111+
data = vim.tbl_extend("keep", { status = success_req, message = req_err }, data) })
99112

100113
if not success_req then
101114
vim.api.nvim_err_writeln(

0 commit comments

Comments
 (0)