This training material teaches VSCode Extension Development with TypeScript for experienced Java developers with Eclipse background. It systematically guides from architectural fundamentals to production-ready extension development, considering the conceptual differences between Java/Eclipse and TypeScript/VSCode.
The training assumes the following knowledge: Solid Java skills, experience with Eclipse plugin development, understanding of build tools and IDE concepts. TypeScript knowledge is not required but will be taught systematically within the extension context.
A repository contains a progressively built example extension with eleven development stages. Each branch demonstrates specific extension concepts and corresponds with the theoretical chapters:
| Topic Area | Chapters | Learning Objective | Repository Branch |
|---|---|---|---|
| Architecture & Fundamentals | 1-6 | Understanding VSCode platform, Extension Host concept, differences to Eclipse, system integration | Conceptual foundation |
| Project Setup & Scaffolding | 7-8 | Project initialization with yo code, Yeoman generator framework | 00_init |
| TypeScript Fundamentals | 9-11 | TypeScript for Java developers, closures, async/await, transpilation | 01_typescript_basics |
| Extension Basics | 12-15 | Manifest structure, contributes section, activation mechanisms, debugging setup | 02_manifest_activation |
| TypeScript Deep Dive | 16-20 | OOP, interfaces, modules, structural typing, tooling (npm, @types) | 03_typescript_advanced |
| Extension Lifecycle & Activation | 21-24 | activate()/deactivate(), activation events, context objects, performance optimization | 04_lifecycle |
| Core Extension APIs | 25-28 | Commands, command palette integration, menus, user interaction dialogs | 05_commands_ui |
| Editor & Text Manipulation | 29-33 | Active editor access, text operations, TextEditorEdit API, selections, practical examples | 06_editor_manipulation |
| File System & Workspace | 34-37 | File operations, URIs, workspace folders, file dialogs | 07_filesystem |
| Advanced UI Components | 38-41 | Webviews, Tree Data Provider, FileSystem Provider, Task Provider, Debug Adapter | 08_advanced_ui |
| Language Integration | 42 | Language Server Protocol, IntelliSense, diagnostics | 09_language_server |
| Testing & Debugging | 43-44 | Test frameworks, unit/integration tests, debugging strategies | 10_testing_debugging |
| Distribution | 45-47 | VSIX packaging, Marketplace publishing, team distribution | 11_distribution |
| Professionalization | 48 | Accessibility, internationalization, enterprise standards | 12_enterprise |
The training follows a project-based approach: Each topic is implemented in the respective example extension. Starting with the yo code generator, participants progressively develop a complete extension with all essential VSCode integration patterns.
TypeScript instruction occurs contextually within extension development, allowing Java developers to understand language concepts directly in their practical application. Architecture comparisons to Eclipse plugins facilitate conceptual transfer.
Each chapter is independently usable, enabling both linear progression and targeted reference of specific implementation details. The branches in the repository serve as practical reference and present comprehensible implementations.