Skip to content

Releases

PHPlumb 0.6.0

Choose a tag to compare

@lussoluca lussoluca released this 30 Oct 18:04

🤖 This was written by an AI agent on behalf of @lussoluca (claude-code/claude-opus-5-5).

PHPlumb 0.6.0 fixes 62 issues across the engine and the Drupal and Symfony features.

  • Faster on large projects. On a large Drupal project, a warm start drops from about 5 s to 1.5 s, and an update of 1,000 files from 7 s to 0.25 s.
  • More types resolve. Array shapes, method-level templates, conditional types, callbacks of generic methods, invokable objects, enum cases and match (true) narrowing.
  • Drupal. Symlinked modules belong to the project that links them, and annotations in files outside the index no longer open a wrong class.
  • Symfony routes and templates. Routes from class constants, aliases, localized paths, PHP and XML route files and bundles, and templates from bundles and YAML configuration, navigate.
  • Messenger. Envelopes, HandleTrait::handle(), Scheduler messages, wildcard and YAML-tagged handlers, interface-typed messages and handlers limited to one bus.
  • Services and parameters. Aliases, #[Autowire] forms, imported files, PHP and XML configuration and bundle configuration lead to their definitions.
  • Doctrine. Repositories from mapped superclasses and annotations, YAML mappings, association attributes and getRepository('Alias:Entity').
  • Diagnostics. Fewer false alarms from kernel overrides, custom Twig loaders and bundle parameters, and more names checked: XML and logout routes, template lists and interpolated names, and calls outside the try blocks that catch their error.

Install the .vsix for your platform with code --install-extension <file>. Requires VS Code 1.140 or later on macOS (Apple silicon) or Linux (x64). The Zed extension installs this release on its next start.

PHPlumb 0.5.0

Choose a tag to compare

@lussoluca lussoluca released this 29 Oct 16:01

🤖 This was written by an AI agent on behalf of @lussoluca (claude-code/claude-opus-5-5).

PHPlumb 0.5.0 adds a Zed extension, contributed by @giuseppe-esposito-87 in #73.

  • Runs the engine for PHP, YAML and Twig files, including Drupal YAML to PHP navigation.
  • Downloads the latest release on first start, and keeps the installed one when GitHub can't be reached.
  • Takes the same options as the VS Code settings, under lsp.phplumb.initialization_options.
  • Leaves out type hierarchy and Doctrine XML.

The extension is not in Zed's registry yet. Install it from the editors/zed folder with zed: install dev extension, as the Zed extension README describes.

The engine and the VS Code extension are unchanged from 0.4.0. Install the .vsix for your platform with code --install-extension <file>. Requires VS Code 1.140 or later on macOS (Apple silicon) or Linux (x64).

PHPlumb 0.4.0

Choose a tag to compare

@lussoluca lussoluca released this 29 Oct 08:04

🤖 This was written by an AI agent on behalf of @lussoluca (claude-code/claude-opus-5-5).

PHPlumb 0.4.0 adds Symfony support and follows code through PHP's built-in symbols, enums and generic types.

Symfony

The module turns on when the project's composer.lock requires symfony/framework-bundle. The new phplumb.frameworks.symfony setting forces it on or off.

  • Routes. A route name in redirectToRoute(), generateUrl() or Twig path() and url() opens its controller or its YAML route.
  • Templates. A template name in render(), #[Template] or a Twig tag opens the Twig file, including twig.paths namespaces.
  • Messenger. dispatch() lists the handlers of the message, and a handler lists the places that dispatch its message.
  • Parameters and YAML. A parameter name in getParameter(), #[Autowire] or %x% opens its definition. Classes and @service ids in config/ YAML open theirs.
  • Doctrine. *.orm.xml mappings link to their classes and properties, and getRepository(X::class) is typed as the entity's repository.
  • Broken references. Route, template and parameter names defined nowhere are flagged in PHP, Twig and YAML. A name stays silent when a source that could define it cannot be read.

PHP

  • Built-in symbols. Functions, classes and constants such as array_map() and DateTime resolve from phpstorm stubs bundled with the extension.
  • Enums. Enum cases are typed as their enum, and enums get their implicit UnitEnum and BackedEnum interfaces.
  • Generics. PHPDoc templates and element types carry through foreach, array access, array callbacks and generic classes.

Changed

  • Each framework module reads only the folder of its own composer.lock. A Drupal codebase inside a Symfony application gets each module in its own folder.

Install the .vsix for your platform with code --install-extension <file>. Requires VS Code 1.140 or later on macOS (Apple silicon) or Linux (x64).

PHPlumb 0.3.0

Choose a tag to compare

@lussoluca lussoluca released this 27 Oct 18:11

PHPlumb 0.3.0 adds a project folder setting and finds Drupal sites kept in a subfolder.

  • phplumb.root names the folder of the PHP project, relative to the workspace folder, such as src/drupal. Only that folder is indexed. phplumb.exclude globs and Drupal detection start from it.
  • Drupal detection in auto mode also finds a composer.lock that requires drupal/core up to three directories below the workspace folder. Drupal navigation, including classes in .services.yml and .routing.yml files, then works for a site in a subfolder.

Install the .vsix for your platform with code --install-extension <file>. Requires VS Code 1.140 or later on macOS (Apple silicon) or Linux (x64).

PHPlumb 0.2.0

Choose a tag to compare

@lussoluca lussoluca released this 27 Oct 16:52

PHPlumb 0.2.0 adds docblock navigation and limits Drupal behavior to Drupal projects.

  • Docblock navigation: class names, @see targets and annotation names in docblocks lead to their declarations.
  • Drupal annotations resolve as plugin discovery reads them. Plugins whose annotation shares its short name with a nearby class are now found.
  • Outside Drupal projects, core and contrib directories count as project code and get diagnostics. Drupal file extensions such as .module and .inc are no longer indexed or opened as PHP.
  • In Drupal projects, VS Code opens .module, .inc, .install, .theme, .profile and .engine files as PHP once the server has started.

Install the .vsix for your platform with code --install-extension <file>. Requires VS Code 1.140 or later on macOS (Apple silicon) or Linux (x64).

PHPlumb 0.1.0

Choose a tag to compare

@lussoluca lussoluca released this 27 Oct 15:49

First release of PHPlumb: fast code navigation in VS Code for reviewing PHP that AI agents write.

  • Core PHP navigation: definition, implementations, references, call and type hierarchy, hover, workspace symbols and outline.
  • Broken reference diagnostics for classes, functions, methods and constants that exist nowhere.
  • Drupal: services, entities, hooks, plugins, routes and YAML navigation, plus diagnostics for unknown service, route and plugin ids.

Install the .vsix for your platform with code --install-extension <file>. Requires VS Code 1.140 or later on macOS (Apple silicon) or Linux (x64).