Changelog
July 13, 2026 · View on GitHub
All notable changes to the "vscode-phpcs" extension will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
Added
- Resolved standard visibility: lint log lines now include
using standard: <standard>, PHPCBF runs log the standard, and a status bar item shows the standard used for the active PHP file — click it to open the resolved ruleset file (or thephpcs.standardsetting) (#21) - Document formatter support: the extension registers as a VS Code
formatter for PHP, so
editor.defaultFormatter, Format Document, andeditor.formatOnSavenow run PHPCBF on the current buffer (#23)
Fixed
- PHP deprecation notices no longer break the extension: version detection for phpcs/phpcbf and JSON report parsing now tolerate PHP notices (e.g. deprecation warnings from the project's own dependencies) printed before the expected output (#31)
Security
- Resolved all open Dependabot security alerts (27 total: 1 critical, 10 high)
across the development/build dependency tree — including
shell-quote,undici,serialize-javascript(via npm overrides), andmarkdownlint-cli2. All affected packages are dev dependencies; nothing shipped in the extension runtime was affected (#27, #28, #33, #34)
[1.2.3] - 2026-01-10
Added
- Configurable PHPCBF timeout: New
phpcs.phpcbfTimeoutsetting (1-300 seconds, default: 60) to handle large files that may take longer to fix - Unit tests for timeout handling utilities (
isTimeoutSignal,createTimeoutResult,getTimeoutMs)
Changed
- Improved concurrency handling: PHPCBF fix operations now properly track in-flight requests to prevent duplicate fixes on the same document
- Moved PHPCBF user-facing messages to centralized string resources for consistency
- Updated README to reference VS Code compatible editors (VS Code, Cursor, Windsurf, etc.) since the extension is published to Open VSX
- Fixed VS Code development setup to use esbuild watch instead of tsc for proper
dist/output
Fixed
- Fixed
onWillSaveTextDocumentconcurrency guard - now properly tracks its fix operation in the sharedfixingDocumentsmap - Fixed esbuild problemMatcher output format to correctly capture build errors in the Problems panel
[1.2.2] - 2025-12-27
Added
- Command Palette Commands for PHPCBF:
PHPCS: Fix this file with PHPCBF(phpcs.fixCurrentFile) - Fix the current filePHPCS: Fix all files in workspace with PHPCBF(phpcs.fixWorkspace) - Fix all PHP files with confirmation dialog and progress indicator
- Integration tests for PHPCBF fixer (
fixer.test.ts)
Changed
- Extension renamed from
phpcstovscode-phpcsto avoid naming conflict with the original abandoned extensions on the VS Code Marketplace - Added "Extension History" section to README documenting the lineage from
ikappas.phpcsandshevaua.phpcs - Updated README to document PHPCBF (auto-fix) support alongside PHPCS (linting)
- Updated PHP_CodeSniffer repository links from deprecated
squizlabstoPHPCSStandards
Fixed
- File watcher now monitors all PHPCS ruleset file types (
phpcs.xml,phpcs.xml.dist,.phpcs.xml,.phpcs.xml.dist,phpcs.ruleset.xml,ruleset.xml) instead of onlyruleset.xml
Note for existing users: Your settings will continue to work as the settings namespace remains
phpcs.*. However, you may need to reinstall the extension under its new name.
[1.2.1] - 2025-12-23
Fixed
- Fixed
phpcs.phpcbfOnSavesetting not working - PHPCBF settings were missing from the client configuration middleware, causing the server to always receive default values instead of user-configured settings
Changed
- Updated document selector to explicit format for better LSP compatibility
- Extracted
resolvePhpcbfPath()helper method to reduce code duplication
[1.2.0] - 2025-12-23
Added
- PHPCBF Support: Auto-fix code style issues using PHP Code Beautifier and Fixer
- Quick fix code action: "Fix all auto-fixable issues in this file (PHPCBF)"
- Appears in lightbulb menu when hovering over PHPCS diagnostics
- New settings:
phpcs.phpcbfEnable: Enable/disable PHPCBF integration (default: true)phpcs.phpcbfExecutablePath: Custom path to phpcbf executablephpcs.phpcbfOnSave: Automatically resolves issues when saving (default: false)
- Improved error diagnostics for PHPCS JSON parsing failures
- Error messages now include raw output preview for debugging
- Exit code and signal information included in error context
Fixed
- Fixed PHPCBF exit code handling - content comparison now used to detect actual changes, as PHPCBF sometimes returns exit code 0 even when fixes were applied
[1.1.1] - 2025-12-22
Changed
- Switched from TypeScript compilation to esbuild bundling for faster extension activation and smaller package size (~177KB compressed vs previous ~500KB)
- Updated TypeScript from v5.7.2 to v5.9.3
Added
- Architecture documentation in README explaining LSP design and size trade-offs
- Note about web platform limitations (github.dev, vscode.dev not supported)
- Convenience scripts:
package-devandpackage-prodfor building VSIX packages
[1.1.0] - 2025-12-18
Added
- Support for PHP_CodeSniffer v4.0.0 and above
- Proper handling of STDERR output (v4 routes progress/debug output to STDERR)
- New exit code handling for v4 (exit codes 16 and 64 for processing errors)
- Version-aware error detection that maintains backwards compatibility
- Unit tests for PHPCS v4 version handling, STDERR processing, and exit code logic
- Integration tests for validating PHPCS behavior across versions
- Debug logging for PHPCS v4 STDERR output
- Version caching for improved performance during linting
Changed
- Publisher changed from
shevauatojohnrdorazio - Repository URLs updated to https://github.com/JohnRDOrazio/vscode-phpcs
- Updated Node.js requirement from v8.9.4 to v20
- Updated TypeScript from v2.7.2 to v5.7.2
- Updated VS Code minimum version from v1.20.0 to v1.106.0
- Updated vscode-languageserver from v5.2.1 to v9.0.1
- Updated vscode-languageclient from v5.2.1 to v9.0.1
- Modernized build process (removed deprecated
installServerIntoExtensionscript)
Fixed
- Fixed regex pattern for detecting PHP fatal errors to properly match both "FATAL ERROR:" and "PHP FATAL ERROR:" formats
- Fixed duplicate
sendEndValidationNotificationcalls in error handling path - Fixed unhandled promise rejection in
freeBuffermethod - Improved error handling for missing PHPCS executable in multi-root workspaces