Changelog

1.4.7597

Thursday, 30 Sep 2021
  • updated inefered type analysis of built-in functions
  • highlights case within switch
  • fixed possible stack overflow exception

1.4.7534

Tuesday, 21 Sep 2021
  • fixes crash when code contains huge nested expressions
  • fixes language server protocol
  • improves code analysis for array_pad(), array_fill()
  • fixes false positive warning for chained use of [] in LValue
  • memory optimizations

1.4.7520

Sunday, 19 Sep 2021
  • memory optimizations
  • fixes crash when code contains huge nested expressions

1.4.7494

Wednesday, 15 Sep 2021
  • function return value summary displayed in tooltips
  • fixes refactoring actions
  • fixes code actions
  • fixes PHPDoc generator
  • optimizes protocol

1.4.7449

Tuesday, 7 Sep 2021
  • improves analysis of $this
  • improves error reporting of unused variables
  • fixes whole document formatting
  • fixes formatting of variable-less catch
  • fixes occasional issue when no debug port is specified
  • internal performance improvements for JSON protocol
  • fixes debugging documents without a workspace (just an opened file without workspace or folder)
  • updated PHP manual
  • fixes PHP parser - readonly is treated as it should according to PHP version

1.4.7295

Tuesday, 17 Aug 2021
  • PHP 8.1 syntax, code sense, and checks
    • read-only properties
    • final class const
    • new in initializers
    • new callable syntax
  • updated PHP manual
  • fixes incorrectly reported deprecations
  • fixes incorrect parameteres with 'null' type hint

1.4.7254

Sunday, 15 Aug 2021
  • Debug
    • allows compound launch
    • allows more debug sessions at once
    • Xdebug port doesn't have to be specified (the "port" launch configuration)

1.4.6982

Thursday, 15 Jul 2021
  • when auto-import enabled, completions shows all possible types within possible namespaces
  • automatically completes fully-qualified-name when auto-importing and there is a conflict with existing alias
  • shows (auto import) in completion, if auto-importing will happen
  • completion better lists variables
  • optimizations
  • when there are multiple types to auto-import, they are all shown in the completion list to choose from

1.4.6842

Tuesday, 22 Jun 2021
  • automatic import of alias when completion
  • setting php.format.autoimport
    • auto-import option: auto imports alias when completing types/function/constants out of namespace scope
    • fqn: inserts fully qualified name upon completion
    • none: inserts name as it is
    • hide: does not show inaccessible symbols in code completion
  • fix position of light bulb for code action for fully qualifying name
  • strikes out deprecated symbols in code completion

1.4.6822

Saturday, 19 Jun 2021
  • updated code analysis and code completion
  • recognizes more undocumented .phpstorm.meta.php constructs (#102)
  • fixes PHPUnit TestCase MockObject type analysis (#102)
  • code action for simplifying fully qualified names (#88)

1.4.6762

Monday, 7 Jun 2021
  • PHP version picker (see Selecting PHP in docs)
  • .editorconfig problems conventions (see Problems in docs)
  • "php.problems.scope" setting (ignoring "vendor" folder by default) (see Problems in docs)
  • debugging improvements
  • exception handling - always break on fatal error, option to choose whether to break on handled errors/exceptions

1.3.6645

Tuesday, 25 May 2021
  • debugging fixes and improvements
  • debugging UX improvements

1.3.6632

Friday, 21 May 2021
  • Test Explorer lists tests without running them
  • Test Explorer supports tests with data sets properly
  • tests get retired (grayed) if the source is modified
  • optimized debug protocol

1.3.6616

Friday, 21 May 2021
  • new Test Explorer (requires hbenl.vscode-test-explorer)
  • debugging has been updated with support for multiple request handling, stability enhancements, corectness
  • debugging supports detach
  • optimizes Xdebug protocol
  • PHP 8.1 syntax support, never return type, enum, octal number notation
  • completion of static methods after $this->
  • #[NoReturn] attribute supported

1.2.6549

Wednesday, 12 May 2021
  • fixes debug implementation (unexpected debug sessions closing)
  • fixes debug breakpoints
  • optimizes Xdebug protocol
  • fixes HEREDOC parser
  • fixes named parameters analysis for special names
  • fixes PHP 8 parsing and invalid syntax errors
  • optimizations

1.2.6469

Saturday, 24 Apr 2021
  • code action for sort uses (PSR-12)
  • reports curly braces as deprecated since PHP 8.0
  • support for remote file systems
  • type analysis improvements

1.2.6305

Sunday, 4 Apr 2021
  • shows PHP version in status bar without suffix
  • hotfix for macOS, downloading runtime package

1.2.6273

Tuesday, 30 Mar 2021
  • code action for generating constructors
  • code action for getter/setter respect field staticness
  • fixes code actions
  • faster code completion popup
  • faster tooltip display for variables

1.2.6177

Wednesday, 17 Mar 2021
  • memory optimizations
  • fixes for Node.JS on IA-32 architectures
  • fixes PHP0423 for ambigous function declarations
  • does not list names of anonymous classes in completion

1.2.6021

Wednesday, 17 Feb 2021
  • PHPDoc generated for local variables and globals when user types /** above them
  • updated PHP manual with more PHP 8 declarations
  • pretty-print after ::class and fn fixes
  • avoided a few falsely reported problems
  • fixes type analysis for reserved keywords within PHPDoc @return tag
  • more details in tool-tips for built-in type keywords
  • DBGp Proxy support fixes for the server downloaded from the Xdebug home page

1.2.5988

Wednesday, 10 Feb 2021
  • fixes language server crash (stack overflow exception)
  • more tollerant problems validation
  • code analysis improvements

1.2.5973

Monday, 8 Feb 2021
  • code analysis overall improvements, finally blocks fixes, constrained constants not reported
  • refactoring and highlight occurence fixes for global constants in a namespace
  • improved performance
  • (linux, macOs) fixes server not being closed after VSCode shutdown or folder closed

1.2.5931

Sunday, 31 Jan 2021
  • rename refactoring allows to rename dynamic names
  • language server crash fix when __construct contains trailing comma
  • updated pcre check
  • type analysis improvements, less falsely warnings
  • improved analysis of standard functions
  • improved analysis of try/catch blocks
  • tolerant to mismatching PHPDoc type annotation of properties
  • type check looks into subtypes of traits and interfaces, not being so strict
  • fixed code actions and quick fixes

1.2.5887

Saturday, 23 Jan 2021
  • rename refactoring with preview
  • pretty print of use groups
  • built on .NET 5.0 (having .NET 5.0 Runtime avoids additional downloads)
  • treats subtypes when resolving methods
  • handles trait users improving analysis of trait and go to definition for methods in subtypes
  • improves code analysis and type analysis
  • avoids a lot of falsely warnings
  • go to definition of parent of anonymous class fix

1.2.5843

Monday, 18 Jan 2021
  • files in source controlled folders are ignored when changed (.git, .history, .svn)
  • fixes PHP version in status bar - only shown when editing a PHP file
  • optimizations
  • updated PCRE check
  • fixed code completion at the very end of document

1.2.5783

Monday, 4 Jan 2021
  • respects @template annotation in PHPDoc
  • handles inline @var annotation
  • signature help for ambiguous constructors (new \ReflectionMethod)
  • PHPDoc array type with union elements annotation (array<A\B\C>)
  • PHPDoc allows for nullable type annotation (e.g. ?int)
  • optimizations
  • improves code analysis, avoids some false positives
  • improves code flow analysis, isset(), is_resource(), and type inference
  • improves analysis for lambda function use variables
  • CLI specific constants and variables are allowed and code completed
  • updates .phpstorm.meta.php parser for type inference
  • does not respect PHP4-style ctor when using PHP 7.1+
  • fixes "Go to Implementation" in case of an anonymous class
  • fixes return check of generator functions
  • fixes check for __clone() magic method, can be private
  • fixes check for array access on \SplObjectStorage
  • fixes case and array key duplicity check for non-printable characters

1.1.5686

Wednesday, 23 Dec 2020
  • support for @mixin annotations
  • support for @method annotation with $this return type
  • handles nullable type annotation in PHPDoc
  • fixes resolution of type names in PHPDoc blocks
  • fixes some incorrectly reported warnings (mostly an unknown method warning)
  • updated pcre check
  • can be installed on linux-arm64
  • improves type names in tool tips
  • code formatting for match expressions
  • fixes code validation of class declaration
  • updated integrated PHP manual

1.1.5620

Saturday, 12 Dec 2020
  • syntax checks respect current PHP version including 8.0.
  • more quick fixes for invalid union types
  • updated pcre check
  • tool-tip type names rendered shorter

1.1.5595

Friday, 4 Dec 2020
  • named arguments code completion (PHP 8)
  • named arguments hover information
  • functions annotated with #[Deprecated] attribute reported in diagnostics
  • diagnostics for matching or unknown named arguments (PHP 8)
  • diagnostics for iterable type hint
  • diagnostics for nullable types
  • diagnostics for union types (PHP 8)
  • null type name within unions (PHP 8)
  • improved .phpstorm.metadata.php annotations
  • support for Xdebug 3.0 and PHP 8.0 debugging

1.1.5532

Saturday, 21 Nov 2020
  • updated PSR-2 code formatting
  • warning PHP0415 for use of an undefined constant
  • warning PHP0418 for use of an undefined method
  • code fix for PHP0415 if it might be a local variable
  • doctrine annotations in code completion
  • fixes class name completion within PHPDoc
  • updated global constants in code completion and analysis
  • updated PHP manual translations

1.0.5403

Wednesday, 28 Oct 2020
  • analysis of class properties
  • fixes type hint for magic methods
  • stability fixes

1.0.5342

Tuesday, 20 Oct 2020
  • PHP 8 new attribute syntax #[]
  • more code suggestions
  • improves unused use diagnostic when used in PHPDoc
  • improves underlining of problems in opened document when typing
  • @suppress and @SuppressWarnings PHPDoc tags allowing to ignore specified warnings within class/function
  • supports more PHPDoc array syntax conventions
  • improves analysis of isset() and new static()

1.0.5264

Wednesday, 30 Sep 2020
  • fix for double-dollar $$ character in code completion of a variable

1.0.5229

Tuesday, 22 Sep 2020
  • diagnostic and quick fix for names that can be simplified
  • diagnostic for unused parameters in constructors and private functions
  • updates of externally modified files (*.php)

1.0.5153

Friday, 28 Aug 2020
  • @dataProvider PHPDoc attribute; code sense, navigation, completion
  • implement missing abstracts quickfix respects original public keyword
  • PHP 8.0 null-safe operator supported
  • PHP 8.0 match construct supported (must have PHP >=8.0 phpExecutable)
  • fix of quick fix for overlapping problems
  • stability fixes

1.0.5087

Monday, 17 Aug 2020
  • deduplicated quick fixes
  • improved type analysis of expressions enclosed in parenthesis
  • unknown type name in PHPDoc gets quick fix
  • mouse hover shows whether function returns null as well (void is shown as null eventually)
  • go to implementations for methods
  • provides quick fix for invalid base classes
  • code completion after namespace keyword

1.0.5044

Tuesday, 11 Aug 2020
  • quick fix for unknown class names in PHPDoc
  • quick fix to remove unnecessary use
  • iterable phpdoc type hint
  • load status indicator in status bar at left
  • current PHP version indicator in status bar (bottom right)
  • workspace re-analysed lazily when code is changed (disable with "php.problems.workspaceAnalysis": false)

1.0.5029

Friday, 7 Aug 2020
  • "go to implementations" support
  • SonarSource.sonarlint-vscode not reported as incompatible
  • fixes "go to" of interface names after extends keyword
  • deprecations are rendered with a strike through

1.0.5015

Thursday, 6 Aug 2020
  • "find all references" of __construct includes class instantiations
  • "find all references" perf.
  • problems analysis improvements
  • improved analysis of inline PHPDoc type hints
  • some problems related to other problems are not reported
  • parser fixes

1.0.4975

Wednesday, 29 Jul 2020
  • performance improvements
  • problems analysis improvements
  • improves workspace loading
  • logging of workspace load failures

1.0.4934

Sunday, 19 Jul 2020
  • standalone @deprecated not ignored
  • few performance improvements
  • fixes duplicities in reported problems
  • some problems caused by other problems not reported
  • workspace loading and code editing improvements

1.0.4908

Monday, 13 Jul 2020
  • less falsely positive warnings
  • improved type analysis of static and properties
  • PHP 8.0 (Alpha 1) syntax supported
  • New PHP 8.0 compatibility warnings
  • fixed implements abstracts for trait members
  • improved formatting when using tabs

1.0.4698

Tuesday, 19 May 2020
  • better placement of use quick action

1.0.4666

Wednesday, 6 May 2020
  • fixes for systems without .NET Runtime (3.x or 5.x) installed

1.0.4654

Tuesday, 5 May 2020
  • improved run of all tests (runs within single process now)
  • PHPDoc type hints in @method respect current namespace
  • locals in arrow function used from parent scope and annotated properly

1.0.4608

Friday, 17 Apr 2020
  • configuration snippet for Launch current script in console fixed
  • HTML tooltips in PHP script
  • < triggers HTML completion
  • PCRE patterns check (within preg_* functions)
  • PHPDoc @method with vararg supported
  • unused use highlighting respects custom PHPDoc tags
  • Test Explorer fixes:
    • debugging session closed after test finishes
    • test cases can be debugged without additional configuration
    • fixes exception upon test run

1.0.4394

Thursday, 23 Jan 2020
  • fixed completion of variables ($ prefix is not duplicated)

1.0.4277

Tuesday, 10 Dec 2019
  • code flow analysis improvements for finally blocks
  • makes use of dotnet 3.1 if installed on the system
  • minor fixes, and updates to stabilty issues

1.0.4229

Friday, 22 Nov 2019
  • Implement abstracts code action & quick fix (interfaces and abstract members)
  • Add getter/setter code action for fields and multiple fields
  • updates to stability issues

1.0.4187

Sunday, 10 Nov 2019
  • code editor fixes (occuring when format on save, format on paste)
  • completion inside PHPDoc

1.0.4168

Monday, 4 Nov 2019
  • improved listing symbols in document/workspace
  • listing properties when searching prefixed with $
  • navigation to trait uses

1.0.4145

Thursday, 24 Oct 2019
  • problems check for not implemented functions
  • problems check for traits
  • improved tooltips and performance
  • updated builtin PHP manual
  • debugger reports common issues human friendly

1.0.4009

Monday, 23 Sep 2019
  • {@link} in tooltips shown as hyperlink
  • {@inheritdoc} gets substituted according to PHPDoc specs.
  • updated blade templating editor (@section, @yield) and formatting fixes
  • embedded HTML fixes
  • stability fixes, improved internal error logging
  • reporting problems improvements

1.0.3951

Monday, 9 Sep 2019
  • generated PHPDoc respects type hints
  • generated PHPDoc treats nullable types correctly
  • language server crash fix
  • avoids spawning rg.exe when running composer install|update (fixes system freezing)

1.0.3936

Thursday, 5 Sep 2019
  • PHAR files in workspace get parsed
  • code completion includes declarations from PHAR files
  • go to definition supports content in PHAR files
  • navigation through entries in PHAR files
  • signature help and tooltips for declarations in PHAR files
  • minor fixes and improvements

1.0.3774

Thursday, 1 Aug 2019
  • formatting of typed properties
  • completion after use is filtered by class name
  • obtaining long data from Xdebug

1.0.3748

Wednesday, 24 Jul 2019
  • classes/interfaces/traits not available in current namespace or uses are not listed in code completion
  • dynamic class aliasing supported in code completion and type analysis (class_alias() and Joomla registered aliases)
  • PHP in blade blocks (.blade.php) (except syntax highlighting)
  • improved type analysis of arguments passed by reference
  • fixed pasting when Format on Paste is enabled (HTML was corrupted)

1.0.3703

Wednesday, 17 Jul 2019
  • performance optimizations
  • php.problems.workspaceAnalysis setting to enable/disable workspace-wide problems analysis
  • array unpack type check

PHP 7.4 support

  • PHP 7.4 support (arrow functions, typed properties, spread array, ??= operator, underscores in numbers)
  • PHP 7.4 features reported when using PHP < 7.4
  • PHP 7.4 features analysis, type analysis, problems analysis
  • spread array type check

1.0.3645

Thursday, 11 Jul 2019
  • improved project load and background analysis
  • .phpstorm.meta.php (version 2016.2+) processed
  • Code completion and analysis of IoC
  • fixed formatting for nullable types
  • formatting pretty-prints opening bracket {
  • formatting code style defaults to PSR-2

1.0.3603

Monday, 8 Jul 2019
  • fixed issue when some warnings disappear and after few secs appear
  • improved CPU use when opening/closing documents
  • fixed formatting around ?: and ::
  • improved code analysis evaluation
  • less strict analysis of use of uninitialized variables
  • completion after use gets fully qualified names

1.0.3593

Friday, 5 Jul 2019
  • diagnostics of magic methods
  • diagnostics of duplicit function parameters
  • improved type analysis of numbers
  • launching debugger enhancements
  • PSR-2 formatter fixes

1.0.3574

Tuesday, 2 Jul 2019
  • improved type analysis of explode(), microtime(), Oxid framework
  • catch variable diagnostics and analysis

1.0.3547

Thursday, 27 Jun 2019
  • formatter improvements
  • DBGP proxy support
  • improved unused variable diagnostic

1.0.3525

Monday, 24 Jun 2019
  • anonymous functions type analysis
  • anonymous functions annotated with PHPDoc
  • anonymous functions details in tool tips
  • signature help with function return type
  • dimmed unused variables
  • loading project performance, responsiveness

1.0.3507

Saturday, 22 Jun 2019
  • fixed increasing number of untitled documents upon code format
  • type analysis improvements
  • inital support for dbgp proxy

1.0.3483

Monday, 17 Jun 2019
  • updated PHP manual
  • validation of value passed to define()
  • validation of use of define() on PHP >= 7.3

1.0.3471

Wednesday, 12 Jun 2019
  • support for logpoints
  • php.format.codeStyle can be set in the workspace scope
  • code formatting fixes, indentation after opening tag, blocks on a new line
  • html+php formatting fix for overlapping ranges error

1.0.3435

Tuesday, 28 May 2019
  • fix for disabling breakpoints
  • optimized debug protocol

1.0.3428

Monday, 27 May 2019
  • updated PHP manual for the latest PHP 7.3 and PHP 7.4 constructs
  • updated readme

1.0.3386

Thursday, 9 May 2019
  • Disabled warning PHP0424 when passing an object in foreach
  • Analysis of use params within lambda function
  • Minor code navigation fixes
  • Minor code formatting fixes

1.0.3348

Tuesday, 23 Apr 2019
  • signature helper fixed, showing the correct parameter
  • fixes running the extension when there is no dotnet
  • works with dotnet 3.0

1.0.3241

Monday, 4 Mar 2019
  • PHPDoc generation with parameter names

1.0.3230

Wednesday, 27 Feb 2019
  • PHPDoc blocks inserted with placeholders (snippet)
  • PHPDoc tags snippets
  • PHP compatibility warnings
  • fixed not disappearing warnings after file delete
  • fixed pretty-print of die() construct
  • fixed formatting for function headers and properties

1.0.3202

Wednesday, 20 Feb 2019
  • updated PHP manual
  • format on type (; and })
  • format profile Off
  • formatting not applied when code is syntax invalid

1.0.3185

Thursday, 14 Feb 2019
  • code completion in PHPDoc for PHPDoc keywords (after @)
  • code actions for typos in PHPDoc and unknown type names in PHPDoc

1.0.3174

Tuesday, 12 Feb 2019
  • code action for adding use ; when applicable
  • code action to fully qualify type name when necessary
  • generating PHPDoc when user types /** (formatOnType must be enabled)
  • selection format
  • localized messages - en, de, ja, tz, es

1.0.3058

Sunday, 30 Dec 2018
  • improved code formatting
  • few texts localized to german

1.0.3031

Monday, 3 Dec 2018
  • folding collapses the inner range
  • formatting code style setting php.format.codeStyle
  • PHPDoc for local variables with multiple @var/@global tags
  • code suggestion to add $this-> if applicable

1.0.3003

Monday, 26 Nov 2018
  • code suggestion for an unknown class error
  • unnecessary use directives are rendered as fade out
  • F10 and F11 start debugging and stop on entry
  • exclude launch configuration - patterns that will be skipped from debugging when stepping
  • debugger allows setting a variable or property value
  • debugger supports long strings
  • debugger supports paging for large arrays
  • test explorer optimization
  • generated files are not included in user's workspace
  • test explorer shows only user's tests, only if there is no phpunit.xml in root then all tests in recursive dirs are listed

1.0.2930

Saturday, 3 Nov 2018
  • display language setting phpTools.language can be changed without reloading the workspace
  • changing setting php.problems.exclude updates the problems window
  • a file changed outside the editor gets updated
  • stability fixes

1.0.2915

Tuesday, 30 Oct 2018
  • debugger allows inspecting stack frames and locals value
  • experimental: setting files.exclude is handled
  • experimental: setting php.problems.exclude allows ignoring specified folders and all or specified problem codes
  • not completing items right after <?
  • highlighting references under caret optimization

1.0.2895

Tuesday, 23 Oct 2018
  • project problems are updated after the workspace is loaded
  • some false warnings are not reported
  • pathMappings launch configuration
  • fix: closing language server process on Unix systems
  • fix: working with large mixed HTML/JS/CSS/PHP code
  • signature help for new objects
  • memory and perf. optimization
  • stability fixes
  • project startup optimizations
  • code folding for all parenthesis

1.0.2802

Thursday, 11 Oct 2018
  • option to activate license/request trial offline
  • option to mute warning about missing PHP
  • tests are not loaded and run automatically (either enable autorun or click reload/start)
  • debug watch tooltip provides expandable object properties
  • more detailed output log about PHP and Xdebug that will be used for debugging/tests
  • F5 starts debugging of current script even without having launch.json configuration
  • does not provide basic completion after : (but ::)
  • code completion handles ambiguous trait declarations

1.0.2765

Monday, 8 Oct 2018
  • Symbols in workspace feature.
  • Processing all files mapped to php language.
  • Code completion improvements.

1.0.2738

Wednesday, 3 Oct 2018
  • Test Explorer detects phpunit.xml.dist to get enabled
  • code completion handles ambiguous types better
  • short open tags <? allowed if there is no normal open tag <?php
  • updated readme and documentation
  • re-enabled completion after $ (fixes recent update in VSCode)

1.0.2681

Thursday, 27 Sep 2018
  • option to request trial license
  • downloading dependencies from CDN
  • updated the extension's publisher ID

1.0.2590

Friday, 14 Sep 2018
  • triggering completion after ->, $, \, ::
  • code folding for blocks, comments, PHPDoc and regions
  • language server providing
    • code completion
    • hover
    • formatting
    • code structure
    • signature help
    • find all references
    • navigation
    • go to definition
    • refactoring
    • highlighting
  • code analysis and validation
  • debug support
    • watch
    • debug mouse watch
    • breakpoints
    • UNC paths
    • path mapping
    • remote debug, console, built-in server
  • workspaces
  • UNC paths
  • built-in PHP server
  • PHPUnit Test Explorer
    • Live testing
    • Tests debugger
    • Tests browser
  • Initial version of PHP Tools for VS Code