An extension with rich support for the Python language, with features including the following and more:
- Linting (Prospector, Pylint, pycodestyle/Pep8, Flake8, pydocstyle with config files and plugins)
- Intellisense (autocompletion)
- Auto indenting
- Code formatting (autopep8, yapf, with config files)
- Code refactoring (Rename, Extract Variable, Extract Method, Sort Imports)
- Renaming, Viewing references, and code navigation
- View signature and similar by hovering over a function or method
- Excellent debugging support (variables, arguments, expressions, watch window, stack information, break points, remote debugging, mutliple threads)
- Unit testing (unittest, pytest, nosetests, with config files)
- Execute file or selected code in python terminal
- Snippets
- 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, use the command
Select Workspace Interpreter
)
For further information and details continue through to the documentation.
- Contributions are always welcome. Fork it, modify it and create a pull request.
- Details on contributing can be found here
- Any and all feedback is appreciated and welcome.
- Please feel free to add suggestions here
- 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 to be turned 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, Django)
- Expanding values (viewing children, properties, etc)
- Conditional break points
- Remote debugging
- Google App Engine
- Debugging in the integrated or external terminal window
- Debugging as sudo
- Unit Testing
- Support for unittests, nosetests and pytest
- Test results are displayed in the "Python" output window
- Run failed tests, individual tests
- Snippets
- Miscellaneous
- Running a file or selected text in python terminal
- Refactoring
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
- Remote Interpretter
- Miscellaneous IDE enhancements
- Auto-generate docstring
- Documentation viewer
- Complex code refactoring (alogn with UI to preview)
- Debugging unit tests
- Intelliense (completions) within debugger
- Integration
- Code coverage
- Profiler
- Integrating IPython
- Debugging enhancements
- Securely debugging Python applications in the cloud (Azure, AWS or Google Cloud)
- Remote debugging over SSH
- Added support for clearing cached tests #307
- Added support for executing files in terminal with spaces in paths #308
- Fix issue related to running unittests on Windows #309
- Support custom environment variables when launching external terminal #311
- Added support for the attribute supportsRunInTerminal attribute in debugger #304
- Changes to ensure remote debugging resolves remote paths correctly #302
- Added support for custom pytest and nosetest paths #301
- Resolved issue in
Watch
window displaying<error:previous evaluation...
#301 - Reduce extension size by removing unwanted files #296
- Updated code snippets
- Added few new snippets
- Integrated Unit Tests
- Selecting interpreter and updating
settings.json
[Documentation]](https://github.com/DonJayamanne/pythonVSCode/wiki/Miscellaneous#select-an-interpreter), #257 - Running a file or selection in terminal Documentation, #261 (new to Visual Studio Code 1.5)
- Debugging an application using the integrated terminal window (new to Visual Studio Code 1.5)
- Running a python script without debugging #118
- Displaying errors in variable explorer when debugging #271
- Ability to debug applications as sudo #224
- Fixed debugger crashes #263
- Asynchronous display of unit tests #190
- Fixed issues when using relative paths in
settings.json
#276 - Fixes issue of hardcoding interpreter command arguments #256
- Fixes resolving of remote paths when debugging remote applications #252
- James Booth
- QIU Quan
- Changes to ensure remote debugging resolves remote paths correctly #302