vscode-phpcs icon indicating copy to clipboard operation
vscode-phpcs copied to clipboard

Bug in lint method of the PhpcsLinter class

Open Blake-C opened this issue 7 years ago • 1 comments

If a user has <arg name="basepath" value="./"/> in their phpcs.xml file the dictionary look up on line 216 will lookup the wrong file.

if (filePath !== undefined && semver.gte(this.executableVersion, '2.0.0')) {
	const fileRealPath = extfs.realpathSync(filePath);
	if (!data.files[fileRealPath]) {
		return [];
	}
	({ messages } = data.files[fileRealPath]);
}

File path given with <arg name="basepath" value="./"/>: screen shot 2018-09-01 at 11 17 04 pm

File path being looked up: screen shot 2018-09-01 at 11 17 40 pm

Meta: VSCode: Version 1.26.1 (1.26.1) macOS: 10.13.6 High Sierra PHP CodeSniffer: 3.2.3 vscode-phpcs: 1.0.5

Blake-C avatar Sep 02 '18 04:09 Blake-C

For the lazy, and until the associated PR is fixed, this is a one-liner to fix this based on @Blake-C PR in #129 :

curl https://gist.githubusercontent.com/shadyvb/585ff8666f55f206c7fdbd11cee128d5/raw/f48e3fee4ce4f4d264f20e76a7e64429811ca9d2/vscode-phpcs-ext-basepath-fix.patch | patch ~/.vscode/extensions/ikappas.phpcs-1.0.5/server/src/linter.js

The patch being applied can be viewed at https://gist.githubusercontent.com/shadyvb/585ff8666f55f206c7fdbd11cee128d5/raw/f48e3fee4ce4f4d264f20e76a7e64429811ca9d2/vscode-phpcs-ext-basepath-fix.patch, given the extension is saved to ~/.vscode/extensions

Thanks @Blake-C !

shadyvb avatar Dec 28 '19 17:12 shadyvb