All notable changes to the "phpstan-vscode" extension will be documented in this file.
- Fix bug where the UI would hang while checking
- Add
phpstan.downloadDebugData
command to download debug data
- Fix issue where errors would not be shown when PHPStan reported no error message
- Only sync/check relevant URI schemes
- Fix
showTypeOnHover
for PHPStan 2.0
- Adapt to new PHPStan 2.0 changes
- Ignore Xdebug errors by default
- Fix status bar text not being updated immediately
- Add anonymous usage telemetry. Only enabled if VSCode telemetry is enabled. See code for exactly what is reported.
- Re-enable zombie-process killer
- Only queue checks on config change if file watching is enabled
- Comment out some unused code that was causing issues.
- Fix issue where too many PID-lookup operations would be spawned.
- Reduce frequency that
ps-tree
is used in order to reduce CPU usage
- Only perform initial check when no other checks have been done
- Disable file watching
- Catch case in which the
ps
command is not available
- Watch files that are not open in the workspace for changes too (requires PHPStan 1.12 or higher)
- Fall back to v1 when
--version
does not output a valid PHPStan version
- Improve killing of running PHPStan checks by using the process tree to kill any zombie processes too.
- Add a setup wizard that guides you through setting up the extension.
- Also supports docker setup
- Remove some unneeded files from the extension
- Don't overwrite temporary directory specified in config file
- Ignore PHPStan errors by identifier with quick if possible
- Show error identifiers in diagnostics
- Show PHPStan tip as part of error message
- Append ignore directive to existing docblocks if possible
- Applying a quickfix now immediately fixes the associated issue (without a re-check needed)
- Set default for
tmpDir
setting - Update PHPStan Pro failure-to-launch error message
- Improve reliability of PHPStan Pro mode
- Use a separate cachedir for each workspace when using the language server
- Fix bug on Windows where errors would disappear when opening the file.
-Rename
proTmpDir
totmpDir
and apply it to non-pro checks as well.
- Fix Pro support for newest PHPStan update (3.1.11)
- Fix issue where language server hover wasn't working
- Ensure language server mode uses a different cache directory than the CLI mode to prevent them invalidating each others' caches.
- When using single file mode, ignore errors related to no files being specified. This happens when the checked file is not in
paths
.
- Only kill zombie PHPStan processes if the PID still points to a PHPStan process.
- Improve debouncing when triggering a bunch of checks in rapid succession in different files.
- Fix
phpstan.scanFileForErrors
command
- Improve killing of running processes when starting a new one
- Bring back
phpstan.scanFileForErrors
command - Inform users of single-file checking mode when project scan times out
- Add back support for single-file checking behind a setting
- Refactor a bunch of code
- Support non-quoted regular expressions in
phpstan.ignoreErrors
setting
- Publish version 3.0 🎉
- Fix issue when an error had no linenumber (for example baseline errors)
- Fix issue in TreeFetcher that would lead to recursive-json error
- Report errors in traits
- Make checking validity of PHP file a setting
- Match PHPStan's default config resolution priority
- Add PHPStan Pro support
- Disable language server by default
- Support tilde as first character in file paths
- Only check on initial startup if the extension is enabled
- Always perform whole-repository checks instead of single-file checks
- Ensures cache is always hit
- Ensures relevant file changes in other files are always picked up
- Add support for PHPStan Pro
- Uses PHPStan Pro to watch files while displaying its errors in the editor
- (Requires a valid PHPStan Pro license)
- Language server improvements
- Now indexes the entire project at once (no more waiting for individual file checks)
- Now uses the exact location of variables (this was previously guessed because PHPStan didn't provide information regarding the index of a value on a line)
- Includes function and closure arguments now too
- Add warning for multi-workspace projects
- Add commands for going to the next and previous PHPStan error
- Fix bug where projectTimeout was not being used
- Fix wrong title for extension configuration
- Force-kill processes that run too long, even if they outlast VSCode's runtime itself
- Log configuration on extension startup (helps in debugging)
- Always check current configuration when starting a new check
- Remove badges from README.md (VSCode marketplace did not allow them)
- Fix paths not mapping when scanning entire project. Thanks to raustin-m for the PR.
- Provide quick fix for ignoring errors (thanks to FrankySnow)
- Fix deprecated string iterpolation (thanks to priyadi)
- Don't do unnecessary checks on closing files
- Kill with SIGKILL if process does not respond to SIGINT
- Fix bug in TreeFetcher
- Kill PHPStan process with SIGINT instead of SIGKILL to allow for graceful shutdown
- Don't check files that end with
.git
(appears to be a VSCode quirk)
- List of to-ignore errors now takes regular expressions
- Add option for ignoring errors occuring during execution of PHPStan
- Use names that are less prone to collissions in code injected in PHPStan extension.
- Jump bump version
- Add option for enabling/disabling language server (can help with docker setups)
- Fix file path issues on windows
- Fix issue that would crash language server sometimes
- When language server crashes, clear all running operations (should fix infinitely loading statusbar)
- Fix bug that caused hover info to stop working when a file contained an array desturing inside a foreach loop
- Attempt to fix bug with status bar entry never disappearing
- Fix bug that caused status bar icon to disappear
- Add on-hover tooltip to status bar icon
- Support older PHP versions too (<= 7.3)
- Add PHPStan tag to errors in the
Problems
tab for easier filtering.
- Publish previous version of the extension to the stable channel.
- Fix bugs from broken release
- Fix bug where only the first symbol on a line would get hover information
- Improve logging
- Last release was broken, took it offline to investigate
- Allow scanning of entire project (thanks to edafonseca for the idea)
- Move error-managing to the LSP-client, allows for setting errors on unopened files
- Re-apply errors when files are closed and re-opened
- Show progress (on by default), can be turned off with
phpstan.showProgress
- Release LSP functionality to the stable channel
- Improve hover functionality
- Also works if a parameter with the same name as a variable is defined on one line
- Also works if a variable that starts with the same name is on the line (
$x
and$xyz
)
- Add
reload
command
- Remove completion-capability that wasn't actually being provided (leading to a popup)
- Add support for type-on-hover in
for
andforeach
loops
- Extension now provides a language server
- Add support for showing type on hover(!)
- Rewrite main phpstan-runner code
- Fix issue with some configurations throwing errors
- Add support for disabling config file
- Fix more windows issues
- Fix file path issues on windows
- Ensure the extension works in a docker container as well (thanks to Grldk)
- Never enable quote paths on non-windows operating systems
- Add some logging
- Only enable quote paths on windows
- Fix issue where paths with spaces were not being resolved correctly (thanks to Balkoth for opening this issue)
- Don't restart check when re-focusing file. Instead continue current check (unless file changed)
- Improve
.neon
file parsing - Don't crash when a single
.neon
value fails to parse - Fix extension not working when using workspace is running under Windows
- Fix extension not working when running VSCode on Windows.
- Show "PHPStan checking errorred" in statusbar if check failed instead of silently failing.
- Fix issue that occurred during bundling that somehow caused an error.
- Don't show timeout message every time an operation ends
- Always show error when timing out (thanks to ljubadr on github for the suggestion)
- Add option for turning off these errors
- Add logging panel under output
- Add release notes
- Automatically times out after some time
- Shows result of last operation in statusbar (relevant when killed because of timeout)
Initial release!