Skip to content

Releases: bmewburn/vscode-intelephense

1.17.7

20 Apr 02:40

Choose a tag to compare

1.17.7 Pre-release
Pre-release

[1.17.7 - 2026-04-20]

Fixed

  • require document links not working when the expression is a simple string literal.

1.17.6

19 Apr 03:22

Choose a tag to compare

1.17.6 Pre-release
Pre-release

[1.17.6 - 2026-04-19]

Changed

  • Indexing now uses LSP work done $/progress notifications instead of custom notifications.
  • Indexer file queue processing debounce increased to 500ms.
  • On-type diagnostics debounce reduced to 1000ms.

Fixed

  • Empty array shapes showing parse error.
  • Should not narrow variable type when using is_a and is_subclass_of with $allow_string value of true and variable type of string.
  • Editing a file causing promoted properties to become undefined.
  • Editing a file causing definition location inaccuracies.
  • Duplicate/unecessary indexing when responding to file change events.
  • Editing a file causing anonymous class type hierarchy bug.

1.17.5

08 Apr 04:04

Choose a tag to compare

1.17.5 Pre-release
Pre-release

[1.17.5 - 2026-04-08]

Added

  • throwDepth setting to control maximum call depth when analysing throw expressions. Defaults to 0 (current call declaration body only). Max 10. Higher values may impact performance.

Changed

  • Methods declared with @method with no return type are given return type of void instead of mixed.
  • @param type is now optional.
  • Tweaked suggestion order.

Fixed

  • False no type information available diagnostic when property/parameter inherits documented type.
  • False method compatibility error when a trait method and interface method return self.
  • bool subject type not expanded to true|false when comparing to true in conditional type.
  • No import quickfix for undefined PHPDoc types.
  • Incorrect method description shown in hover when multiple methods of same name are declared using @method.
  • Array access type inferred as mixed when subject is a template type with array shape constraint.
  • False undefined phpdoc type in constant unions.

1.17.4

23 Mar 04:33

Choose a tag to compare

1.17.4 Pre-release
Pre-release

[1.17.4 - 2026-03-23]

Added

  • More diagnostics.
  • Setting intelephense.diagnostics.suspectCode to control whether suspected problems in the code should be reported. Diagnostics grouped under this setting include duplicate array keys, duplicate switch/match cases, loop variable overwriting, void assignment, assignments in control expressions.
  • Find all references and rename now works for variable references listed in compact arguments.
  • Setting to control if method override/implementation suggestions should include a placeholder method body -- intelephense.completion.withMethodBody. Defaults to true.
  • Partial support for custom assertions. @assert, @psalm-assert, @phpstan-assert and *-if-false and *-if-true variants supported. Only type assertion of simple variable arguments is currently supported. For example @assert string $param and passing $var as the argument. Multiple assertions targeting the same parameter are not supported, ie, adding both an *-if-true AND *-if-false annotation.

Changed

  • Method override/implementation suggestions now include #[Override] attribute when PHP target version is 8.3+. To disable adding this attribute set intelephense.completion.withOverrideAttribute to false.
  • Improved how unused variable reporting works when compact is encountered.
  • Improved type inference of array elements when key is a simple variable.
  • Improved template type resolution for templates that appear in constraints of other templates.
  • Find all implementations now works for all methods, previously it was restricted to abstract or interface declared methods.
  • Find all declarations will now get the root declaration(s) in a type hierarchy regardless of whether it is an interface or abstract declaration.
  • Crash telemetry now defaults to disabled.

Fixed

  • False method compatibility error with abstract trait method and base class with final method implementation.
  • Highlight not working when origin is variadic parameter in PHPDoc.
  • Added back auto prefix $ to variable renames if applicable.
  • Reference/rename not working for variables in anonymous class declaration argument list.

1.17.3

04 Mar 03:29

Choose a tag to compare

1.17.3 Pre-release
Pre-release

[1.17.3 - 2026-03-04] - Pre-release

Added

  • Setting intelephense.diagnostics.suppressUndefinedMembersWhenMagicMethodDeclared to configure if undefined method and property diagnostics should be suppressed if magic methods are declared. Defaults to true.
  • Setting intelephense.diagnostics.severity to configure the severity of each diagnostic.
  • Setting intelephense.diagnostics.strictTypes to configure type checks to be performed as if declare(strict_types=1) has been declared in every file. Defaults to false.
  • Setting intelephense.diagnostics.exclude to disable some or all diagnostics on a per file basis.

Fixed

  • Various control flow analysis and type inference issues.
  • PHPDoc completion missing @throws or showing @throws mixed.

1.17.2

23 Feb 02:45

Choose a tag to compare

1.17.2 Pre-release
Pre-release

[1.17.2 - 2026-02-23] Pre-release

Added

  • More diagnostics.
  • PHP 8.5 (void) cast.

Changed

  • Updated stubs.

Fixed

  • False namespace declaration must be first statement when doc block preceedes declaration.
  • False ctor cannot declare return type error for anon function.
  • class_alias aliases not recognised if class constant used to declare alias name.
  • Templates in @param-closure-this not resolved.
  • False possible undefined variable after try-catch-finally block.

1.17.1

18 Feb 02:25

Choose a tag to compare

1.17.1 Pre-release
Pre-release

[1.17.1 - 2026-02-18] Pre-release

Added

  • More diagnostics.

Fixed

  • Various diagnostic fixes.
  • Implement all abstract methods not working for anonymous classes.
  • Incorrect array creation type inference when one or more elements is a union type.
  • Constant values not being computed when declared using an expression rather than a literal value.

1.17.0

09 Feb 00:48

Choose a tag to compare

1.17.0 Pre-release
Pre-release

[1.17.0 - 2026-02-09] Pre-release

Added

  • Inline values provider for better synergy with xdebug extension.
  • Support for @mixin with an intersection type.
  • Support for value-of<T> type.
  • Support for default template type arguments eg @template T of bool = false.
  • More diagnostics.

Changed

  • Signature help now uses short type names instead of fully qualified type names to increase legibility.
  • Variables can be now renamed to expressions, for example $value => $this->value.
  • When not provided by the client, default storage will be the following:
    • *nix
      • storagePath - $XDG_CONFIG_HOME/intelephense/workspace/ or $HOME/.config/intelephense/workspace/
      • globalStoragePath - $XDG_CONFIG_HOME/intelephense/global/ or $HOME/.config/intelephense/global/
      • licenceKey - $globalStoragePath/licence.txt or $globalStoragePath/license.txt
    • Windows
      • storagePath - %AppData%/intelephense/workspace/ or %UserProfile%/intelephense/workspace/
      • globalStoragePath - %AppData%/intelephense/global/ or %UserProfile%/intelephense/global/
      • licenceKey - $globalStoragePath/licence.txt or $globalStoragePath/license.txt

Fixed

  • Conditional type where a parameter template type is the subject yielding unexpected type when argument is a union.
  • Closure static return type resolved too early.
  • False type error when comparing an array shape to a typed array.
  • Various diagnostics issues.

1.16.5

01 Feb 23:56

Choose a tag to compare

[1.16.5 - 2026-02-02]

Fixed

  • CodeActionContext.only being ignored for some code actions.
  • Global function and constant suggestions prefixed with \ when not configured to.
  • Implementations code lens not working for hooked properties.
  • Document highlight not working when origin is within phpdoc.
  • Abstract hooked properties not reported as not implemented.
  • PHPDoc immediately following another PHPDoc being ignored in class member lists.

1.16.4

16 Jan 03:44

Choose a tag to compare

[1.16.4 - 2026-01-16]

Fixed

  • Bad parsing of @param union type when followed by by-reference parameter.
  • Template types not resolving to boolean literals.
  • xor breaking language intelligence in subsequent code.
  • Anonymous class methods being added as object shape properties.
  • Variable hover contains @var information for other variables when using array destructure syntax.
  • Index access types not resolved in some contexts.
  • Property type being lost when there is both an annotated and declared property of the same name.
  • Type alias that references another type alias not resolved fully.
  • Variable types reported as never in catch blocks if there are no assignment expressions in try block.
  • Type hinting $this as a union type ignored.
  • Function FQSEN in @see not recognised.
  • Dot files not being excluded even though they match an exclude glob.
  • PHPDoc optional closure parameters not parsed correctly.