forked from DonJayamanne/pythonVSCode
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Components
Rich Chiodo edited this page Apr 7, 2020
·
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
- ...
-
declarative:
-
terminal
-
...
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:
- interpreter environments
- formatters
- linters
- ...
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.