diff --git a/.github/ISSUE_TEMPLATE/bug_report.yaml b/.github/ISSUE_TEMPLATE/bug_report.yaml index 14af568..37ced7d 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yaml +++ b/.github/ISSUE_TEMPLATE/bug_report.yaml @@ -7,7 +7,8 @@ body: attributes: label: Prerequisites options: - - label: I have searched [existing + - label: + I have searched [existing issues](https://github.com/barrettruth/http-codes.nvim/issues) required: true - label: I have updated to the latest version diff --git a/.github/ISSUE_TEMPLATE/feature_request.yaml b/.github/ISSUE_TEMPLATE/feature_request.yaml index 2aca2e8..fa2ff3b 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yaml +++ b/.github/ISSUE_TEMPLATE/feature_request.yaml @@ -7,7 +7,8 @@ body: attributes: label: Prerequisites options: - - label: I have searched [existing + - label: + I have searched [existing issues](https://github.com/barrettruth/http-codes.nvim/issues) required: true diff --git a/.luarc.json b/.luarc.json index b438cce..3ccfeda 100644 --- a/.luarc.json +++ b/.luarc.json @@ -1,7 +1,7 @@ { "runtime.version": "Lua 5.1", "runtime.path": ["lua/?.lua", "lua/?/init.lua"], - "diagnostics.globals": ["vim", "jit"], + "diagnostics.globals": ["vim"], "workspace.library": ["$VIMRUNTIME/lua", "${3rd}/luv/library"], "workspace.checkThirdParty": false, "completion.callSnippet": "Replace" diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 5ae4fde..0000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2023 Raphael - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/README.md b/README.md deleted file mode 100644 index a0142cf..0000000 --- a/README.md +++ /dev/null @@ -1,26 +0,0 @@ -# http-codes.nvim - -Quickly investigate HTTP status codes with [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP), with telescope, fzf-lua, and snacks.nvim integrations. - -## Installation - -Install with your package manager or via -[luarocks](https://luarocks.org/modules/barrettruth/http-codes.nvim): - -``` -luarocks install http-codes.nvim -``` - -## Dependencies - -One of: - -- [fzf-lua](https://github.com/ibhagwan/fzf-lua) -- [snacks.nvim](https://github.com/folke/snacks.nvim) -- [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim) - -## Documentation - -```vim -:help http-codes.nvim -``` diff --git a/doc/http-codes.txt b/doc/http-codes.txt index 77f06b0..6b2294e 100644 --- a/doc/http-codes.txt +++ b/doc/http-codes.txt @@ -1,53 +1,39 @@ -*http-codes* *http-codes.txt* +http-codes *http-codes.txt* Author: Barrett Ruth -Homepage: +Homepage: =============================================================================== INTRODUCTION *http-codes.nvim* -http-codes.nvim lets you quickly investigate HTTP status codes using Mozilla -documentation, with telescope, fzf-lua, and snacks.nvim integrations. +http-codes.nvim lets you quickly investigate HTTP status codes with Mozilla, +supporting fzf-lua, snacks.nvim, and telescope.nvim. =============================================================================== -USAGE *:HTTPCodes* - ->vim - :HTTPCodes -< - -=============================================================================== -MAPPINGS *http-codes-mappings* - - *(http-codes-pick)* -(http-codes-pick) Open the HTTP status code picker. - Equivalent to |:HTTPCodes|. - -Example configuration: >lua - vim.keymap.set('n', 'hc', '(http-codes-pick)') -< - -=============================================================================== -CONFIGURATION *vim.g.http_codes* - -Configure via `vim.g.http_codes`: +CONFIGURATION *http-codes.config* +Configure via `vim.g.http_codes` before the plugin loads: >lua vim.g.http_codes = { - -- Picker: 'fzf-lua', 'snacks', or 'telescope' (auto-detected) use = 'fzf-lua', - -- Command to open URLs (OS-specific by default) open_url = 'xdg-open %s', } < +Options: ~ -Default `open_url` by operating system: + {use} `(string|nil)`: Picker to use: 'fzf-lua', 'snacks', or + 'telescope'. Auto-detected if not specified. - OS Default - -------- --------------- - Windows start %s - macOS open %s - Linux xdg-open %s + {open_url} `(string|nil)`: Command to open URLs. Uses `%s` as placeholder. + Defaults based on OS: + - Linux: 'xdg-open %s' + - macOS: 'open %s' + - Windows: 'start %s' + +=============================================================================== +COMMANDS *http-codes.commands* + +:HTTPCodes Browse HTTP codes using the configured picker. ------------------------------------------------------------------------------- -vim:tw=80:ts=8:ft=help: +vim:tw=80:ft=help: diff --git a/lua/http-codes.lua b/lua/http-codes.lua index dc96aaa..46b996f 100644 --- a/lua/http-codes.lua +++ b/lua/http-codes.lua @@ -32,10 +32,7 @@ local function init() end if not config.use then - vim.notify_once( - 'http-codes.nvim: install fzf-lua, snacks.nvim, or telescope.nvim', - vim.log.levels.ERROR - ) + vim.notify_once('http-codes.nvim: install fzf-lua, snacks.nvim, or telescope.nvim', vim.log.levels.ERROR) return false end @@ -73,13 +70,7 @@ M.http_codes = M.pick ---@deprecated Use `vim.g.http_codes` instead function M.setup(user_config) - vim.deprecate( - 'require("http-codes").setup()', - 'vim.g.http_codes', - 'v0.1.0', - 'http-codes.nvim', - false - ) + vim.deprecate('require("http-codes").setup()', 'vim.g.http_codes', 'v0.1.0', 'http-codes.nvim', false) if user_config then vim.g.http_codes = vim.tbl_deep_extend('force', vim.g.http_codes or {}, user_config) diff --git a/lua/http-codes/codes.lua b/lua/http-codes/codes.lua index 25ac151..367f9fa 100644 --- a/lua/http-codes/codes.lua +++ b/lua/http-codes/codes.lua @@ -1,51 +1,51 @@ return { - ['201 Created'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/201', - ['202 Accepted'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/202', - ['203 Non-Authoritative Information'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/203', - ['204 No Content'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/204', - ['205 Reset Content'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/205', - ['206 Partial Content'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/206', - ['300 Multiple Choices'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/300', - ['301 Moved Permanently'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/301', - ['302 Found'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/302', - ['303 See Other'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/303', - ['304 Not Modified'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/304', - ['307 Temporary Redirect'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/307', - ['308 Permanent Redirect'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/308', - ['400 Bad Request'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/400', - ['401 Unauthorized'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/401', - ['402 Payment Required'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/402', - ['403 Forbidden'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/403', - ['404 Not Found'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404', - ['405 Method Not Allowed'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/405', - ['406 Not Acceptable'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/406', - ['407 Proxy Authentication Required'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/407', - ['408 Request Timeout'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/408', - ['409 Conflict'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/409', - ['410 Gone'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/410', - ['411 Length Required'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/411', - ['412 Precondition Failed'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/412', - ['413 Payload Too Large'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/413', - ['414 URI Too Long'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/414', - ['415 Unsupported Media Type'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/415', - ['416 Range Not Satisfiable'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/416', - ['417 Expectation Failed'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/417', - ['422 Unprocessable Entity'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/422', - ['425 Too Early'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/425', - ['426 Upgrade Required'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/426', - ['428 Precondition Required'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/428', - ['429 Too Many Requests'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/429', - ['431 Request Header Fields Too Large'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/431', - ['451 Unavailable For Legal Reasons'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/451', - ['500 Internal Server Error'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500', - ['501 Not Implemented'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/501', - ['502 Bad Gateway'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/502', - ['503 Service Unavailable'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/503', - ['504 Gateway Timeout'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/504', - ['505 HTTP Version Not Supported'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/505', - ['506 Variant Also Negotiates'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/506', - ['507 Insufficient Storage'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/507', - ['508 Loop Detected'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/508', - ['510 Not Extended'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/510', - ['511 Network Authentication Required'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/511', + ['201 Created'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/201', + ['202 Accepted'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/202', + ['203 Non-Authoritative Information'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/203', + ['204 No Content'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/204', + ['205 Reset Content'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/205', + ['206 Partial Content'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/206', + ['300 Multiple Choices'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/300', + ['301 Moved Permanently'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/301', + ['302 Found'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/302', + ['303 See Other'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/303', + ['304 Not Modified'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/304', + ['307 Temporary Redirect'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/307', + ['308 Permanent Redirect'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/308', + ['400 Bad Request'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/400', + ['401 Unauthorized'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/401', + ['402 Payment Required'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/402', + ['403 Forbidden'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/403', + ['404 Not Found'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404', + ['405 Method Not Allowed'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/405', + ['406 Not Acceptable'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/406', + ['407 Proxy Authentication Required'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/407', + ['408 Request Timeout'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/408', + ['409 Conflict'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/409', + ['410 Gone'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/410', + ['411 Length Required'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/411', + ['412 Precondition Failed'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/412', + ['413 Payload Too Large'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/413', + ['414 URI Too Long'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/414', + ['415 Unsupported Media Type'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/415', + ['416 Range Not Satisfiable'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/416', + ['417 Expectation Failed'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/417', + ['422 Unprocessable Entity'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/422', + ['425 Too Early'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/425', + ['426 Upgrade Required'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/426', + ['428 Precondition Required'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/428', + ['429 Too Many Requests'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/429', + ['431 Request Header Fields Too Large'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/431', + ['451 Unavailable For Legal Reasons'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/451', + ['500 Internal Server Error'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500', + ['501 Not Implemented'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/501', + ['502 Bad Gateway'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/502', + ['503 Service Unavailable'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/503', + ['504 Gateway Timeout'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/504', + ['505 HTTP Version Not Supported'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/505', + ['506 Variant Also Negotiates'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/506', + ['507 Insufficient Storage'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/507', + ['508 Loop Detected'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/508', + ['510 Not Extended'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/510', + ['511 Network Authentication Required'] = 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/511', } diff --git a/lua/http-codes/fzf-lua.lua b/lua/http-codes/fzf-lua.lua index 8588d86..344a0df 100644 --- a/lua/http-codes/fzf-lua.lua +++ b/lua/http-codes/fzf-lua.lua @@ -1,15 +1,15 @@ -local codes = require('http-codes.codes') +local codes = require 'http-codes.codes' return { - pick = function(open_url) - require('fzf-lua').fzf_exec(vim.tbl_keys(codes), { - actions = { - default = function(selected) - local link = codes[selected[1]] + pick = function(open_url) + require('fzf-lua').fzf_exec(vim.tbl_keys(codes), { + actions = { + default = function(selected) + local link = codes[selected[1]] - vim.fn.jobstart(open_url:format(link)) - end, - }, - }) - end, + vim.fn.jobstart(open_url:format(link)) + end, + }, + }) + end, } diff --git a/lua/http-codes/os.lua b/lua/http-codes/os.lua index acdb38e..f0135ca 100644 --- a/lua/http-codes/os.lua +++ b/lua/http-codes/os.lua @@ -1,23 +1,17 @@ local OS_TO_OPEN_URL = { - OSX = 'open %s', - Windows = 'start %s', + OSX = 'open %s', + Windows = 'start %s', } local function get_os() - if jit then - return jit.os - end + if jit then return jit.os end - local fh, _ = assert(io.popen('uname -o 2>/dev/null', 'r')) - if fh then - return fh:read() - end + local fh, _ = assert(io.popen('uname -o 2>/dev/null', 'r')) + if fh then return fh:read() end - return fh and fh:read() or 'Windows' + return fh and fh:read() or 'Windows' end return { - get_open_url = function() - return OS_TO_OPEN_URL[get_os()] or 'xdg-open %s' - end, + get_open_url = function() return OS_TO_OPEN_URL[get_os()] or 'xdg-open %s' end, } diff --git a/lua/http-codes/snacks.lua b/lua/http-codes/snacks.lua index 836aa98..1668724 100644 --- a/lua/http-codes/snacks.lua +++ b/lua/http-codes/snacks.lua @@ -1,37 +1,35 @@ -local codes = require('http-codes.codes') +local codes = require 'http-codes.codes' local cached_items = nil -local function codes_to_snack_items(codes_map) - if cached_items then - return cached_items - end +local function codes_to_snack_items(codes) + if cached_items then return cached_items end - local items = {} + local items = {} - local idx = 1 - for status, _ in pairs(codes_map) do - table.insert(items, { idx = idx, text = status }) - idx = idx + 1 - end - cached_items = items - return 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, + 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, } diff --git a/lua/http-codes/telescope.lua b/lua/http-codes/telescope.lua index a203369..95555dc 100644 --- a/lua/http-codes/telescope.lua +++ b/lua/http-codes/telescope.lua @@ -1,5 +1,3 @@ return { - setup = function() - require('telescope').load_extension('http') - end, + setup = function() require('telescope').load_extension 'http' end, } diff --git a/lua/telescope/_extensions/http.lua b/lua/telescope/_extensions/http.lua index 2c9f04e..580be82 100644 --- a/lua/telescope/_extensions/http.lua +++ b/lua/telescope/_extensions/http.lua @@ -1,5 +1,5 @@ -local list = require('telescope._extensions.http.list') +local list = require 'telescope._extensions.http.list' -return require('telescope').register_extension({ - exports = { list = list }, -}) +return require('telescope').register_extension { + exports = { list = list }, +} diff --git a/lua/telescope/_extensions/http/list.lua b/lua/telescope/_extensions/http/list.lua index 298ff2f..e06e12e 100644 --- a/lua/telescope/_extensions/http/list.lua +++ b/lua/telescope/_extensions/http/list.lua @@ -1,30 +1,30 @@ -local actions = require('telescope.actions') -local finders = require('telescope.finders') -local pickers = require('telescope.pickers') -local sorters = require('telescope.sorters') -local state = require('telescope.actions.state') +local actions = require 'telescope.actions' +local finders = require 'telescope.finders' +local pickers = require 'telescope.pickers' +local sorters = require 'telescope.sorters' +local state = require 'telescope.actions.state' -local codes = require('http-codes.codes') +local codes = require 'http-codes.codes' return function(open_url) - pickers - .new(nil, { - prompt_title = 'HTTP Codes', - finder = finders.new_table({ - results = vim.tbl_keys(codes), - }), - sorter = sorters.get_generic_fuzzy_sorter(), - attach_mappings = function(prompt_bufnr, _) - actions.select_default:replace(function() - actions.close(prompt_bufnr) + pickers + .new(nil, { + prompt_title = 'HTTP Codes', + finder = finders.new_table { + results = vim.tbl_keys(codes), + }, + sorter = sorters.get_generic_fuzzy_sorter(), + attach_mappings = function(prompt_bufnr, _) + actions.select_default:replace(function() + actions.close(prompt_bufnr) - local selection = state.get_selected_entry() - local link = codes[selection[1]] + local selection = state.get_selected_entry() + local link = codes[selection[1]] - vim.fn.jobstart(open_url:format(link)) - end) - return true - end, - }) - :find() + vim.fn.jobstart(open_url:format(link)) + end) + return true + end, + }) + :find() end diff --git a/plugin/http-codes.lua b/plugin/http-codes.lua index b1f4490..d7e23df 100644 --- a/plugin/http-codes.lua +++ b/plugin/http-codes.lua @@ -6,7 +6,3 @@ vim.g.loaded_http_codes = 1 vim.api.nvim_create_user_command('HTTPCodes', function() require('http-codes').pick() end, {}) - -vim.keymap.set('n', '(http-codes-pick)', function() - require('http-codes').pick() -end, { desc = 'Pick HTTP status code' }) diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..1be0b04 --- /dev/null +++ b/readme.md @@ -0,0 +1,47 @@ +# http-codes.nvim + +Quickly investigate HTTP status codes with the help of [Mozilla](https://developer.mozilla.org/en-US/docs/Web/HTTP), with telescope, fzf-lua, and snacks.nvim integrations. + +## Installation + +Install using your package manager of choice or via [luarocks](https://luarocks.org/modules/barrettruth/http-codes.nvim): + +``` +luarocks install http-codes.nvim +``` + +## Dependencies + +One of: +- [fzf-lua](https://github.com/ibhagwan/fzf-lua) +- [snacks.nvim](https://github.com/folke/snacks.nvim) +- [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim) + +## Configuration + +Configure via `vim.g.http_codes` before the plugin loads: + +```lua +vim.g.http_codes = { + use = 'fzf-lua', -- or 'snacks' or 'telescope', auto-detected by default + open_url = 'xdg-open %s', -- OS-specific by default +} +``` + +| OS | Default open_url | +| ------- | ---------------- | +| Windows | `start %s` | +| macOS | `open %s` | +| Linux | `xdg-open %s` | + +## Usage + +```vim +:HTTPCodes +``` + +## Documentation + +```vim +:help http-codes.nvim +```