Skip to content

Components

Eric Snow edited this page Oct 8, 2019 · 5 revisions

The Python extension for VS Code provides functionality to users through the VS Code UI. This involves heavy use of the VS Code API. That API can be divided into various components. Those components are:

  • language services / Language Server
    • declarative:
      • syntax highlighting
      • snippet completion
      • bracket matching
      • bracket autoclosing
      • bracket autosurrounding
      • comment toggling
      • auto indentation
      • folding (by markers)
    • programatic (see also ...):
      • hover
      • auto completion
      • jump to definition
      • error checking
      • formatting
      • refactoring
      • folding
      • ...
  • debugging
  • terminal
  • testing
  • ...

The functionality of the Python extension can partitioned along those lines. The extension also has a number of extra components, in part relative to internal functionality. They are:


Note: we may, at some point, split out different components of the extension into independent npm packages or even sub-extensions. They may or may not have their own repositories and issue trackers.

Candidates:

  • managing interpreter environments ("python-interpreter"?)
  • each of the interpreter environments (conda, virtualenv, venv, pipenv, pyenv, system-installed)
  • testing, including the test adapter script
  • each of the testing frameworks (unittest, pytest, nose2)
  • formatting
  • each of the formatters (black, yapf, autopep8)
  • linting
  • each of the linters (pylint, etc.)
  • language server
  • terminal support (e.g. run-in-terminal)

Fundamental language config, etc. would stay in the main extension.

Clone this wiki locally