can format entire projects now

This commit is contained in:
foxora 2026-03-03 04:32:42 +00:00
parent 211fa03252
commit 3e14220569

View file

@ -1,3 +1,42 @@
vim.keymap.set("n", "<leader>P", "<cmd>ConformProject<cr>", { noremap = true, silent = true })
vim.api.nvim_create_user_command("ConformProject", function()
local conform = require("conform")
local root = vim.fn.getcwd()
-- Use git to get files (respects .gitignore)
local handle = io.popen(string.format("cd %s && git ls-files --cached --others --exclude-standard", root))
if not handle then
vim.notify("Failed to scan project files", vim.log.levels.ERROR)
return
end
local files = {}
for file in handle:lines() do
table.insert(files, vim.fn.fnamemodify(file, ":p"))
end
handle:close()
-- Format each file
local formatted_count = 0
for _, filepath in ipairs(files) do
local bufnr = vim.fn.bufadd(filepath)
vim.fn.bufload(bufnr)
local ok, err = conform.format({ bufnr = bufnr })
if ok then
formatted_count = formatted_count + 1
-- Save the buffer
vim.api.nvim_buf_call(bufnr, function()
vim.cmd("write")
end)
end
end
vim.notify(string.format("Formatted %d files", formatted_count), vim.log.levels.INFO)
end, {})
-- docs -> https://github.com/stevearc/conform.nvim
return {
{