Skip to content

Commit 16ba718

Browse files
feat: get rid of _G usage
1 parent 51d115e commit 16ba718

File tree

4 files changed

+22
-23
lines changed

4 files changed

+22
-23
lines changed

lua/rest-nvim/request.lua

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ local logger = require("rest-nvim.logger")
88
local config = require("rest-nvim.config")
99
local ui = require("rest-nvim.ui.result")
1010
local nio = require("nio")
11+
local response = require("rest-nvim.response")
1112

1213
---@class Request
1314
---@field context Context
@@ -30,7 +31,7 @@ local function run_request(req)
3031
rest_nvim_last_request = req
3132

3233
-- remove previous result
33-
_G._rest_nvim_result = nil
34+
response.current = nil
3435
-- clear the ui
3536
ui.update()
3637

@@ -46,19 +47,17 @@ local function run_request(req)
4647
-- TODO: should return here
4748
return
4849
end
50+
---@cast res rest.Response
4951
logger.info("request success")
50-
-- wrap with schedule to set global variable outside of lua callback loop
51-
vim.schedule(function ()
52-
_G._rest_nvim_result = res
52+
response.current = res
5353

54-
-- run request handler scripts
55-
vim.iter(req.handlers):each(function (f) f() end)
54+
-- run request handler scripts
55+
vim.iter(req.handlers):each(function (f) f() end)
56+
logger.info("handler done")
5657

57-
logger.info("handler done")
58-
59-
-- update result UI
60-
ui.update()
61-
end)
58+
-- update result UI
59+
-- NOTE: wrap with schedule to set vim variable outside of lua callback loop
60+
vim.schedule(ui.update)
6261
end)
6362
-- FIXME: use future instead of returning true here
6463
return true

lua/rest-nvim/response.lua

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ local logger = require("rest-nvim.logger")
88
---@field body string?
99
---@field headers table<string,string>
1010

11+
---@type rest.Response?
12+
response.current = nil
13+
1114
---@class rest.Response.status
1215
---@field code number
1316
---@field version string

lua/rest-nvim/ui/result.lua

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ local panes = {
2424
{
2525
name = "Response",
2626
render = function(self)
27-
local result = _G._rest_nvim_result
27+
local result = response.current
2828
if not result then
2929
vim.bo[self.bufnr].undolevels = -1
3030
set_lines(self.bufnr, { "Loading..." })
@@ -46,7 +46,7 @@ local panes = {
4646
{
4747
name = "Statistics",
4848
render = function(self)
49-
local result = _G._rest_nvim_result
49+
local result = response.current
5050
if not result then
5151
set_lines(self.bufnr, { "Loading..." })
5252
return
@@ -71,7 +71,7 @@ if config.result.window.cookies then
7171
table.insert(panes, 2, {
7272
name = "Cookies",
7373
render = function(self)
74-
local result = _G._rest_nvim_result
74+
local result = response.current
7575
if not result then
7676
set_lines(self.bufnr, { "Loading..." })
7777
return
@@ -93,7 +93,7 @@ if config.result.window.headers then
9393
table.insert(panes, 2, {
9494
name = "Headers",
9595
render = function(self)
96-
local result = _G._rest_nvim_result
96+
local result = response.current
9797
if not result then
9898
set_lines(self.bufnr, { "Loading..." })
9999
return
@@ -112,10 +112,10 @@ end
112112

113113
local winbar = "%#Normal# %{%v:lua.require('rest-nvim.ui.panes').winbar()%}"
114114
winbar = winbar .. "%=%<"
115-
winbar = winbar .. "%{%v:lua._G._stat_winbar()%}"
115+
winbar = winbar .. "%{%v:lua.require('rest-nvim.ui.result').stat_winbar()%}"
116116
winbar = winbar .. " %#RestText#|%#Normal# "
117117
winbar = winbar .. "%#RestText#Press %#Keyword#?%#RestText# for help%#Normal# "
118-
function _G._stat_winbar()
118+
function M.stat_winbar()
119119
local content = ""
120120
local stats = vim.tbl_get(_G, "_rest_nvim_result", "statistics")
121121
if not stats then
@@ -134,18 +134,18 @@ function _G._stat_winbar()
134134
end
135135
return content
136136
end
137-
local result_help = require("rest-nvim.ui.help")
138137

139138
---@type rest.ui.panes.PaneGroup
140139
local group = paneui.create_pane_group("rest_nvim_result", panes, {
141140
on_init = function(self)
141+
local help = require("rest-nvim.ui.help")
142142
vim.keymap.set("n", config.result.keybinds.prev, function()
143143
self.group:cycle(-1)
144144
end, { buffer = self.bufnr })
145145
vim.keymap.set("n", config.result.keybinds.next, function()
146146
self.group:cycle(1)
147147
end, { buffer = self.bufnr })
148-
vim.keymap.set("n", "?", result_help.open, { buffer = self.bufnr })
148+
vim.keymap.set("n", "?", help.open, { buffer = self.bufnr })
149149
vim.bo[self.bufnr].filetype = "rest_nvim_result"
150150
utils.nvim_lazy_set_wo(self.bufnr, "winbar", winbar)
151151
end,

spec/minimum_init.lua

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,6 @@ if not vim.treesitter.language.get_lang("http") then
1111
vim.treesitter.language.register("http", "http")
1212
end
1313
vim.opt.runtimepath:append(rest_nvim_dir)
14-
_G._rest_nvim = {
14+
vim.g.rest_nvim = {
1515
_log_level = vim.log.levels.INFO
1616
}
17-
require("rest-nvim").setup({
18-
_log_level = vim.log.levels.INFO
19-
})

0 commit comments

Comments
 (0)