All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
- Custom theme couldn't be detected #2348
- Mage-os support #2081
- Workaround for "thread context was already set" exception #2082
- NewObserverDialog form typo #2087
- ActionUpdateThread.OLD_EDT deprecation on DumbAwareActions #2088
- Throwable: Stub index points to a file without PSI #1232
- Create an entity - The delete button is displayed in a new entity form #1268
- Create an entity - The translation function is not call on the buttons label #1273
- Covered possible NullPointerException in InjectAViewModelDialog.java #1213
- AWT events are not allowed inside write action #1271
- MapReduceIndexMappingException: java.lang.NumberFormatException: For input string: "" #1235
- Code generation of a Data Patch Boilerplate file #1188
- Code generation of an Observer from the context menu #1200
- Code generation of events.xml file #1189
- Config Scope directory inspection #1261
- EAV attributes code generators: Added default values of the group property #1259
- All code generators: Added constants visibility and class property types #1260
- UCT custom coming versions #1251
- Fixed wrong director(y|ies) generation for GraphQL resolver class #1192
- Fixed IndexOutOfBoundsException: CreateResolverClassQuickFix.applyFix(CreateResolverClassQuickFix.java:43) #1192
- Index out of range #1239
- Code generation of a Data Patch file with a Customer EAV attribute #583
- Code generation of a Data Patch file with a Product EAV attribute #527
- Code generation of a Data Patch file with a Category EAV attribute #569
- Code generation of Readme file #1133
- Code generation of GraphQl schema file #1123
- Optional generation of Readme file during the creation of a new module #1110
- Code completion for
system.xml
andconfig.xml
#1077 - Added easier navigation through plugins #1121
- Added inspection to check if type attr value in the virtual type tag attribute value exists #1176
- Added checks and detailed error messages during plugin activation #1181
- Fixed NullPointerException at ObserverDeclarationInspection.java:188 #1143
- Fixed IncorrectOperationException: Rebind cannot be performed for class PolyVariantReferenceBase #1173
- Fixed create an observer for an event doesn't work through the context menu #1166
- Fixed IOException: Invalid file name at ReportBuilder #1154
- Fixed IllegalArgumentException in NewModuleAction class #1150
- Fixed null data in ModuleIndex class #1132
- Fixed StringIndexOutOfBoundsException: GitHubNewIssueBodyBuilderUtil #1130
- Fixed ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 0 in OverrideClassByAPreferenceDialog #1129
- Fixed PatternSyntaxException: MagentoBasePathUtil.isMagentoFolderValid:35 for Windows styled dir path separator #1126
- Fixed NullPointerException in the OverrideTemplateInThemeAction.isOverrideAllowed for virtualFile.getCanonicalPath() #1125
- Fixed IllegalArgumentException: Argument for @NotNull parameter 'dataKey' must not be null in CompareTemplateAction #1117
- Fixed argument for @NotNull parameter 'project' must not be null in the OverrideClassByAPreferenceAction #1116
- Fixed New layout action doesn't accept valid layout names #1114
- Added raw plugin verifier configuration in #1065
- Fixed bug with the file separator on Windows OS (while saving plugin settings) in #1062
- Fixed bug with wrong text range for FilePathReferenceProvider.getReferencesByElement in #1063
- Fixed module files action group is accessible from the theme context in #1064
- Fixed bug with directory index is already disposed for Project in AllFilesExceptTestsScope.contains in #1080
- Fixed bug with DumbService cannot be created because container is already disposed in MagentoComponentManager.getComponents in #1081
- Code generation of
layout.xml
file #1021 - Code generation of
page_types.xml
file #1003 - Code generation of
crontab.xml file
#1001 - Code generation of
email_templates.xml
file #998 - Code generation of
sections.xml
file #997 - Code generation of
fieldset.xml
file #996 - Code generation of
view.xml
file #990 - Code generation of
indexer.xml
file #988 - Code generation of
mview.xml
file #987 - Code generation of
widget.xml
file #983 - Code generation of
extension_attributes.xml
file #982 - Code generation of
system.xml
file #978 - Code generation of
config.xml
file #976 - Code generation of
webapi.xml
file #971 - Code generation of
di.xml
file #970 - Code generation of
acl.xml
file #969 - Code generation of
routes.xml
file #958 - Images support for Copy Magento Path #1020
- Add/Replace an argument of a constructor via di.xml #1027
- Possibility to compare overridden template with the original one #1032
- Themes support of the UCT action execution #1029
- Configuration files support of the UCT action execution #1038
- Possibility to override a LESS file #1036
- Added references for the extended MFTF tests #974
- Improved RequireJS Mapping #1045
- Improved the override a theme file feature #1046
- Improved DocBlock code generator #1022
- Added the possibility to create a plugin for a method in the parent class #981
- Extended custom search scope (to exclude test files from search) with the
is integration enabled
flag #944 - Extended uiComponent highlighting with the
is integration enabled
flag #942 - Added "module" prefix to module name in
composer.json
#848
- Sort order of the context actions #1004
- Fixed the email template form title #956
- Placeholders on forms #1009 #1008 #1005 #962 #938
- Creating new module with the package name in the valid package directory on Windows OS #1013
- Inspection titles #1015
- Fixed ArrayIndexOutOfBoundsException #1018
- Generating UI form Delete button #1019
- Removed deprecated method FilenameIndex#getVirtualFilesByName #1037
- Removed deprecated method Function#getReturnType #1043
- Issue with wrong references resolved for a class if a proxy class is generated for it #1044
- Fixed Magento installation path suggestion #1047
- Issue during composer json generation if in dependent module version tag is not specified #972
- Fixed a simple-json library is absent in the distribution in #951
- Added custom search scope to exclude test files from search #read-more
- Added the ability to open all plugins in the Find Tool Window #read-more
- Added uiComponent registration syntax highlighting as JSON #read-more
- Added new Magento version support (2.4.4-beta4) for the UCT feature in #922
- Eliminated com.google.gson.JsonParser#parse usage in #928
- Eliminated LineMarkerXmlTagDecorator#checkDelete usage in #910
- Eliminated LineMarkerXmlTagDecorator#checkAdd usage in #909
- Enhanced errors showing for the new Magento 2 UI Component Form dialog window in #892
- Enhanced errors showing for the new Magento 2 UI Component Grid dialog window in #891
- Enhanced errors showing for the new Magento 2 DB Schema XML dialog window in #890
- Enhanced errors showing for the new Magento 2 Message Queue dialog window in #889
- Enhanced errors showing for the new Magento 2 Data Model dialog window in #888
- Enhanced errors showing for the new Magento 2 Models dialog window in #887
- Enhanced errors showing for the new Magento 2 Email Template dialog window in #886
- Enhanced errors showing for the new Magento 2 CLI Command dialog window in #885
- Enhanced errors showing for the new Magento 2 GraphQl Resolver dialog window in #884
- Enhanced errors showing for the new Magento 2 View Model dialog window in #883
- Enhanced errors showing for the new Magento 2 Cron Group dialog window in #882
- Enhanced errors showing for the new Magento 2 Cron Job dialog window in #881
- Enhanced errors showing for the new Magento 2 Controller dialog window in #880
- Enhanced errors showing for the new Magento 2 Block dialog window in #865
- Fixed overriding layouts and templates allows to select an incompatible theme in #930
- Fixed observer action visibility in #936
- Fixed general exception while accessing phpIndex.getAnyByFQN(classFQN) in #934
- Fixed ClassCastException for the GraphQlResolverIndex.getGraphQLUsages in #927
- Fixed plugin inspection does not work correctly in #902
- Fixed module name declaration inspection flags valid code in #898
- Fixed ClassCastException: PsiPlainTextFileImpl cannot be cast to class XmlFile in WebApiTypeIndex in #897
- Fixed IndexNotReadyException while opening a context menu in #896
- Fixed IllegalArgumentException: URLDecoder: Incomplete trailing escape (%) pattern in #894
- Fixed Throwable: AWT events are not allowed inside write action (UI Form) in #893
- Fixed Slow operations are prohibited on EDT when calling update method on the CreateAPluginAction in #862
- Fixed Throwable: when an IOException is thrown during new plugin generation in #860
- Fixed IndexOutOfBoundsException in case when entered no fields during ui form generation in #859
- Fixed NullPointerException when opening new cron job dialog for an invalid Magento 2 module in #856
- Fixed NoSuchElementException when creating new controller in #844
- Fixed Message Queue Connection does not match Naming Conventions in #854
- Fixed StringIndexOutOfBoundsException during UCT inspection via action execution in 852
- Fixed NullPointerException in the PluginDeclarationInspection.fetchModuleNamesWhereSamePluginNameUsed (calling toString on null) in #849
- Fixed ArrayIndexOutOfBoundsException when used Copy Path/Reference action on the requirejs-config.js file in #808
- Fixed dialog disposition issue in #811
- Fixed stack overflow error for line-marker providers in #813
- Fixed stub ids not found for key in index in #814
- Fixed failed to build require-js index in 815
- Fixed empty psi elements in the plugin inspections in #816
- Fixed empty psi element in module xml inspection in #817
- Fixed NullPointerException for the firstSortOrder.compareTo in #818
- Fixed invalid column types provided exception during db_schema.xml file generation in #819
- Fixed method designed for fully qualified names only in #830
- Fixed NoClassDefFoundError for com.intellij.lang.jsgraphql.GraphQLIcons in #850
- Extending of the built-in Upgrade Compatibility Tool #read-more
- Fixed NullPointerException for the InjectAViewModelAction in #800
- Fixed NullPointerException for a name attribute of the event tag and code style fixes in #799
- Fixed NullPointerException for PluginReferenceProvider in #801
- Added UI integration with the Adobe Commerce Upgrade Compatibility Tool in #625
- Added MVP version of the built-in Upgrade Compatibility Tool, read more in wiki
- Added XML file header include code template in #615
- Added Web API generation for the Magento Entity Creator in #597 and #607
- Added DI XML plugin type attribute inspections in #588
- Added Web API interface for service (PHP class) generation in #586
- Added DI XML type tag attributes inspections that related to the PHP/Magento types in #582
- Added DI XML preference tag attributes inspections in #578
- Added Web API XML service tag attributes inspections in #577
- Added an error handler to help user with a new bug issue creation on the GitHub side in #552 and #593
- Added Web API declaration generation in #548 and #595
- Added JS and CSS support for Copy Magento Path action in #536
- Changed the content of the generated plugin class in #612
- Changed using of hardcoded entity id value into the constant in all files generated by the Entity Creator in #606
- Fixed a casting exception in the XML index in #617
- Fixed a bug with plugin generation for complex non-primitive types in #609
- Fixed a bug with the namespace generation in a generated controller in #571
- Fixed a bug with directory validation for the generation dialogues in #565
- Fixed wrong entity data mapper file template position in #549
- Fixed incorrect data saving into table model within editing a table in #544
- Fixed an error when plugin or observer name is not set in #533
- Fixed incorrect duplication warning for disabled plugin in di.xml in #529
- New entity layout name and edit entity layout name inside it
Java.lang.IllegalArgumentException
During adding a new method into an existing plugin
- Directory validator
- Entity data mapper file template
- Code generation for a Magento Entity in #521
- Code generation for email templates in #350
- Reference navigation for disabled observers in
events.xml
in #439 - Line markers for test fixtures in #477
- Added ability to set the module sequence at generating new module #266
- ArrayIndexOutOfBoundsException in the New Module Action in #519
- Require restart on plugin update due to using native libraries
- Class completion doesn't display interfaces
- Fixed invalid check 'setup_version' in the etc/module.xml
- Reference navigation for classes under directories with underscores
- Fixed the array access exception when using copy path action
- Fixed null pointer exception on the copy path action
- Extended
.phpstorm.meta.php
for more convenient autocomplete #467 - Code generation for message queue in #411
- Code generation for declarative schema #453
- Inspection warning for disabled observer #432
- The action item to the context menu to copy file path in the Magento format #451
- The null pointer exception on the Create Module Dialog
- Overriding the interface that generates invalid php code
- Overriding a template from the base area
- Disabled the ability to create a plugin for a class that implements
\Magento\Framework\ObjectManager\NoninterceptableInterface
NoninterceptableInterface
case warning to the plugin inspection
- Fixed model generation with same names
- Fixed NPTR exception in theme directory view model action
- Fixed observer name validator
- Fixed plugin name validator
- Fixed the Inject a View Model dialog
- Skipped IDEA include tag causing error
- Fixed StringIndexOutOfBoundsException on PluginInspection
- Description for "Magento Routes XML" code template in #349
- Code completion and reference navigation for table names and column names in
db_schema.xml
file in #351 - Code completion and reference navigation for UI Component names in layout XMLs in #354
- Description for "Magento Layout XML" code template in #365
- Reference navigation for disabled plugins in
di.xml
in #373 - Code completion and reference navigation for Magento module names in
config.php
in #374 - Inspection warning when disabling a nonexistent plugin in
di.xml
in #382 - Description for "Magento Form Button Block Class" code template in #383
- Code generation for database models (model, resource model, and collection) in #392
- Code generation for data models (data interface and its implementation) in #399
- QuickFix for a missing GraphQL resolver defined in the the
schema.graphqls
file in #399
- Inability to save PhpStorm plugin settings after disabling the plugin with invalid field content in #317
- Field statuses in PhpStorm plugin settings not disabling if plugin is disabled in #320
- Missing linemarker for plugins to interface methods in #328
- Incorrect code completion for MFTF tags (stories, title, and description) in #364
- Argument name for types in
di.xml
not allowing underscores in #370 - Incorrect sort order validation in 'Create a New Plugin' code generation dialog in #389
- Code generation dialog titles in #363
- PWA pure function Live Template
- Library root for object manager autocomplete
- Line marker for interface plugin target
- Allowed theme override of non-magento composer themes
- Issue with
Magento Module Ui Grid Collection Data Provider Php
- Directories structure for the override in theme action
- Constant disabling plugin on startup if Magento not in the root
- New module generation for the default Magento version
- Inject a view model to a block and a reference block from the context menu action
- Override in Theme action
- Generate Listing UI component (including all required files)
- Generate Form UI component (including all required files)
- Code Inspection: ACL resource title
- Reference navigation and completion for
crontab.xml
- Reference navigation and completion for
menu.xml
- Adjusted module version to module.xml (considering the Magento version)
- Adjusted support of variadic arguments to plugin declaration inspection
- Fixed missing first letter name in
composer.json
- Fixed the CLI command namespace
- Fixed endless loop of notifications on launch
- Fix
composer.json
generation with module dependency that doesn't havecomposer.json
- Create a CLI command action
- Create a CRON group action
- Create a CRON job action
- Create a Controller action
- Code Inspection: Module declaration inspections in the scope of
module.xml
andregistration.php
- Code Inspection: GraphQL resolver in the scope of a schema file
- Fixed the positioning of all dialog popups
- Adjusted Magento root validation for consider
magento/framework
as a requirement - Adjusted Magento version validation RegExp to support patch versions
- The
create a plugin action
is accessible from the wrong context - Null pointer exception on the new module group
- RequireJS mapping support (reference navigation, completion)
- MFTF support MVP (reference navigation, completion)
- Line markers for navigation from a plugin class to a target class
- Line markers for navigation from a GraphQl resolver to schema and vice versa
- Create a plugin for a class public method
- Create a New Magento 2 Module action
- Create a Block action
- Create a View Model action
- Create a new Magento 2 module as a separate project
- Create an observer for an event action
- Create a GraphQL resolver action
- Override class by reference action
- Plugin class methods generation
- Code Inspection: Duplicated plugin Usage in di.xml
- Code Inspection: Plugin declaration in the scope of a Plugin Class
- Code Inspection: Warning regarding Cacheable false attribute in default XML
- Code Inspection: GraphQL resolver in the scope of a PHP Class
- Code Inspection: Duplicated Observer Usage in events XML
- Moved plugin configuration from
Settings > Preferences > Languages & Frameworks > PHP > Magento
toSettings > Preferences > Languages & Frameworks > PHP > Frameworks > Magento
- Fixed support of 202## 0.* versions of IDE's
- Extended navigation from PHP class to its XML declaration to support any configs
- Documented local environment set up for plugin development
- Fixed NullPointerException
- Added JavaScript reference contributor
- Support references for each part of FQN of PHP class, methods, constants
- Support reference from XML/JavaScript for module name
- Support reference from XML/JavaScript for module element path (e.g. Magento_Catalog::product/list/addto/compare.phtml)
- Added project detector
- Move configuration section to "Languages & Frameworks > Php > Magento"
- Remove deprecated elements
- Added Module name to configuration tooltip
- Fixed "Project disposed" exception
- added module name for "Goto configuration" labels
- WebApi routes
- nicer "Goto configuration" labels
- plugin settings (manual reindex, URN generation, plugin on/off)
- Context type completion for:
- Observers completion only for ObserverInterface impl in events.xml
- Blocks completion only for BlockInterface name in layouts.xml
- Preference configuration in di.xml
- Type hinting for object arguments in di.xml
- @api usage inspection in Module context
- ObjectManager usage inspection in Module context
- virtualType arguments resolution
- webapi.xml interface/method completion/references
- Support for old people using PhpStorm 8 or JDK## 1.7
- Added Reference and completion support for layouts
- block: class, before, after
- referenceBlock: name
- move: element, destination, before, after
- remove: name
- update: handle
- referenceContainer: name
- Line marker reference for php class to Layout configuration
- Added Line marker reference for php class/interface to DI configuration
- Added Line marker reference to plugins
- Added reference to configuration and observers (classes or virtualType)
- Added reference to observers from configuration
- Added reference to event dispatch from configuration
- Added reference and completion support for virtual types/classes/arguments in DI configuration
- Added reference support for classes/interfaces in DI configuration