Sencha Ext JS

Compatible with: IntelliJ IDEA PhpStorm WebStorm PyCharm RubyMine AppCode CLion GoLand Rider
Feb 06, 2019
43 747

Sencha Ext JS

This plugin provides support for the Ext JS and Sencha Touch frameworks.

To try the plugin for free for 30 days, you must have a valid Sencha Forum ID. If you do not have one, you can try the plugin as part of the Ext JS 6 trial. You'll be asked to download the file and register for a free Forum ID.

This plugin is available for purchase from the Sencha store as part of the Ext JS Pro and Ext JS Premium editions.

Sencha IDE Plugins Forum

Sencha JetBrains Plugin Guide

JetBrains IDE Version Support

ExtJS Plugin v6.0.12

  • IntelliJ 2018.2+
  • WebStorm 2018.2+
  • PhpStorm 2018.2+
  • RubyMine 2018.2+
  • PyCharm 2018.2+

ExtJS Plugin v6.0.10

  • IntelliJ 2016.1+
  • WebStorm 2016.1+
  • PhpStorm 2016.1+
  • RubyMine 2016.1+
  • PyCharm 2016.1+

ExtJS Plugin v6.0.8

  • IntelliJ 15.0.2+
  • WebStorm 11.0.2+
  • PhpStorm 10.0.2+
  • RubyMine 8.0.2+
  • PyCharm 5.0.2+

ExtJS Plugin v6.0.6

  • IntelliJ 15.0.0 - 15.0.1
  • WebStorm 11.0.0 - 10.0.1
  • PhpStorm 10.0.0 - 10.0.1
  • RubyMine 8.0.0 - 8.0.1
  • PyCharm 5.0.0 - 5.0.1

ExtJS Plugin v6.0.5

  • IntelliJ 14
  • WebStorm 10
  • PhpStorm 9
  • RubyMine 7
  • PyCharm 4


  • Ext JS 4+ or Sencha Touch 2+
  • Sencha Cmd 4+ (optional)


Code Completion (ctrl-space)

  • config, method, and property names for all Ext JS and user classes
  • values for alias properties such as xtype, controller, viewModel, layout, etc...
  • event names in Component.on, .mon, .un, .mun, and listeners objects
  • css class names in all config properties and methods ending in 'cls'
  • this.lookupReference(...) in controllers with an alias
  • controller methods in listeners: { (event): (here) } as well as handler config property
  • model/store fields for Ext.grid.Column.dataIndex
  • properties from the ViewModel in bind configs

Inspections/Quick Fixes

  • flags unused classes in the requires/uses arrays (can be configured to remove unused classes automatically via Preferences... Other Settings... Sencha)
  • flags classes in the uses/requires arrays which are already listed in parent classes
  • flags references to classes not in the requires/uses arrays (can be configured to add referenced classes automatically via Preferences... Other Settings... Sencha)
  • flags initComponent method without this.callParent()
  • flags references to unknown aliases such as controller: 'missingcontroller' and xtype: 'missingxtype'
  • flags references to unknown classes
  • flags class when namespace does not match the directory structure
  • flags class when name does not match the file name
  • flags references to missing controller methods in view event handlers, provides a quickfix to create the missing method.

Find Usages

  • Right click on any class name to find usages

Project Tree Actions

  • New Class (will automatically create subdirectories if "." is included - only available within an app or package)
  • New View Package (creates a directory containing a view, view model, and view controller - only available within the view directory of an app)
  • New App (requires Sencha Cmd - only available outside of an existing app)
  • New Workspace (requires Sencha Cmd - only available outside of an existing workspace)


  • provides click-through support for this.callParent() to navigate to the appropriate method on the parent class
  • provides click-through support for css class names in configs and methods ending in *cls


  • rename file - updates the class name
  • move file - updates the class namespace

Project Templates

  • New Ext JS App creates a new single app project using sencha cmd (sencha generate app - requires Sencha Cmd)
  • New Ext JS Workspace creates a new multi-app workspace project using sencha cmd (sencha generate workspace - requires Sencha Cmd)

Code Generation

  • Generate... "Generate columns from model" - within a Ext.grid.Panel with a bound or declared store adds a column for each field in the store's model

Class Templates (right-click on project tree... New... Class... )

  • Class
  • View
  • ViewModel
  • ViewController
  • Model
  • Controller
  • Store

Live Templates

  • xc - Inserts Ext.create('', { })

Run Configurations

  • Sencha App Watch (requires Sencha Cmd)

Spell Checking

  • Adds many common Ext JS keywords such as xtype, xclass, and event names to the dictionary so they are not flagged as misspellings

The trial version of this plugin is valid for 30 days.

Download plugin

Recent change notes

Version 6.0.12
  • Provides compatibility with JetBrains 2018.2 releases
  • Adds support for ExtJS Open Tooling (ext-gen) projects
  • Fixed issues with Cmd 6.5+ config files
Version 6.0.11
  • Provides compatibility with JetBrains 2016.2.1 releases
Version 6.0.10
  • Provides compatibility with JetBrains 2016.2 releases
Version 6.0.9
  • Provides compatibility with JetBrains 2016.1 releases
Version 6.0.8
  • Fixed issue where indexing would get stuck in an infinite loop at startup.
Version 6.0.7
  • Fixed blocker issues related to releases of IntelliJ 15.0.2, WebStorm 11.0.2, and *.0.2 releases of other JetBrains IDE
Version 6.0.6
  • Fixed issues related to latest major releases of JetBrains IDEs (IntelliJ 15, WebStorm 11, PhpStorm 10, PyCharm 5, RubyMine 8). This release requires upgrading to latest major IDE versions.
Version 6.0.5
  • Fixed error "Argument for @NotNull parameter 'file' of com/intellij/psi/impl/PsiManagerImpl.findDirectory must not be null" and bug where adding a controller method from a quick fix did not fill in the event parameters.
Version 6.0.4
  • Added the option to run sencha app watch with the --inspect flag to support integration with Sencha Inspector.
  • Users can now add their own templates for new Ext JS Class generation, as long as the template name starts with "Ext JS".
  • Fixed several errors reported via the IDE and user forums.
Version 6.0.3
  • Fixed several errors reported via the IDE and user forums.
Version 6.0.2
  • Added ability to select themes when creating a Universal Ext JS 6 App
  • Fixed several errors reported via the IDE and user forums.
Version 6.0.1
  • Fixed error reporting for users running Java 1.6 and 1.7
  • Fixed several errors reported via the IDE and user forums.
Version 6.0.0
  • This is first GA commercial release of the Sencha Ext JS plugin.
  • Added support for Ext JS 6
  • Improved code completion for Ext JS 4 and Sencha Touch 2
  • Added code completion support for Ext.widget()
  • Requires/uses array inspection no longer marks references to classes required by a parent class as missing
  • Library scopes are now respected. This allows you to have multiple Sencha frameworks/versions in a single project. See
  • Plugin now understands toolbar shortcuts '-', '->', and ' ' and will mark the corresponding classes as required
  • Fixed several errors reported via the IDE and through the user forums.
Version 0.3.323
  • Fixed error reporting
Version 0.3.316
  • Update EA expiration date to July 5, 2015
Version 0.3.312
  • Classes are now ordered alphabetically in the requires/uses arrays automatically.
  • Classes in the uses or requires array of the parent class or application are no longer flagged if they do not appear in the uses or requires array of the child class.
  • If a class exists in both the uses or requires array for both a parent and child class, the child’s requires statement will be flagged as redundant.
  • Toolbar shorthand classes are added to requires array when used.
  • Classes in requires/uses arrays that are matched by wildcards (.*) are no longer flagged as missing dependencies.
  • Added support for completing views, models, and stores configs in controller and application subclasses.
  • Now completes region config values when using layout: ‘border’.
  • Added completion support for series, axes, and interaction types in in the sencha-charts package.
  • Added lots a of little fixes that improve code completion in Sencha Touch.
  • Renaming a directory now renames all classes in the directory and nested directories.
Version 0.2.251
  • Improved performance when opening large files.
  • Added support for package creation.
  • Improved code completion on Ext JS 4 and Sencha Touch.
  • Improved handling of sencha cmd errors.
  • Fixed "cannot resolve symbol" errors in bind expressions and improved bind expression completion overall.
  • You can now choose an SDK when creating new apps and workspaces.
  • Now detects class references by ptype, ftype, when managing the requires array.