35 lines
897 B
Lua
35 lines
897 B
Lua
local codes = require 'http-codes.codes'
|
|
local cached_items = nil
|
|
|
|
local function codes_to_snack_items(codes)
|
|
if cached_items then return cached_items end
|
|
|
|
local items = {}
|
|
|
|
local idx = 1
|
|
for status, _ in pairs(codes) do
|
|
table.insert(items, { idx = idx, text = status })
|
|
idx = idx + 1
|
|
end
|
|
cached_items = items
|
|
return items
|
|
end
|
|
|
|
return {
|
|
pick = function(open_url)
|
|
require('snacks.picker').pick(nil, {
|
|
title = 'HTTP Codes',
|
|
items = codes_to_snack_items(codes),
|
|
format = 'text',
|
|
layout = {
|
|
preset = 'select',
|
|
hidden = { 'preview' },
|
|
},
|
|
confirm = function(picker, item)
|
|
local link = codes[item.text]
|
|
picker:close()
|
|
vim.fn.jobstart(open_url:format(link))
|
|
end,
|
|
})
|
|
end,
|
|
}
|