What's New in Version 2.7.2
IDE
Django Support
Python Support
Code Editing
Languages, Frameworks and Technologies
Plugins
Running
- Possibility to tell PyCharm not to add the source and/or content roots of a project to PYTHONPATH;
- PyCharm console is available for the remote interpreters
Testing Support
What's New in Version 2.7
IDE
- Editor tabs can be sorted in alphabetical order
- Darcula theme is available
- Consolidating bookmarks, breakpoints, and favorites in a single tool window
Django Support
- Django 1.5 support
- Possibility to pass parameters to the Django tests
- Restart console action added to the Django console
- Stop button is added to the 'Run manage.py task' shell
Python Support
- Unwrap/remove action is available for Python
- Optimize Imports command splits and sorts import statements according to PEP8
- Remote Python interpreters can be created based on Vagrant configuration
- Possibility to create a parameter from an unresolved references
- Capability to delete .pyc files from a project or directory
- Restart console action added to the Python console
Google App Engine Support
- When creating a Google App Engine project, PyCharm always uses Python 2.7 runtime
- ability to choose the way you log in to your Google account
Code Editing
- Action to restore default font size
- Navigating between custom regions
- Unwrap/remove action is available for Python
- Since code completion works after typing any number of characters in the middle of a word, using asterisk wildcard is not required
- Action 'Move Caret to Matched Brace' has been added
- Action 'Fix Doc Comment'
Languages, Frameworks and Technologies
- Vagrant support:
- TextMate/SublimeText 2 support
- Support for FogBugz issue tracking system
- Support for Mantis issue tracking system
- Support for Assembla issue tracking system
Configuring Project and IDE
- Possibility to define fall-back fonts
- Configuring Closure Linter quality checker
- Possibility to configure dependencies between projects opened in the same window
- Possibility to configure scopes
- Option to change font size on the editor tabs
- Darcula theme is available
- Fall-back fonts
- Enabling notification in console on stderror/stdout for external tools
- Possibility to enable parsing PAC file
- Simplified installation of JetBrains-provided plugins
- Locations of the TextMate bundles are shown
Refactoring
- Change signature
- Extract refactorings are supported for substrings with various formatting
- Extract parameter
Tool Windows
- Possibility to add external files to Favorites by drag'n'drop
- Consolidating bookmarks, breakpoints, and favorites in a single tool window
- Icon 'Export Inspection Results' is added to the toolbar of the Inspection tool window
- REST Client tool window
Plugins
- 'Vagrant support' plugin comes bundled with product
- Separate button for installing JetBrains-provided plugins
- 'TextMate Bundles support' plugin comes bundled with product
Navigation and Search
- Speed search in Live Templates allows searching for any text in the template abbreviation, body, or description
- Navigating between custom regions
- Search for usages starts without a modal dialog box
Debugging
- Remote debugging: Archive for Python 3 added
- Ability to collect type information at runtime
- Capability to save types information at run-time
- Capability to clear types information, collected at run-time
Markup languages and style sheets
- Rename refactoring is available for SASS
- File Watchers for transpiling SASS, LESS, and SCSS into CSS and for compressing CSS
- Resolve, completion and search for usages for SASS files
Version Control
- Advanced handling of platform-specific line endings (LF-CRLF).
- Possibility to color-mark directories with the changed descendants
Inspections
- 'PEP 8 coding style violation' inspection:
- Python inspections are available in doctests
Intention Actions and Quick Fixes
- Python intention action 'Replace string concatenation with format operator' supports Python 3.x syntax
- Quick fix 'Create parameter' on unresolved references
JavaScript Support
- File Watchers for transpiling CoffeeScript, TypeScript, and Dart into JavaScript and for compressing JavaScript
- Closure Linter quality checker
Testing Support
- Doctest: code insight for Python code
- Doctest: possibility to open files with *.doctest extension as reStructuredText files
- Ability to rerun failed tests
- Testing RESTful Web services from a dedicated REST Client tool window
- Possibility to pass parameters to the Django tests
Miscellaneous Improvements
- ability to manage case of unicode literals
- Managing tasks and context: integration with PivotalTracker, Redmine, Trac, FogBugz, Mantis, Assembla, and Generic Server issue tracking systems is supported
- Multiselection is available in the list of tasks. Several tasks can be deleted at once
- Possibility to launch an SSH terminal
- Use soft wraps option
- Possibility to switch between the panes of the Differences viewer
- SSH terminal
What's New in Version 2.6
Django Support
- Code completion for META options
- Model dependency diagram is supported for Django models
- Possibility to navigate to block implementation in a template
Python Support
- Python live template to generate super method call (File | Settings | Live Templates).
- Python 3.3 support (unicode literals, yield from, return from generators, annotations)
- UML Class diagrams for Python classes
- Possibility to attach to subprocesses while debugging
- virtualenv: Possibility to assign the new virtual environment as the project interpreter, and make it available to all projects
- virtualenv: While adding an existing virtual environment, it is possible to establish or clear association with the current project, and make the virtual environment available to all projects
- Function pyClassName in template variables returns the name of the current Python class
- Function pyFunctionName in template variables returns the name of the current Python function
Google App Engine Support
Flask
Code Editing
- Scopes for TODO items
- Possibility to copy reference to a line of source code
- Basic code completion is performed after typing the middle of a word
- Code completion suggestion list always contains locations of the suggested variants
- Second code completion suggestion list contains names of the modules and variables
- Hyperlinks to the symbols in the Quick Definition tooltip
- Pinning the Quick Definition tooltip results in showing Documentation tool window
- Pinning the Quick Documentation Lookup results in showing Documentation tool window
- Hungry Backspace action has been added to the platform
Languages, Frameworks and Technologies
Configuring Project and IDE
- Configuring code style for LESS
- The list of file types in which templates are recognized is now configurable under Settings | Template Languages
- ModuleSdkPath macro expands into a project-specific SDK
Tool Windows
- New design of the Database tool window
- Documentation tool window
- New design of the Structure tool window
- Scope-based TODO items
Navigation and Search
Debugging
Inspections
- Option to ignore comparison to zero in the inspection 'Boolean variable check can be simplified' (File | Settings | Inspections) .
Intention Actions and Quick Fixes
- New intention actions for Python (File | Settings | Intentions):
- New intention actions for Python 3.3 (File | Settings | Intentions):
- Quick fix 'Ignore unresolved reference' adds qualified name to the list of ignored references
- Quick fix 'Mark all unresolved references as ignored' lets you ignore all attributes of the object in question
- Intention actions to check and edit regular expressions
UML
- Model dependency diagram is supported for Django models
- Model dependency diagram is supported for Google App Engine models
- Model dependency diagram is supported for SCQAlchemy
- Diagrams support for Python classes and models
Miscellaneous Improvements
- PROJECT_NAME variable is available in file templates
- MONTH_NAME_SHORT and MONTH_NAME_FULL variables are available in file templates
What's New in Version 2.5
IDE
- ALT+Click editor tab to close other tabs
- Pinch-to-Zoom in the editor tabs
- Possibility to view all editor tabs and choose the active tab
Django Support
- Django 1.4 support
- Product notifies about missing Django support and installs Django on project creation
- Ability to install Django on project creation
Python Support
- Ability to choose SDK on project creation
- Python SDK or virtual environment can be configured on project creation
- New Python package can be created in any directory
- After adding an interpreter, the product asks whether it should be made default for the current project
- Virtual environments, associated with the other projects, can be shown or hidden
- Remote Python interpreters are supported
- Virtual environment can be created without leaving the IDE
- virtualenv tool comes bundled with the product
- Virtual environments are detected when adding a Python interpreter for a project
- Named Python interpreters and virtual environments
- ability to browse currently installed packages from PyPI
- Ability to install, uninstall and upgrade packages
- Notification about outdated packages
- Quick fix for installing packages
- Dependencies management
- Actions for setup.py
- Recursive requirements are supported
- Awareness about WORKON_HOME
- Requirements file can be selected in the file system
Code Editing
- Sticky selection
- Custom code folding regions
- Emacs actions can be invoked via Go to Action
- More Emacs actions have been added to the platform (kill ring, sticky selection, adjust line); keyboard shortcuts have been added in the Emacs scheme
Languages, Frameworks and Technologies
- Possibility to preview compiled CoffeeScript files
- Cython support: Cython syntax for typed memoryviews
Configuring Project and IDE
- New way to access IDE Settings via Go to Action
- Virtual environment is recognized in project directory and by default made the project interpreter
- Ability to configure SDK or virtual environment on project creation
- Improved code style settings
- Possibility to show or hide virtual environments, associated with the other projects
- Python interpreters and virtual environments can be differentiated by names
- Available Python interpreters are configured on the project level
- Possibility to install packages to virtual environments and the interpreters that contain pip
- Possibility to uninstall packages
- Possibility to view outdated versions
- Capability to view available packages
- Capability to manage repositories
- Requirements file can be selected in the file system
- 'Disable mnemonic in controls allows the Mac users to search for @ sign in the find in path dialog box
- Possibility to hide navigation pop-up frames on focus loss
- Preselect old name
- Possibility to recognize line comments if it starts at the very first position on a line
Tool Windows
Running
Debugging
- Remote debugging with a remote Python interpreter over SSH
- Exception breakpoints can be activated on the first generation only
Version Control
- Streamlined UI for Git branches
- Creating new Git branches
- Checking out Git branches
- New merging, deleting, and comparing Git branches
- Ability to switch to Perforce online mode in the Changes tool window
- Integration with Subversion 1.7 is supported
- Local working copies can be created with Subversion 1.7
- Check box for memorizing password
- For Perforce integration, two refresh modes are supported
Inspections
- New JavaScript inspection Bitwise operation issues
- Quick fix for import statement suggests to install a missing package
JavaScript Support
- Code coverage for JavaScript Unit testing
- Switching between JavaScript language versions to choose the one that fits the targeted browser
- JavaScript Strict mode supported
Miscellaneous Improvements
- New way of creating and deleting tasks via tasks combo
- Possibility to view task description
- Possibility to show tasks combo in the main toolbar
What's New in Version 2.0
IDE
- Possibility to preserve temporary files
- Possibility to reopen a project from the Welcome screen
- Possibility to drag and drop a project onto the Welcome screen
- Possibility to work with several projects in one window
Django Support
- Previewing HTML pages and Django templates in the various browsers
- I18N is now supported in Django projects
- Django console settings
Python Support
Google App Engine Support
- When creating a Google App Engine project, Python runtime can be selected
- Google App Engine settings are configured per project
Code Editing
Languages, Frameworks and Technologies
- CoffeeScript support
- Cython support
- Support for template languages (Mako, Jinja)
- Ability to create templates in the supported template languages
- IPython support
Configuring Project and IDE
- ability to copy code style from another language
- Live templates can be created and edited right in the Settings | Live Templates dialog box
- Buildout settings are configured per project
- Language-specific code style settings
- Django settings are configured per project
- Google App Engine settings are configured per project
- Project SDK is selected per project from the list of available Python interpreters
- Available Python interpreters are configured on the IDE level
- Project structure is configured per project
- Template languages are configured per project
- Generating type and rtype in doc comment stubs
- Safe write mode
Refactoring
- In-place Extract Constant refactoring
- In-place Introduce Field refactoring
- In-place Introduce Variable refactoring
Tool Windows
- Tool Windows are now available on the View | Tool Windows menu
- Event Log tool window shows all IDE notifications and allows you to take action where needed
- Dedicated tool window for managing your project favorites
- Dedicated JSTestDriver tool widow for starting the JsTestDriver server for running JavaScript unit tests in the browser
Navigation and Search
- Navigation commands are available on the Navigate menu
- Navigation to code block start and end
- Search functionality is in the Edit menu
- Multiline search and replace in the current file
- Context menu command and shortcut to navigate from backtrace to source
Running
Debugging
- Smart step into - possibility to select method to step into
- Debugging Django server in autoreload mode is now possible
Markup languages and style sheets
Version Control
- Reviewing changes to be checked in (Digest view) right in the Commit dialog box
- Viewing local changes from base revision in a dedicated pane on the Local tab of the Changes tool window
- Initial support of git gists for sharing code snippets on GitHub
- Possibility to view change details for a file
- Revision graphs for Git
- Details section allows you to preview results before commit
Inspections
- Inspection 'Type checker' (File | Settings | Inspections)
- Inspection 'Deprecated function, class or module' (File | Settings | Inspections)
Web Resources
Data Access Support
JavaScript Support
- JavaScript degugging
- The mark object action is available in the JavaScript debugger
- JavaScript unit testing
- Node.js: coding assistance, running, debugging, and unit testing
- JavaScript run/debug configuration
Testing Support
- Code Coverage is available
- Code Coverage colors can be changed
- Single action to run with coverage
- Unit Testing for JavaScript. JSTestDriver Assertion, QUnit, and Jasmine frameworks are supported
- Running JavaScript unit tests in browser
- Attest support
- Creating tests using go to test action
- Possibility to detect test functions outside subclasses of unittest.testcase
Remote Hosts
Miscellaneous Improvements
- Create command-line Launcher for Mac and Linux is in the Tools menu
- Column selection mode
- Macros functionality is in the Edit menu
- Possibility to compare binary files
- Hierarchies built are in the Navigate menu
- Find Action is in Help menu
- A folder can be marked as a template directory from context menu
What's New in Version 1.5.3
Django Support
- Auto-detecting virtualenv when creating a new project via Open Directory
- Referring to the static contents
Code Editing
- Moving lines up and down
- CamelHumps in code completion are detected without using the Shift key
- Viewing quick documentation for parameters
- External documentation
- Code completion is available for tags after @ or :, and for function parameters
- Syntax highlighting is available for tags in reStructuredText and Epytext formats
- Ability to generate formatted API documentation
- Text in Quick Documentation window is rendered according to selected docstring format
Configuring Project and IDE
- Generating doc comment stubs
- Possibility to automatically insert line continuation on pressing enter
- Option for inserting self
Refactoring
- Renaming method parameter results in renaming its tag in doc comment (for epytext and sphinx)
- Move Class refactoring
Navigation and Search
Debugging
Version Control
- Viewing the GitHub version of a file from %product%
- Setting up connection to Perforce server has become highly fail-proof
Inspections
- Inspection for reStructuredText 'Role is not defined' helps detect undefined roles (File | Settings | Inspections)
- Inspection 'Unresolved static reference' (File | Settings | Inspections)
Data Access Support
Miscellaneous Improvements
- Ability to view the current cursor position in a pop-up
- Inherited members and fields can be shown in the Structure tool window
- Using up and down arrow keys in console
What's New in Version 1.2
Django Support
- Django 1.3 support
- Class-based views
- Possibility to enter optional parameters for the tasks of the manage.py utility
- Creating non-existent templates
- Navigation between templates and views
Code Editing
- Changing font size in the Quick Documentation window
- Possibility to search for usages in the comments and text strings
- Ctrl-enter splits a line without adding backslash
Configuring Project and IDE
Refactoring
- Applying rename refactoring to the hierarchy of Python classes and method parameters
- Applying rename refactoring to the containing file of a Python class
Navigation and Search
Inspections
Intention Actions and Quick Fixes
Testing Support
- Ability to view differences for the assertequals failures
- Exact doctest can be specified in an application
Miscellaneous Improvements
- Possibility to run code from the editor in the interactive console
- Localization file type is now recognized
What's New in Version 1.1
Code Editing
- More precise behavior on expanding selection in lists
- Possibility to complete known keys for dictionaries
- Automatic insertion of self
Debugging
- Python exception breakpoints are now available
- Remote debugging
- Conditional breakpoints are supported
- Exception breakpoints break on unhandled exceptions
- Possibility to use command line in the debugger console
Inspections
Intention Actions and Quick Fixes
JavaScript Support
- Ability to set up JavaScript libraries
- Intention action to download JavaScript libraries
- Scopes as the way to narrow down the suggestion lists
Testing Support
- Run/debug configuration: doctest
- Files with tests are defined by patterns
- Run/debug configuration: nose test
- Possibility to define the default testing run/debug configuration

