#Python An extension with rich support for Python language, with features including the following and more:
- Linting (Prospector, PyLint, Pep8, Flake8, pydocstyle with config files and plugins)
- Intellisense (autocompletion)
- Auto indenting
- Code formatting (autopep8, yapf, with config files)
- Renaming, Viewing references, and code navigation
- View signature and similar by hovering over a function or method
- Excellent debugging suppot (variables, arguments, expressions, watch window, stack information, break points, remote debugging, mutliple threads)
- Unit testing (unittests and nosetests, with config files)
- Sorting imports
- Snippets
##Quick Start
- Install the extension
- If Python is in the current path
- You're ready to use it.
- If using a custom Python Version or a Virtual Environment
- Configure the path to the python executable in python.pythonPath of the settings.json file (further details here)
For further information and details continue through to the documenetation.
##Feature Requests and contributions
- Contributions are always welcome. Fork it, modify it and create a pull request.
- Any and all feedback is appreciated and welcome.
- Please feel free to add suggestions here
##Roadmap
Please note, not all of these feature may be developed.
Your feedback is crucial in prioritizing the items and in determining whether we shift focus our attention to some other feature request(s).
- Intellisense and Linting
- Performance improvements
- Linting as you type
- Context actions for some linter messages
- Remote Interpretter
- Miscellaneous IDE enhancements
- Code Refactoring
- Autogenerate docstring
- Documentation viewer
- Improved integration of Unit Tests
- Integration
- Code coverage
- Profiler
- Integrating IPython
- Debugging enhancements
- Integration with VS Code Terminal window
- Securely debugging Python applications in the cloud (Azure, AWS or Google Cloud)
- Remote debugging over SSH
- IDE Features
- Auto indenting
- Code navigation (Go to, Find all references)
- Code definition (Peek and hover definition, View Signature)
- Rename refactoring
- Sorting Import statements (use "Python: Sort Imports" command)
- Ability to include custom module paths (e.g. include paths for libraries like Google App Engine, etc)
- Use the setting python.autoComplete.extraPaths = []
- For instance getting autocomplete/intellisense for Google App Engine, add the following to your settings file:
"python.autoComplete.extraPaths": [
"C:/Program Files (x86)/Google/google_appengine",
"C:/Program Files (x86)/Google/google_appengine/lib" ]
- Auto formatting of code upon saving changes (default to 'Off')
- Use either yapf or autopep8 for code formatting (defaults to autopep8)
- It can be turned off (default is turn it on and use pylint)
- Multiple linters supported (along with support for configuration files for each linter)
- Supported linters include pylit, pep8, flake8, pydocstyle, prospector
- Paths to each of the linters can be optionally configured
- Custom plugins such as pylint plugin for Django can be easily used by modifying the settings as follows:
"python.linting.pylintArgs": ["--load-plugins", "pylint_django"]
- Watch window
- Evaluate Expressions
- Step through code (Step in, Step out, Continue)
- Add/remove break points
- Local variables and arguments
- Multiple Threads and Web Applications (such as Flask) (Windows and Mac)
- Expanding values (viewing children, properties, etc) (Windows and Mac)
- Conditional breakpoints
- Remote debugging
- Unit Testing
- Support for unittests, nosetests and pytest
- Test resutls are displayed in the "Python" output window
- Snippets
- Fixed error message being displayed by linters and formatters
- Changes to how linters and formatters are executed (optimizations and changes to settings to separate out the command line arguments) #178, #163
- Fix to support Unicode characters in debugger #102
- Added support for {workspaceRoot} in Path settings defined in settings.js #148
- Resolving path of linters and formatters based on python path defined in settings.json #148
- Better handling of Paths to python executable and related tools (linters, formatters) in virtual environments #148
- Added support for configurationDone event in debug adapter #168, #145
- Added support for telemetry #156
- Optimized code formatting and sorting of imports #150, #151, #157
- Fixed issues in code formatting #171
- Modifications to display errors returned by debugger #111
- Fixed the prospector linter #142
- Modified to resolve issues where debugger wasn't handling code exceptions correctly #159
- Added support for unit tests using pytest #164
- Fixed issue with duplicate output channels being created
- Fixed issues in the LICENSE file
- Fixed issue where current directory was incorrect #68
- General cleanup of code
- Fixed auto indenting issues #137
- Added support for linting using prospector #130
- Fixed issue where environment variables weren't being inherited by the debugger #109 and #77
- Added support for auto indenting of some keywords #83
- Added support for launching console apps for Mac #128
- Fixed issue where configuration files for pylint, pep8 and flake8 commands weren't being read correctly #117
- Added support for linting using pydocstyle #56
- Added support for auto-formatting documents upon saving (turned off by default) #27
- Added support to configure the output window for linting, formatting and unit test messages #112
- Fixed printing of unicode characters when evaulating expressions #73
- Updated snippets
- Fixes to remote debugging #65
- Fixes related to code navigation #58 and #78
- Changes to allow code navigation for methods
- Ability to control how debugger breaks into exceptions raised (always break, never break or only break if unhandled)
- Disabled displaying of errors, as there are a few instances when errors are displayed in the IDE when not required
- Remote debugging (updated documentation and fixed minor issues)
- Fixed issues with formatting of files when path contains spaces
- Remote debugging (attaching to local and remote processes)
- Debugging with support for shebang
- Support for passing environment variables to debug program
- Improved error handling in the extension
- Added support for debugging django applications
- Debugging templates is not supported at this stage
- Added support for conditional break points
- Added ability to optionally display the shell window (Windows Only, Mac is coming soon)
- Allowing an interactive shell window, which isn't supported in VSCode.
- Added support for optionally breaking into python code as soon as debugger starts
- Fixed debugging when current thread is busy processing.
- Updated documentation with samples and instructions
- Fixed issue where debugger would break into all exceptions
- Added support for breaking on all and uncaught exceptions
- Added support for pausing (breaking) into a running program while debugging.
- Fixed termination of debugger
- Improved debugger for Mac, with support for Multi threading, Web Applications, expanding properties, etc
- (Debugging now works on both Windows and Mac)
- Debugging no longer uses PDB
- Improved debugger for Windows, with support for Multi threading, debugging Multi-threaded apps, Web Applications, expanding properties, etc
- Added support for relative paths for extra paths in additional libraries for Auto Complete
- Fixed a bug where paths to custom Python versions weren't respected by the previous (PDB) debugger
- NOTE: PDB Debugger is still supported
- Fixed linting when using pylint
- Fixed autoformatting of code (falling over when using yapf8)
- Added support for linting using flake8
- Added support for unit testing using unittest and nosetest
- Added support for custom module paths for improved intellisense and autocomplete
- Modifications to debugger to display console output (generated using 'print' and the like)
- Modifications to debugger to accept arguments
- Fixed linting of files on Mac
- Added support for linting using pep8
- Added configuration support for pep8 and pylint
- Added support for configuring paths for pep8, pylint and autopep8
- Added snippets
- Added support for formatting using yapf
- Added a number of configuration settings
- Added support for linting using Pylint (configuring pylint is coming soon)
- Added support for sorting Imports (Using the command "Pythong: Sort Imports")
- Added support for code formatting using Autopep8 (configuring autopep8 is coming soon)
- Added ability to view global variables, arguments, add and remove break points
- Added support for debugging using PDB