2 Introduction

2.1 Objectives and Target Audience

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:

2.2 Agenda

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

2.3 Concept

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.