almost everything
This commit is contained in:
35
lua/plugins/init.lua
Normal file
35
lua/plugins/init.lua
Normal file
@@ -0,0 +1,35 @@
|
||||
local plugins = {}
|
||||
|
||||
-- 1. Setup paths
|
||||
local lua_path = vim.fn.stdpath("config") .. "/lua"
|
||||
local plugin_dir = lua_path .. "/plugins"
|
||||
|
||||
-- 2. Use ** to search recursively for all .lua files
|
||||
local files = vim.fn.split(vim.fn.globpath(plugin_dir, "**/*.lua"), "\n")
|
||||
|
||||
for _, file in ipairs(files) do
|
||||
-- Get path relative to the 'lua' directory
|
||||
-- Example: /home/user/.config/nvim/lua/plugins/ui/statusline.lua
|
||||
-- Becomes: plugins/ui/statusline.lua
|
||||
local relative_path = file:sub(#lua_path + 2)
|
||||
|
||||
-- Remove the .lua extension
|
||||
local module_path = relative_path:gsub("%.lua$", "")
|
||||
|
||||
-- Convert path slashes to Lua dots (plugins/ui/statusline -> plugins.ui.statusline)
|
||||
module_path = module_path:gsub("/", ".")
|
||||
|
||||
-- 3. The Guard: Don't require the current file (plugins.init)
|
||||
if not module_path:match("%.init$") and module_path ~= "plugins" then
|
||||
local status_ok, module_content = pcall(require, module_path)
|
||||
|
||||
if status_ok then
|
||||
table.insert(plugins, module_content)
|
||||
else
|
||||
-- Optional: notify if a file failed to load
|
||||
vim.notify("Error loading " .. module_path .. ": " .. module_content, vim.log.levels.ERROR)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return plugins
|
||||
Reference in New Issue
Block a user