-
-
Notifications
You must be signed in to change notification settings - Fork 477
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix(linter): fix file name checking behavior of `unicorn/filename-cas…
…e` (#6463) - closes #6459 Currently, the `unicorn/filename-case` doesn't match the behavior of the original rule. There are several issues which this PR fixes: - The defaults cases were incorrect: only kebab case should be enabled by default, according to the original rule docs. - Setting a single case or multiple cases did not remove the default cases as it should. - Leading/trailing underscores were not ignored by default. - We did not provide a clear diagnostic message indicating which cases are allowed. - We did not try to parse out multiple file parts (separated by `.`). - TODO: We should also support multiple file part checking (which the original rule supports via a config option), for file names such as `someTest.fileName.js` I have also added many of the original test cases to ensure we are more closely compatible. This also improves the performance of just running the `unicorn/filename-case` alone by 4% (20ms total) on the `vscode` codebase: ``` Benchmark 1: ./oxlint-main -A all -W unicorn/filename-case --silent vscode Time (mean ± σ): 489.4 ms ± 24.0 ms [User: 2623.8 ms, System: 447.2 ms] Range (min … max): 474.7 ms … 622.9 ms 100 runs Warning: Statistical outliers were detected. Consider re-running this benchmark on a quiet system without any interferences from other programs. It might help to use the '--warmup' or '--prepare' options. Benchmark 2: ./oxlint-new-filename-case -A all -W unicorn/filename-case --silent vscode Time (mean ± σ): 470.8 ms ± 22.9 ms [User: 2478.8 ms, System: 463.5 ms] Range (min … max): 455.6 ms … 599.3 ms 100 runs Warning: Statistical outliers were detected. Consider re-running this benchmark on a quiet system without any interferences from other programs. It might help to use the '--warmup' or '--prepare' options. Summary ./oxlint-new-filename-case -A all -W unicorn/filename-case --silent vscode ran 1.04 ± 0.07 times faster than ./oxlint-main -A all -W unicorn/filename-case --silent vscode ``` Perplexingly, it seems like it might actually be even faster on the `vscode` repository, saving ~5% (70ms) with the default ruleset enabled as well. Maybe my laptop was just running a bit faster. ``` Benchmark 1: ./oxlint-main -W unicorn/filename-case --silent vscode Time (mean ± σ): 1.402 s ± 0.096 s [User: 8.863 s, System: 0.505 s] Range (min … max): 1.318 s … 1.920 s 100 runs Warning: Statistical outliers were detected. Consider re-running this benchmark on a quiet system without any interferences from other programs. It might help to use the '--warmup' or '--prepare' options. Benchmark 2: ./oxlint-new-filename-case -W unicorn/filename-case --silent vscode Time (mean ± σ): 1.339 s ± 0.042 s [User: 8.582 s, System: 0.511 s] Range (min … max): 1.266 s … 1.506 s 100 runs Summary ./oxlint-new-filename-case -W unicorn/filename-case --silent vscode ran 1.05 ± 0.08 times faster than ./oxlint-main -W unicorn/filename-case --silent vscode ```
- Loading branch information
Showing
2 changed files
with
311 additions
and
63 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.