- Phpstorm Python
- Pycharm
- Phpstorm Python Syntax Highlighting
- Install Python Plugin Intellij
- Python Phpstorm Syntax
Introduction
All products based on the IntelliJ Platform are built on the same underlying API. Some of these products share features built on top of the platform, such as Java support in IntelliJ IDEA and Android Studio. Underlying those shared features are shared components. When authoring a plugin for the IntelliJ Platform, it is important to understand and declare dependencies on these components. Otherwise, it may not be possible to load or run the plugin in a product because the components on which it depends aren't available.
JetBrains.NET Tools Library. JetBrains Runtime. MPS 2018.1 Documentation. Showing 20 of 49 Popular; All Updates; This tab shows popular content. Create, comment on or like content to see it appear here.
Qualifying Open Source projects can apply for free licenses of JetBrains products.
Provides advanced support for UI automation with Selenium libraries in JVM/Python languages. 122 606 downloads. The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio. 22 880 190 downloads. Adds support for the Scala language. The following features are available for free with IntelliJ. Php python phpstorm. Follow edited Feb 20 '15 at 6:23. Adrian Cid Almaguer. 9,375 13 13 gold badges 44 44 silver badges 63 63 bronze badges. Asked Apr 24 '14 at 8:01. 17.3k 7 7 gold badges 48 48 silver badges 88 88 bronze badges. Add a comment 2. In this tutorial we will be installing IntelliJ IDEA from Jet Brains and the Python coding plugin/module. The instructions follow the Mac path, however, the. For pure Python development. Free, open-source. Get the Toolbox App to download PyCharm and its future updates with ease. PyCharm is also available as a snap package. If you’re on Ubuntu 16.04 or later, you can install PyCharm from the command line. Developed with drive and IntelliJ.
Declaring Plugin Dependencies
For the purposes of dependencies, a module can be thought of like a built-in plugin that ships as a non-removable part of a product. A working definition of a dependency is that a plugin project cannot be run without the module present in an IntelliJ Platform-based product. Declaring a dependency on a module also expresses a plugin's compatibility with a product in that the IntelliJ Platform determines whether a product contains the correct modules to support a plugin before loading it.
Part I of this document describes the syntax for declaring plugin dependencies and optional plugin dependencies. Part II of this document (below) describes the IntelliJ Platform modules' functionality to aid in determining the dependencies of a plugin.
The way dependency declarations are handled by the Intellij Platform is determined by the contents of the plugin.xml
file:
If a plugin does not declare any dependencies in its
plugin.xml
file, or if it declares dependencies only on other plugins but not modules, it's assumed to be a legacy plugin and is loaded only in IntelliJ IDEA. This configuration of the dependency declaration is deprecated; do not use it for new plugin projects.If a plugin declares at least one module dependency in its
plugin.xml
file, the plugin is loaded if an IntelliJ Platform-based product contains all the modules and plugins on which the plugin has declared a dependency.
Modules
A module represents a built-in plugin that is a non-removable part of a product. Some modules are available in all products, and some modules are available only in some, or even just one product. This section identifies and discusses modules of both types.
Declaring Incompatibility with Module
Starting in 2020.2, a plugin can declare incompatibility with an arbitrary module by specifying <incompatible-with>
containing module ID in its plugin.xml
.
Modules Available in All Products
A core set of modules are available in all products based on the IntelliJ Platform. These modules provide a set of shared functionality. The following table lists modules that are currently available in all products.
All plugins should declare a dependency on com.intellij.modules.platform
to indicate dependence on shared functionality.
Module for <depends> Element Declaration in plugin.xml File | Functionality |
---|---|
com.intellij.modules.platform | Messaging, UI Themes, UI Components, Files, Documents, Actions, Components, Services, Extensions, Editors |
com.intellij.modules.lang | File Type, Lexer, Parser, Highlighting, References, Code Completion, Find, Rename, Formatter, Code Navigation |
com.intellij.modules.xml | XML, XML DOM, XSD/DTD, DOM Model |
com.intellij.modules.vcs | VCS Revision Numbers, File Status, Change Lists, File History, Annotations |
com.intellij.modules.xdebugger | Debug Session, Stack Frames, Break Points, Source Positions, Memory Views, Tracked Instances |
As of this writing, if a plugin: A) is dependent only on one or more of the modules in the table above, and B) declares those module dependencies in plugin.xml
, then any product developed by JetBrains based on the IntelliJ Platform will load it.
Modules Specific to Functionality
More specialized functionality is also delivered via modules and plugins in IntelliJ Platform-based products. For example, the com.intellij.modules.python
module supports the Python language-specific functionality. If a plugin uses this module's functionality, such as Python-specific inspections and refactoring, it must declare a dependency on this module.
Note that not all products define and declare modules. For example, PhpStorm does not have its own module, but the product itself depends on (and ships with) the PHP language plugin. A plugin project is compatible with PHP functionality if it declares a dependency on this PHP language plugin.
The following table lists (1) modules or built-in plugins that provide specific functionality, and the products currently shipping with them.
Module or Plugin for <depends> Element Declaration in plugin.xml File | Functionality | IntelliJ Platform-Based Product Compatibility |
---|---|---|
com.intellij.modules.java See (2) below. com.intellij.java | Java language PSI Model, Inspections, Intentions, Completion, Refactoring, Test Framework | IntelliJ IDEA, Android Studio |
com.intellij.modules.androidstudio | Android SDK Platform, Build Tools, Platform Tools, SDK Tools | Android Studio |
com.intellij.modules.appcode | CocoaPods, Core Data Objects, Device & Simulator Support | AppCode |
com.intellij.modules.cidr.lang | C, C++, Objective-C/C++ language PSI Model, Swift/Objective-C Interaction, Inspections, Intentions, Completion, Refactoring, Test Framework | AppCode, CLion |
com.intellij.modules.cidr.debugger | Debugger Watches, Evaluations, Breakpoints, Inline Debugging | AppCode, CLion, RubyMine |
com.intellij.modules.clion | CMake, Profiler, Embedded Development, Remote Development, Remote Debug, Disassembly | CLion |
com.intellij.database | Database Tools and SQL language PSI Model, Inspections, Completion, Refactoring, Queries | DataGrip, IntelliJ IDEA Ultimate, AppCode, PhpStorm, PyCharm Professional, RubyMine, CLion, GoLand, Rider, and WebStorm if the Database Tools and SQL plugin is installed. |
com.intellij.modules.go | Go language PSI Model, Inspections, Intentions, Completion, Refactoring, Test Framework | GoLand |
com.intellij.modules.python | Python language PSI Model, Inspections, Intentions, Completion, Refactoring, Test Framework | PyCharm, and other products if the Python plugin is installed. |
com.intellij.modules.rider | Connection to ReSharper Process in Background | Rider |
com.intellij.modules.ruby | Ruby language PSI Model, Inspections, Intentions, Completion, Refactoring, Test Framework | RubyMine, and IntelliJ IDEA Ultimate if the Ruby plugin is installed. |
com.intellij.modules.ultimate | Licensing | All commercial IDEs (IntelliJ IDEA Ultimate, PhpStorm, DataGrip, ..) |
com.jetbrains.php | PHP language PSI Model, Inspections, Intentions, Completion, Refactoring, Test Framework | PhpStorm, and other products if the PHP plugin is installed. |
JavaScript | JavaScript language PSI Model, Inspections, Intentions, Completion, Refactoring, Test Framework | WebStorm, and other products if the JavaScript plugin is installed. |
Notes about Module and Plugin Dependency:
(1) This table is not exhaustive; other modules are currently available in JetBrains' IntelliJ Platform-based IDEs. To see a list of modules, invoke the code completion feature for the <depends>
element contents while editing the plugin.xml
file.
Phpstorm Python
(2) The Java language functionality was extracted as a plugin in version 2019.2 of the IntelliJ Platform. This refactoring separated the Java implementation from the other, non-language portions of the platform. Consequently, dependencies on Java functionality are expressed differently in plugin.xml
depending on the version of the IntelliJ Platform being targeted:
- Syntax for 2019.2 and later releases:
plugin.xml
allowable alternative add<depends>com.intellij.java</depends>
build.gradle
required define dependency on Java pluginintellij { plugins = ['com.intellij.java'] }
- Syntax required for releases prior to 2019.2, allowable in all releases:
plugin.xml
add<depends>com.intellij.modules.java</depends>
Exploring Module and Plugin APIs
Once the dependency on a module or plugin is declared in plugin.xml
, it's useful to explore the packages and classes available in that dependency. The section below gives some recommended procedures for discovering what's available in a module or plugin on which a project depends. These procedures assume a project has the build.gradle
and plugin.xml
dependencies configured correctly.
Exploring APIs as a Consumer
Exploring the available packages and classes in a plugin or module utilizes features in the IntelliJ IDEA IDE.
If the project is not up to date, Reimport the Gradle project as a first step. Reimporting the project will automatically update the dependencies.
In the Project Window, select Project View and scroll to the bottom to see External Libraries. Look for the library Gradle:unzipped.com.jetbrains.plugins:foo:
, where 'foo' matches, or is similar to the contents of the <depends>
tags in plugin.xml
or the intellij.plugins
declaration in build.gradle
. The image below shows the External Libraries for the example plugin project configuration explained in Configuring build.gradle and Configuring plugin.xml.
Expand the External Library (as shown) to reveal the JAR files contained in the library. Drill down into the JAR files to expose the packages and (decompiled) classes.
Exploring APIs as an Extender
If a project is dependent on a plugin or module, in some cases, the project can also extend the functionality available from the plugin or module.
To browse the opportunities for extension, start by placing the cursor on the contents of the <depends>
elements in the project's plugin.xml
file. Use the Go to Declaration IDE feature to navigate to the plugin.xml
file for the plugin on which the project depends.
For example, performing this procedure on the <depends>com.jetbrains.php</depends>
declaration in a project's plugin.xml
file will navigate to the plugin.xml
file for the com.jetbrains.php
(PHP) project. A common, but not universal, pattern in the IntelliJ platform is for a plugin (like PHP) to declare <extensionPoints>
and then implement each one as <extensions>
. Continuing the example, search the PHP plugin's plugin.xml
file for:
Pycharm
<extensionPoints>
to find the opportunities for extending the PHP plugin's functionality.<extensions defaultExtensionNs='com.jetbrains.php'>
to find where the PHP plugin extends functionality. The extension namespace (in this examplecom.jetbrains.php
) will match the<id>
defined in theplugin.xml
file.
Verifying Dependency
Before marking a plugin project as dependent only on modules in a target product in addition to com.intellij.modules.platform
, verify the plugin isn't implicitly dependent on any APIs that are specific to IntelliJ IDEA.
For Gradle-based projects, Plugin Verifier can be used to ensure compatibility with all specified target IDEs.
For DevKit-based projects, create an SDK pointing to an installation of the intended target IntelliJ Platform-based product, e.g., PhpStorm, rather than IntelliJ IDEA. Use the same development version of the IntelliJ platform as the targeted product.
Based on the tables above, the JetBrains Plugins Repository automatically detects the JetBrains products with which a plugin is compatible, and makes the compatibility information available to plugin authors. The compatibility information determines if plugins are available at the plugin repository to users of a particular JetBrains product.
Platform API Version Compatibility
The API of IntelliJ Platform and bundled plugins may change between releases. The significant changes that may break plugins are listed on Incompatible Changes in IntelliJ Platform and Plugins API page.
Phpstorm Python Syntax Highlighting
The following is only valid when the Python plugin is installed and enabled.
Install Python Plugin Intellij
To create an empty project:
Python Phpstorm Syntax
From the main menu, choose File | New | Project or on the Welcome screen, click New Project.
New Project dialog opens.
In the left-hand pane of the New Project dialog, select Python as a project type.
In the right-hand pane, specify the project SDK. If the desired SDK is missing in the list, click New and create one of the following Python SDK:
In the left-hand pane of the Add Python Interpreter dialog, select Virtualenv Environment. The following actions depend on whether the virtual environment existed before.
If New environment is selected:
Specify the location of the new virtual environment in the text field, or click and find location in your file system. Note that the directory where the new virtual environment should be located, must be empty!
Choose the base interpreter from the list, or click and find a Python executable in the your file system.
If IntelliJ IDEA detects no Python on your machine, it provides two options: to download the latest Python versions from python.org or to specify a path to the Python executable (in case of non-standard installation).
Select the Inherit global site-packages checkbox if you want that all packages installed in the global Python on your machine to be added to the virtual environment you're going to create. This checkbox corresponds to the
--system-site-packages
option of the virtualenv tool.Select the Make available to all projects checkbox, if needed.
If Existing environment is selected:
Expand the Interpreter list and select any of the existing interpreters. Alternatively, click and specify a path to the Python executable in your file system, for example, C:Python36python.exe.
Select the checkbox Make available to all projects, if needed.
Click OK to complete the task.
In the left-handed pane of the Add Python Interpreter dialog, select Pipenv.
If you have added the user base’s binary directory to your
PATH
environmental variable, you don't need to set any additional options: the path to the pipenv executable will be autodetected.Click OK to complete the task.
If you have not modified the
PATH
variable, IntelliJ IDEA shows an error message: Pipenv executable is not found. Discover the proper executable path as described in the pipenv installation procedure and enter the target string in the Pipenv executable field, for example: C:UsersjetbrainsAppDataRoamingPythonPython37Scriptspipenv.exe (Windows) or /Users/jetbrains/.local/bin/pipenv (macOS).Click OK to save the changes and complete the task.
In the left-hand pane of the Add Python Interpreter dialog, select Conda Environment. The following actions depend on whether the Conda environment existed before.
Download do-it-auto driver. If New environment is selected:
Specify the location of the new Conda environment in the text field, or click and find location in your file system. Note that the directory where the new Conda environment should be located, must be empty!
Select the Python version from the list.
Specify the location of the Conda executable file in the text field, or click and find location in the Conda installation directory. You're basically looking for a path that you've used when installing Conda on your machine.
Select the Make available to all projects checkbox, if needed.
If Existing environment is selected:
Expand the Interpreter list and select any of the existing interpreters. Alternatively, click and specify a path to the Conda executable in your file system, for example, C:UsersjetbrainsAnaconda3python.exe.
Select the checkbox Make available to all projects, if needed.
Click OK to complete the task.
In the left-hand pane of the Add Python Interpreter dialog, select System Interpreter.
In the Interpreter field, type the fully-qualified path to the required interpreter executable, or click and in the Select Java Interpreter dialog that opens, choose the desired Java executable and click OK.
If IntelliJ IDEA detects no Python on your machine, it provides two options: to download the latest Python versions from python.org or to specify a path to the Python executable (in case of non-standard installation).
You will need admin privileges to install, remove, and upgrade packages for the system interpreter. When attempting to install an interpreter package through an intention action, you might receive the following error message: As prompted, consider using a virtual environment for your project.
Click OK to complete the task.
In the left-hand pane of the Add Python Interpreter dialog, click SSH Interpreter.
In the right-hand pane select New server configuration, then specify server information (host, port, and username).
Alternatively, you can select Existing server configuration and choose any available deployment configuration from the list.
If needed, click to review the Connection settings, Mappings, and Excluded paths for the selected deployment configuration. Click Next to continue configuring an interpreter.
In the next dialog window, provide the authentication details to connect to the target server.
Select Password or Key pair (OpenSSL or PuTTY) and enter your password or passphrase.
Click Next to proceed with the final configuration step.
In the next dialog window, verify the path to the desired Java interpreter. You can accept default, or specify a different one. You have to configure the path mappings between your local project and the server. To do that, click next to the Sync folders field and enter the path to the local project folder and the path to the folder on the remote server.
You can also select the lowest checkbox to enable automatic upload of the local changes to the remote server.
In the left-hand pane of the Add Python Interpreter dialog, click Vagrant:
Click the browse button next to the field Vagrant instance folder, and specify the desired Vagrant instance folder.
This results in showing the link to Vagrant host URL.
The Python interpreter path field displays the path to the desired Python executable. You can accept default, or specify a different one.
Click OK. The configured remote interpreter is added to the list.
In the dialog that opens, select the Docker option, from the drop-down lists select the Docker server (if the server is missing, click New.. ), and specify the image name.
Python interpreter path should have the default value, for example,
python
:Click OK to complete the task.
In the dialog that opens, select the Docker Compose option, from the drop-down lists select the Docker server, Docker Compose service (here
web
), configuration file (heredocker-compose.yml
)and image name (herepython
).Next, wait while IntelliJ IDEA starts your Docker-Compose configuration to scan and index:
Click OK to complete the task.
To add any of the remote interpreters, ensure that the Vagrant and Docker Integration plugin are installed and enabled. If the plugins are not activated, enable them on the Plugins page of the Settings / Preferences dialog as described in Manage plugins.
If needed, select additional libraries and frameworks to enable with the project. When selecting a particular framework, ensure that it is supported by the specified project SDK. Also, provide the required parameters.
Click Next.
On the next page, select the Create project from template checkbox if you want to use a project or framework template for the new Python project.
Specify the project name and location.
Click Finish to complete the task.