38 lines
1.5 KiB
Lua
38 lines
1.5 KiB
Lua
local fs = require("lua_fs")
|
|
|
|
-- 定义 clang-format 的路径和目标文件夹
|
|
local clang_format_path = "/home/xx/.vscode-server/extensions/ms-vscode.cpptools-1.23.6/LLVM/bin/clang-format" -- 替换为你的 clang-format 路径
|
|
local target_folder = "/home/xx/xxx-mirror" -- 替换为你要处理的文件夹路径
|
|
|
|
-- 检查目标文件夹是否存在 .clang-format 文件
|
|
local clang_format_config = fs.append_path(target_folder, ".clang-format")
|
|
local style_option = "-style=LLVM" -- 默认使用 LLVM 风格
|
|
if fs.exists(clang_format_config) then
|
|
style_option = "-style=file:" .. clang_format_config
|
|
end
|
|
|
|
-- 递归遍历文件夹并格式化文件
|
|
local function format_files_in_directory(dir_path)
|
|
local files = fs.get_dir_files(dir_path)
|
|
for _, file in ipairs(files) do
|
|
local full_path = fs.append_path(dir_path, file)
|
|
if fs.is_regular_file(full_path) then
|
|
-- 检查文件扩展名
|
|
local ext = fs.get_extension(full_path)
|
|
if ext == ".h" or ext == ".cc" or ext == ".cpp" or ext == ".cxx" or ext == ".hpp" then
|
|
-- 格式化文件
|
|
local command = string.format("%s %s -i %s", clang_format_path, style_option, full_path)
|
|
os.execute(command)
|
|
print("Formatted: " .. full_path)
|
|
end
|
|
else
|
|
-- 如果是文件夹,递归处理
|
|
format_files_in_directory(full_path)
|
|
end
|
|
end
|
|
end
|
|
|
|
-- 开始格式化
|
|
format_files_in_directory(target_folder)
|
|
print("Formatting complete!")
|