[Feature Request] Files-changed filter
Hey there! We have quite a big repo and running StyLua on all the files on every commit takes quite a bit (20min), and I was wondering if you'd be open to adding a filter to only run on changed files, like reviewdog does here https://github.com/reviewdog/reviewdog#filter-mode
Definitely sounds reasonable to add to me.
Slightly concerned about the 20min time to run the formatter though, I wouldn't expect it to take that long. Is there anything in particular that stands out in taking a long time to format for you? Although if its an extremely large repo, then maybe it makes sense
If you pass the --verbose flag to stylua on the command line, it outputs timings
Just wanted to also mention, you can probably do this already either by using git diff --name-only or something like https://github.com/marketplace/actions/changed-files, then piping the list of changed files in as arguments to stylua (maybe with xargs)
Just wanted to also mention, you can probably do this already either by using
git diff --name-onlyor something like github.com/marketplace/actions/changed-files, then piping the list of changed files in as arguments to stylua (maybe withxargs)
Yup was considering doing that!
Here's the 20min https://github.com/WeakAuras/WeakAuras2/runs/7940500923?check_suite_focus=true
Had a quick look, on my machine these file timings seems to be the slowest ones to me:
debug: formatted .\WeakAuras\Prototypes.lua in 4.3554156s
debug: formatted .\WeakAurasTemplates\TriggerTemplatesData.lua in 8.8273347s
debug: formatted .\WeakAurasModelPaths\ModelPathsClassic.lua in 128.721485s (!!)
debug: formatted .\WeakAurasModelPaths\ModelPathsBCC.lua in 401.1322888s (!!)
terminated on .\WeakAurasModelPaths\ModelPaths.lua, taking > 10mins
Everything else takes a second or less
Not too suprised on those ModelPaths ones (they are all large files, ModelPaths.lua is 13.3MB!) but I bet we can squeeze out some performance here. You may find that you just want to ignore the WeakAurasModelPaths directory in a .styluaignore file