|
1 | | -local request = require("rest-nvim.request") |
| 1 | +local request = require("rest-nvim.request.classic") |
2 | 2 | local config = require("rest-nvim.config") |
3 | 3 | local curl = require("rest-nvim.curl") |
4 | 4 | local log = require("plenary.log").new({ plugin = "rest.nvim" }) |
5 | 5 |
|
6 | 6 | local rest = {} |
7 | 7 | local Opts = {} |
8 | | -local LastOpts = {} |
| 8 | +local defaultRequestOpts = { |
| 9 | + verbose = false, |
| 10 | + highlight = false, |
| 11 | + engine = 'classic' |
| 12 | + } |
9 | 13 |
|
| 14 | +local LastOpts = {} |
10 | 15 | rest.setup = function(user_configs) |
11 | 16 | config.set(user_configs or {}) |
| 17 | + |
12 | 18 | end |
13 | 19 |
|
14 | 20 | -- run will retrieve the required request information from the current buffer |
|
31 | 37 | -- @param string filename to load |
32 | 38 | -- @param opts table |
33 | 39 | -- 1. keep_going boolean keep running even when last request failed |
| 40 | +-- 2. verbose boolean |
34 | 41 | rest.run_file = function(filename, opts) |
35 | 42 | log.info("Running file :" .. filename) |
36 | | - local new_buf = vim.api.nvim_create_buf(false, false) |
| 43 | + opts = vim.tbl_deep_extend( |
| 44 | + "force", -- use value from rightmost map |
| 45 | + defaultRequestOpts, |
| 46 | + opts or {} |
| 47 | + ) |
| 48 | + backend = require("rest-nvim.request."..opts.engine) |
| 49 | + |
| 50 | + -- 0 on error or buffer handle |
| 51 | + local new_buf = vim.api.nvim_create_buf(true, false) |
37 | 52 |
|
38 | 53 | vim.api.nvim_win_set_buf(0, new_buf) |
39 | 54 | vim.cmd.edit(filename) |
40 | | - local last_line = vim.fn.line("$") |
41 | | - |
42 | | - -- reset cursor position |
43 | | - vim.fn.cursor(1, 1) |
44 | | - local curpos = vim.fn.getcurpos() |
45 | | - while curpos[2] <= last_line do |
46 | | - local ok, req = request.buf_get_request(new_buf, curpos) |
47 | | - if ok then |
48 | | - -- request.print_request(req) |
49 | | - curpos[2] = req.end_line + 1 |
50 | | - rest.run_request(req, opts) |
51 | | - else |
52 | | - return false, req |
53 | | - end |
| 55 | + |
| 56 | + local requests = backend.buf_list_requests(new_buf) |
| 57 | + for _, req in pairs(requests) do |
| 58 | + vim.pretty_print("Request:") |
| 59 | + vim.pretty_print(req) |
| 60 | + rest.run_request(req, opts) |
54 | 61 | end |
| 62 | + |
55 | 63 | return true |
56 | 64 | end |
57 | 65 |
|
|
62 | 70 | -- @param opts table |
63 | 71 | -- 1. keep_going boolean keep running even when last request failed |
64 | 72 | rest.run_request = function(req, opts) |
| 73 | + -- TODO rename result to req |
65 | 74 | local result = req |
66 | 75 | opts = vim.tbl_deep_extend( |
67 | 76 | "force", -- use value from rightmost map |
68 | | - { verbose = false, |
69 | | - highlight = false |
70 | | - }, -- defaults |
| 77 | + defaultRequestOpts, |
71 | 78 | opts or {} |
72 | 79 | ) |
73 | 80 |
|
|
0 commit comments