diff --git a/lua/rest-nvim/config/default.lua b/lua/rest-nvim/config/default.lua index 55e6eb2..84f655b 100644 --- a/lua/rest-nvim/config/default.lua +++ b/lua/rest-nvim/config/default.lua @@ -65,6 +65,17 @@ local default_config = { enable = true, ---@type string pattern = ".*%.env.*", + ---@type fun():string[] + find = function() + local config = require("rest-nvim.config") + return vim.fs.find(function(name, _) + return name:match(config.env.pattern) + end, { + path = vim.fn.getcwd(), + type = "file", + limit = math.huge, + }) + end, }, ---@class rest.Config.UI ui = { diff --git a/lua/rest-nvim/config/init.lua b/lua/rest-nvim/config/init.lua index a9ad61b..036f85d 100644 --- a/lua/rest-nvim/config/init.lua +++ b/lua/rest-nvim/config/init.lua @@ -92,6 +92,10 @@ local config ---@field enable? boolean --- Environment variables file pattern for telescope.nvim (Default: `"%.env.*"`) ---@field pattern? string +--- Function lists environment files (used for `:Rest env select`) +--- Searches for file matching *rest.Opts.Env.pattern* under same directory by +--- default +---@field find? fun():string[] ---@class rest.Opts.UI --- Set winbar in result pane (Default: `true`) diff --git a/lua/rest-nvim/dotenv.lua b/lua/rest-nvim/dotenv.lua index 68efb04..7383b41 100644 --- a/lua/rest-nvim/dotenv.lua +++ b/lua/rest-nvim/dotenv.lua @@ -53,18 +53,11 @@ function M.show_registered_file(bufnr) end end ----Find a list of environment files starting from the current directory +---Find a list of environment files +---@see rest.Opts.Env.find ---@return string[] files Environment variable files path function M.find_env_files() - -- We are currently looking for any ".*env*" file, e.g. ".env", ".env.json" - -- - -- This algorithm can be improved later on to search from a parent directory if the desired environment file - -- is somewhere else but in the current working directory. - local files = vim.fs.find(function(name, _) - return name:match(config.env.pattern) - end, { limit = math.huge, type = "file", path = "./" }) - - return files + return config.env.find() end ---@return string? dotenv file