Skip to content

Releases: zephir-lang/idea-plugin

0.6.0

21 Mar 10:38

Choose a tag to compare

Added

  • Enhanced autocompletion for Zephir code:
    • Local variable names — suggests variables declared with let, type-annotated declarations (var/string/etc.), and for loop iteration variables
    • Class and interface names — suggests all class and interface names found in the project's .zep files
    • PHP built-in functions — suggests ~80 common PHP built-in functions in method scope, auto-inserting () with the cursor positioned inside
    • Member access (->) — when a variable is typed as a Zephir class or interface (e.g. <AdapterInterface> adapter), typing adapter-> suggests that type's methods and properties from the project's .zep files
    • Concrete class methods now included in this-> completion (previously only abstract methods were suggested); selected methods auto-insert () with cursor inside

Changed

  • Replaced internal API override of IElementType.getDebugName() in ZephirStubFileElementType with the public IStubFileElementType(String, Language) constructor parameter

0.5.0

20 Mar 22:50

Choose a tag to compare

Added

  • Added Documentation functionality (Ctrl+Q and on hover)
  • Added Go To Declaration (Ctrl+click) for class and interface references:
  • Qualified names (Phalcon\Storage\Adapter\Libmemcached) resolve via namespace-to-directory mapping, preventing ambiguous matches when multiple classes share the same short name
  • Unqualified names fall back to a full project scan
  • Alias names (use Foo as Bar → clicking Bar) navigate to the use statement so the real class path can be followed with a second Ctrl+click
  • Added docker-compose.yml with a persistent Gradle cache volume for reproducible local builds
  • Added Structure View (ZephirStructureViewFactory, ZephirStructureViewElement, ZephirStructureViewModel) showing classes, interfaces, methods, properties, and constants in the IDE structure panel
  • Added Code Folding (ZephirFoldingBuilder) for class/interface bodies, method code blocks, inline C blocks, and multi-line block comments
  • Added Live Templates (Zephir.xml) with abbreviations: cl (class), pubf, protf, privf (function stubs), fore, fori, rev (for loops), wh (while), dowhile (do-while), tc (try-catch)
  • Added ZephirTemplateContext so live templates are only active inside .zep files
  • Added Implementations Gutter (ZephirLineMarkerProvider) showing subclass and implementation counts next to class and interface declarations
  • Added ZephirNamedElement interface, ZephirNamedElementMixin, and ZephirIdMixin for rename refactoring support
  • Added ZephirElementFactory to create PSI elements programmatically
  • Added ZephirRefactoringSupportProvider to enable inline rename for named elements
  • Added parser tests for do...while loop and mixed type usage

Changed

  • Requires IntelliJ Platform 2024.3 or newer (minimum build 243)
  • Gradle wrapper updated from 6.5.1 to 9.0.0
  • Migrated from org.jetbrains.intellij 0.4.21 to org.jetbrains.intellij.platform 2.13.1
  • org.jetbrains.grammarkit plugin updated from 2020.1 to 2022.3.2
  • Kotlin JVM plugin updated from 1.3.72 to 2.1.0
  • Replaced jcenter() repository with mavenCentral()
  • JVM toolchain updated from 1.8 to 21
  • GitHub Actions updated to Node.js 24 compatible versions (checkout@v6, setup-java@v5, cache@v5, upload-artifact@v7)
  • GitHub Actions build updated to use JDK 21
  • Grammar: added mixed, object, callable, resource as recognized type keywords
  • Grammar: added mixed type to type hints in method scope completion
  • Grammar: added do...while loop statement (do { } while expr;)
  • Grammar: fixed INTEFACE token name typo — corrected to INTERFACE
  • Grammar: added mixin/implements attributes to Id, class, interface, method, property, and constant definition rules
  • Replaced deprecated IconLoader.getIcon(String) with IconLoader.getIcon(String, ClassLoader)
  • Replaced deprecated LOG static field with thisLogger() in ZephirCreateFileAction
  • Fixed ZephirStubFileElementType to provide unique externalId and debugName to prevent platform exceptions
  • Updated copyright year to 2026 across all source files

0.4.0

23 May 21:13
792cb8f

Choose a tag to compare

All notable changes to this version has been documented in the CHANGELOG.md file.

0.3.6

17 May 22:26
1dd5af8

Choose a tag to compare

  • Updated file icons
  • Corrected change-notes section to store changes only for the latest version of the plugin

0.3.5

13 May 08:27
92f8893

Choose a tag to compare

  • Drop support of IDE's versions below 182

0.3.4

12 May 21:42
56c39c2

Choose a tag to compare

  • Replaced usage of deprecated API by new one

0.3.3

07 Sep 14:44

Choose a tag to compare

  • Fixed recognizing strings with regular expressions

0.3.2

27 Dec 19:56
8a16b85

Choose a tag to compare

  • Improved method modifiers support like:

    static protected final function foo ()
    {
    }
  • Fixed chain of call syntax support. For example:

    return (<ManagerInterface> this->manager)->setModelSchema(this, schema);

0.3.2-beta3

19 Jul 04:58

Choose a tag to compare

  • Fixed regex recognition
  • Fixed variable definition like
    {someVar} = someValue;

0.3.2-beta2

30 May 06:10

Choose a tag to compare

  • Reduced Phalcon syntax errors from 30 to 16
  • Fixed completion bug when invoking AC in method definition block