Code layout has been changed and improoved. Annotations are added for documentation. Automated through utility functions and data tables BREAKING CHANGE: Tested from clean. Now properly uses LuaRocks to install dependencies.
38 lines
1.1 KiB
Lua
38 lines
1.1 KiB
Lua
---@module "data"
|
|
--- This module aggregates various data tables used throughout the configuration.
|
|
local M = {}
|
|
|
|
-- Explicitly specify for LSP support
|
|
M.keys = require("data.keys")
|
|
M.types = require("data.types")
|
|
M.func = require("data.func")
|
|
M.cmd = require("data.cmd")
|
|
M.deps = require("data.deps")
|
|
M.dash = require("data.dash")
|
|
|
|
-- Function to iterate over files in the directory
|
|
local function read_data_dir()
|
|
-- Getting the root path for the current module directory
|
|
local dir_path = vim.fn.fnamemodify(debug.getinfo(1, "S").source:sub(2), ":h")
|
|
|
|
-- Open the directory
|
|
local files = vim.fn.readdir(dir_path)
|
|
|
|
for _, file in ipairs(files) do
|
|
-- Skip init.lua
|
|
if file ~= "init.lua" and file:match(".*%.lua$") then
|
|
-- Get the module name without the .lua extension
|
|
local module_name = file:sub(1, -5)
|
|
-- Load the module if not already explicitly set
|
|
if not M[module_name] then
|
|
M[module_name] = require("data." .. module_name)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
-- Read the directory and load any additional modules
|
|
read_data_dir()
|
|
|
|
return M
|