Results 15 issues of Adam Cameron

Currently I can exclude namespaces to patch via: ``` $this->commandLine()->set('exclude', [ 'com\example\someapp\etc' ]); ``` However what *I* want to do is exclude the `vendor` directory entirely. I even think that's...

feature request

I'm porting my tests from PHPUnit. Today I've been looking at dealing with incomplete (`markTestIncomplete`) and skipped (`markTestSkipped`) tests. One can kinda mark a test incomplete at compile-time by using...

feature request

Some rules don't support exceptions. A one-off fix for `UnusedLocalVariable` is awaiting merging (https://github.com/phpmd/phpmd/pull/329), but I think rather than dealing on a case-by-case basis, the facility ought to be applied...

Feature
On Hold

Running CFLint for the first time, I was getting a null pointer exception on one of my files. I managed to distill it down to this repro case: ``` component...

v1.5 (via commandbox-cflint, v2.3) Here's [a gist with a CFScript function that is 100 lines long](https://gist.github.com/adamcameron/6f65c182a1e788ece1c61975c3311df5). I am using this `.cflintrc` file, in the same directory: ``` { "rule": [...

v1.5 (via commandbox-cflint, v2.3) Here's [a gist with a function defined via `` tags with a CFScript body that is 101 lines long](https://gist.github.com/adamcameron/4b5b61e93cd6d9fba255359f99ff1f55). I am using this `.cflintrc` file, in...

I'm taking this from [a thread on CFML Slack](https://cfml.slack.com/archives/C06TT5M7V/p1624647260076400). See this code in [wheels/plugins/initialization.cfm](https://github.com/cfwheels/cfwheels/blob/v2.2.0/wheels/plugins/initialization.cfm#L289): ``` public string function $componentPathToPlugin(required string folder, required string file) { local.path = [ListChangeDelims(variables.$class.pluginPath, ".", "/"),...

bug
$50 Bounty

Please consider improving the error reporting [@ line 62 in wheelserror.cfm](https://github.com/cfwheels/cfwheels/blob/v2.2.0/wheels/events/onerror/wheelserror.cfm#L62). Currently it only displays the last file in the callstack, which is generally going to be some generic internal...

enhancement

https://github.com/cfwheels/cfwheels/blob/main/wheels/global/internal.cfm#L758-L759 ``` for (local.key in application.wheels.cache[arguments.category]) { if (Now() > application.wheels.cache[arguments.category][local.key].expiresAt) { ``` You have a race condition there. The keys that the loop will be iterating over are set...

[`/wheels/model/adapters/Base.cfc`](https://github.com/cfwheels/cfwheels/blob/7f84e98f305eb958233ddf25f94565d4e451306f/wheels/model/adapters/Base.cfc#L276-L280): ``` Throw( type = "Wheels.QueryParamValue", message = "The value for `cfqueryparam` cannot be determined", extendedInfo = "This is usually caused by a syntax error in the `WHERE` statement, such...