/pythonVSCode

Python support for Visual Studio Code

Primary LanguagePythonMIT LicenseMIT

Python

An extension with rich support for the Python language, with features including the following and more:

  • Linting (Prospector, Pylint, pycodestyle/Pep8, Flake8, pylama, pydocstyle with config files and plugins)
  • Intellisense (autocompletion with support for PEP-0484)
  • PySpark and Scientific tools (Jupyter/IPython)
  • Auto indenting
  • Code formatting (autopep8, yapf, with config files)
  • Code refactoring (Rename, Extract Variable, Extract Method, Sort Imports)
  • Viewing references, code navigation, view signature
  • Excellent debugging support (remote debugging over SSH, mutliple threads, django, flask)
  • Running and debugging Unit tests (unittest, pytest, nosetests, with config files)
  • Execute file or code in a python terminal
  • Local help file (offline documentation)
  • 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, use the command Select Workspace Interpreter)

Documentation

For further information and details continue through to the documentation.

Issues, Feature Requests and Contributions

  • 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.

Feature Details

  • 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" ]
  • Executing blocks of code (cells) in a Jupyter Kernel
  • Managing kernels (restarting, stopping, interrupting and selecting different kernels)
  • Viewing interactive graphs, HTML, SVG, LaTeX output from Jupyter from within Visual Studio Code
  • 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 pylint, 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, with template debugging)
  • Expanding values (viewing children, properties, etc)
  • Conditional break points
  • Remote debugging (over SSH)
  • Google App Engine
  • Debugging in the integrated or external terminal window
  • Support for unittests, nosetests and pytest
  • Test results are displayed in the "Python" output window
  • Run failed tests, individual tests
  • Debugging unittests
  • Snippets
  • Miscellaneous
  • Running a file or selected text in python terminal
  • Refactoring

Generate Features

Debugging

Unit Tests

Scientific Tools

Local Help

Roadmap

Change Log

Version 0.5.5 (25 November 2016)

  • Fixes to debugging of unittests (nose and pytest) #543
  • Fixes to debugging of Django #546

Version 0.5.4 (24 November 2016)

  • Fixes to installing missing packages #544
  • Fixes to indentation of blocks of code #432
  • Fixes to debugging of unittests #543
  • Fixes to extension when a workspace (folder) isn't open #542

Version 0.5.3 (23 November 2016)

  • Added support for PySpark #539, #540
  • Debugging unittests (UnitTest, pytest, nose) #333
  • Displaying progress for formatting #327
  • Prefixing new lines with '#' when new lines are added in the middle of a comment string #365
  • Debugging python modules #518, #354
    • Use new debug configuration Python Module
  • Added support for workspace symbols using Exuberant CTags #138
    • New command Python: Build Workspace Symbols
  • Auto indenting else: inside if and similar code blocks #432
    • Add the following setting in user settings.json
        "editor.formatOnType": true,
  • Added ability for linter to ignore paths or files #501
    • Add the following setting in settings.json
        "python.linting.ignorePatterns":  [
            ".vscode/*.py",
            "**/site-packages/**/*.py"
          ],
  • Automatically adding brackets when autocompleting functions/methods #425
    • To enable this feature, turn on the setting "python.autoComplete.addBrackets": true
  • Running nose tests with the arguments '--with-xunit' and '--xunit-file' #517
  • Added support for workspaceRootFolderName in settings.json #525, #522
  • Added support for workspaceRootFolderName in settings.json #525, #522
  • Fixes to running code in terminal #515

Thanks

Source

GitHub

License

MIT