All Visual Studio Code extensions share a common model of contribution (registration), activation (loading) and access to the VS Code extensibility API.
There are however two special flavors of VS Code extensions, language servers and debuggers, which have their own additional protocols and are covered in their own sections of the documentation.
- Extensions – the base building block
- Language Servers – for high cost IO or CPU intensive tasks
- Debuggers – wire up an external debugger