soderlind / vscode-phpcbf

PHP Code Beautifier and Fixer for Visual Studio Code
https://marketplace.visualstudio.com/items?itemName=persoderlind.vscode-phpcbf
GNU General Public License v3.0
28 stars 10 forks source link

Detect phpcs version and add option --no-patch if version 2.* #16

Open averagegeek opened 6 years ago

averagegeek commented 6 years ago

Ran into this issue, here is a proposition for a fix:

The extension does not work with phpcs 2.* on macos (haven't tried other operating systems) at the moment because by default, phpcs tries to write a .diff file in the current working directory. On macos, php is getting / as working directory and obviously can't write the diff file and fail with an error. Passing in the working directory when calling the phpcbf command fixes the issue.

Also the file argument is now added at the very end of the arguments and the console.group() and console.groupEnd() calls were replaced as those methods don't exists in node and trigger errors.

jyrkih commented 6 years ago

I encountered the same issue, but found out that by giving an options parameter with a cwd property solves the issue. Ie:

let options = {
  cwd: TmpDir
}
let exec = cp.spawn(this.executablePath, this.getArgs(fileName), options);
averagegeek commented 6 years ago

Yup, you're absolutely right and it's a better solution than checking for the version. Didn't knew you could pass in the working directory that way :)