- Update Phan from 5.1.0 to 5.4.1
- See Phan's NEWS for more details.
- Update Phan from 4.0.7 to 5.1.0
- See Phan's NEWS for more details.
- Update Phan from 4.0.4 to 4.0.7
- See Phan's NEWS for more details.
-
Prevent the settings
phan.phpExecutablePath
,phan.phanScriptPath
,phan.analyzedProjectDirectory
,phan.additionalCLIFlags
, andphan.connectToServerWithStdio
from being overridden in VS Code workspace or folder settings. (i.e. configure them with"scope": "machine"
for https://github.com/microsoft/vscode/blob/1.55.2/src/vs/workbench/api/common/configurationExtensionPoint.ts#L50-L55) (CVE-2021-31416) (checking in connectToServerWithStdio in workplace settings is harmless but may break the workflows of other developers working on different machines.) (vscode-php-phan is only intended for use with projects that a developer has manually trusted and enabled through analyzedProjectDirectory, although more convenient ways to securely trust php projects may be added in the future (e.g. using Memento). This is because phan allows executable paths or executable PHP code in third party plugins and InvokePHPNativeSyntaxCheckPlugin, as well as phan config files and due to certain CLI flags and config settings.)The VS code extension version can be downgraded to 3.0.0 if you rely on those workspace settings.
-
Update Phan from 4.0.2 to 4.0.4
-
See Phan's NEWS for more details.
- Increase the minimum php-ast version to 1.0.7+ if php-ast is installed. The VS code extension version can be downgraded to 2.2.0 if you are unable to install/use a newer php-ast or Phan version.
- Update Phan from 3.2.7 to 4.0.2
- See Phan's NEWS for more details.
- Update Phan from 3.2.3 to 3.2.7
- See Phan's NEWS for more details.
- Update Phan from 3.0.5 to 3.2.3
- See Phan's NEWS for more details.
- Update Phan from 3.0.2 to 3.0.5
- See Phan's NEWS for more details.
-
Bump the minimum required php version from 7.1 to 7.2 (because of the Phan version update)
The VS code extension version can be downgraded to 1.2.4 if you are unable to install a newer php version.
-
Update Phan from 2.7.0 to 3.0.2
-
See Phan's NEWS for more details.
- Update Phan from 2.6.1 to 2.7.0
- See Phan's NEWS for more details.
- Disable
phan.useRelativePatterns
by default.
-
Update Phan from 2.5.0 to 2.6.1
-
See Phan's NEWS for more details.
-
By default, limit language client to sending events to files in the corresponding
phan.analyzedProjectDirectory
to the language server(s).This may improve performance and avoid flickering of hover text when there is more than one directory in
phan.analyzedProjectDirectory
phan.useRelativePatterns
can be set tofalse
to disable this if needed (e.g. if a phan config also analyzes files outside of the directory containing./.phan/
)
- Update Phan from 2.4.6 to 2.5.0
- See Phan's NEWS for more details.
- Update Phan from 2.3.1 to 2.4.6
- See Phan's NEWS for more details.
- Update Phan from 2.2.12 to 2.3.1
- See Phan's NEWS for more details.
- Exclude more files from the generated package.
- Update Phan from 2.2.10 to 2.2.12
- See Phan's NEWS for more details.
- Update Phan from 2.2.9 to 2.2.10
- See Phan's NEWS for more details.
- Update Phan from 2.2.5 to 2.2.9
- See Phan's NEWS for more details.
- Update Phan from 2.2.4 to 2.2.5
- See Phan's NEWS for more details.
- Support redundant/impossible condition detection. (Disabled by default. This can be enabled by
phan.redundantConditionDetection
) - Update Phan from 2.1.0 to 2.2.4
- See Phan's NEWS for more details.
-
Increase the minimum php version requirement (
phan.phpExecutablePath
) for running the server to 7.1+ (Phan supports--target-php-version
to specify the version of the code being analyzed)Increase the minimum
php-ast
version requirement to 1.0.1+ (if that extension is installed)The VS code extension version can be downgraded to 0.8.6 if you are unable to install a newer php or php-ast version.
-
Update Phan from 1.3.2 to 2.1.0
-
See Phan's NEWS for more details.
- Update Phan from 1.2.8(dev) to 1.3.2
- See Phan's NEWS for more details.
- Update Phan from 1.2.6(dev) to 1.2.8(dev)
- See Phan's NEWS for more details.
- Update Phan from 1.2.3(dev) to 1.2.6(dev)
- See Phan's NEWS for more details.
- Update Phan from 1.2.1(dev) to 1.2.3(dev)
- See Phan's NEWS for more details.
- Change the way the document filter for this extension is set up to properly be by file extension.
- Make code completion work more consistently after typing
::
or->
. - Other minor improvements to the language server. See Phan's NEWS for more details.
-
Enable Code completion support by default. To disable it, set
phan.enableCompletion
tofalse
.Also see VS Code's documentation for IntelliSense for how to control when/how suggestions show up.
-
Show type signatures in hover text for internal functions/methods.
Also use PHPDoc when rendering type signatures for user-defined functions/methods.
-
Fix variable completion of
$
followed by nothing -
See Phan's NEWS for more details.
-
Enable Code completion support by default. To disable it, set
phan.enableCompletion
tofalse
.Also see VS Code's documentation for IntelliSense for how to control when/how suggestions show up.
-
Enable error tolerant parsing by default.
-
Enable the fallback parser by default (required by code completion)
-
Fix a bug in code completion for variables and static properties.
-
Update Phan from 1.2.0 to 1.2.1 (dev).
-
See Phan's NEWS for more details.
- Update Phan from 1.1.8 to 1.2.0
- See Phan's NEWS for more details.
- Update Phan from 1.1.5 to 1.1.8
- See Phan's NEWS for more details.
- Update Phan from 1.1.2 to 1.1.5
- Fix a bug in the language server causing it to fail when
pcntl
was unavailable (e.g. on Windows) - See Phan's NEWS for more details.
- Update Phan from 1.1.1 to 1.1.2
- See Phan's NEWS for more details.
- Update Phan from 1.1.0 to 1.1.1
- Fix a bug in the language server causing it to never use
pcntl
even when available. If this change causes issues, enablingphan.forceMissingPcntl
is a workaround. - Detect more issue types.
- See Phan's NEWS for more details.
- Update Phan from 1.0.5 to 1.1.0
- Add support for code completion (disabled by default)
- See Phan's NEWS for more details.
- Update Phan from 1.0.4 to 1.0.5
- See Phan's NEWS for more details.
- Update Phan from 1.0.3 to 1.0.4
- Add hover text for variables.
- Improve generating hover summaries from phpdoc.
- Enable hover descriptions and "Go to Definition" support by default.
(Controlled by
phan.enableGoToDefinition
andphan.enableHover
) - See Phan's NEWS for more details.
- Update Phan from 1.0.1 to 1.0.3
- See Phan's NEWS for more details.
- Update Phan from 1.0.1(dev) to 1.0.1
- See Phan's NEWS for more details.
- Update Phan from 0.12.15 to 1.0.1(dev)
- See Phan's NEWS for more details.
- Update Phan from 0.12.14 to 0.12.15
- Add
phan.enableHover
(disabled by default, may be slow) - PHP 7.3.0alpha4 compatibility fixes
- See Phan's NEWS for more details.
- Update Phan from 0.12.14(dev) to 0.12.14
- Add new features and bug fixes. See Phan's NEWS for more details.
- Support "go to definition" for class names within code comments.
- Update Phan from 0.12.13(dev) to 0.12.14(dev)
- Add support for int/string literal union types (in phpdoc and Phan's internal representation)
- Fix more crashes when parsing invalid ASTs, detect a few more issue types.
- See Phan's NEWS for more details.
- Support passing an array of project paths to
phan.analyzedProjectDirectory
to run multiple independent language servers. - Increase minimum vscode version to 1.20.0 to fix
npm run build
issue (typescript warning)
- Upgrade Phan from 0.12.11(dev) to 0.12.13(dev)
- Fix some crashes when parsing invalid ASTs, detect a few more issue types
- See Phan's NEWS for more details.
- Improve reliability of this extension when
pcntl
is unavailable (e.g. on Windows) - Upgrade Phan from 0.12.10 to 0.12.11(dev)
- Support unused variable detection. (Disabled by default. This can be enabled by
phan.unusedVariableDetection
) - Upgrade Phan from 0.12.9 to 0.12.10.
- See Phan's NEWS for more details.
- Add
@phan-suppress-current-line
and@phan-suppress-next-line
to suppress issues on individual lines of a file. - Allow
@phan-file-suppress
to occur anywhere as a comment or doc comment - Make all of Phan's suppression annotations accept comma separated lists of 1 or more issues, instead of just one list. (E.g. for when a group of issues have the same cause).
- Upgrade Phan from 0.12.9(dev) to 0.12.9
- See Phan's NEWS for more details.
- Support "Go To Definition" and "Go to Type Definition"
- Upgrade Phan from 0.12.8 to 0.12.9(dev)
- See Phan's NEWS for more details.
- Upgrade Phan from 0.12.7(dev) to 0.12.8
- See Phan's NEWS for more details.
- Upgrade Phan from 0.12.3 to 0.12.7(dev)
- See Phan's NEWS for more details.
- Upgrade Phan from 0.12.1 to 0.12.3
- See Phan's NEWS for more details.
- Upgrade Phan from 0.12.0 to 0.12.1
- See Phan's NEWS for more details.
- Add initial support for analyzing code for different php minor versions (PHP 7.0, 7.1, and 7.2). Previously, this extension acted as though the codebase used php 7.1. For best results, the PHP binary used to run Phan should be the same minor version as the PHP 7.x version used to run the codebase.
- See Phan's NEWS for more details.
-
Allow running this extension without
pcntl
installed. (pcntl
was not available for Windows) Previously,pcntl
was required to allow Phan to fork and run analysis in a thread that did not affect the main thread. (This is no longer mandatory)To make this extension refuse to start if
pcntl
is not installed, setphan.allowMissingPcntl
to false. -
Add initial support for array shapes and allow using array shapes in phpdoc. (E.g.
['x']
is now inferred asarray{0:string}
instead ofarray<int,string>
) -
See Phan's NEWS for more details.
-
By default, allow running this extension without
php-ast
installed. Note that the polyfill has bugs in a few edge cases (e.g. getting phpdoc for closures, successfully parsing uncommon PHP syntax). This polyfill is based ontolerant-php-parser
.To make this extension refuse to start if
php-ast
is not installed, setphan.allowPolyfillParser
to false. -
Fix a bug where Phan would fail to parse and analyze files that were added to the project after startup.
-
Analyze all PHP files that are in other open tabs or split windows. Previously, Phan would analyze only the most recently changed file.
-
If file change notifications are being sent to Phan faster than Phan can re-analyze the open files, make Phan batch the file change notifications before parsing and analyzing the project. (batched along with file open/close/delete notifications)
This change to Phan should help improve Phan's responsiveness (e.g. if editing large files).
-
Update Phan.
See Phan's NEWS for more details
-
Add an option
phan.connectToServerWithStdio
to allow clients to continue to use stdio to communicate with the Phan language server. (Issue #8) -
Update Phan.
Fix an edge case where the forked language server analysis worker might read a request intended for the main process of the Phan language server (this could happen if multiple requests were sent before Phan could respond)
-
Bump Phan version in composer.lock from 0.10.3 to 0.10.4-dev See Phan's NEWS for more details
- Phan supports analyzing
array<int,T>
andarray<string,T>
syntax in PHPDoc and in Phan's internal type system. (Previously, Phan would internally represent generic arrays asT[]
(i.e. wouldn't track key types)) - Various improvements and bug fixes.
- Phan supports analyzing
-
Add a new VSCode configuration option
phan.analyzeOnlyOnSave
(off by default). (#6) If you set this to true, Phan will analyze the file only when you open/save the file (And not while editing or typing). This is useful on large projects or PHP files. -
Change the default transport for communicating with the Phan language server from stdio to TCP. (Stdio may block when large requests/responses are sent)
-
Bump Phan version in composer.lock from 0.10.3-dev to 0.10.3 See Phan's NEWS for more details.
- Upgrade the library used for the language server implementation.
- Don't warn when passing
?T
(PHPDoc or real) where the PHPDoc type wasT|null
.
-
Bump Phan version in composer.lock from 0.10.2-dev to 0.10.3-dev See Phan's NEWS for more details.
- Reduce latency of analysis.
- Do a better job of analyzing statements in code with syntax errors. Switch to tolerant-php-parser as a dependency of the fallback parsing implementation.
-
Bump Phan version in composer.lock from 0.10.1 to 0.10.2-dev See Phan's NEWS for more details.
- Reduce memory usage on small projects.
- Support less ambiguous
?(T[])
and(?T)[]
in phpdoc. - Improved analysis of callables.
- Bump Phan version in composer.lock from 0.10.1-dev to 0.10.1. See Phan's NEWS for more details.
- Support
phan.memoryLimit
setting to limit Phan's memory usage.
- Bump Phan version in composer.lock. Support new Phan plugin types. Include History in README.md
- Improve documentation. Mention that Visual Studio Code must be restarted in order to pick up any changes to this editor's phan settings.
- Reword README, rename extension to php-phan