Skip to content

sergiuilie/theia-training

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commits
 
 
 
 

Repository files navigation

Theia Workshop

Theia is the new star on the dev tools sky: with Theia, you can write your own IDE-like applications that run as desktop tools as well as in the browser. Theia is web-native, entirely written in Typescript, and offers a degree of customizability similar to Eclipse RCP. It is open source and in the process of becoming an Eclipse project, backed by companies like TypeFox, Ericsson, ARM, RedHat, Google, IBM and SAP.

In this workshop, you’ll get acquainted with the base architecture of Theia, you will learn how to compose existing building blocks to author your own specialized IDE, and you will see how to implement your own extensions.

Exercises

The workshop consists of several exercises. For each exercise, there are 2 branches in the repository: one with an exercise and another with a solution.

Getting started

During the workshop, you will use Theia-based Online IDE for GitHub - Gitpod. To start with the exercises you only need a modern browser. For the best experience, please use Chrome. You can open any branch on GitHub by prefixing its URL with gitpod.io#. For example, to open Gitpod for the exercise 0:

In this exercise, you learn:

  • the structure of a Theia extension project;
  • how to create a Theia application, build and run it;
  • how to configure a Theia extension with dependency injection.

In this exercise, you learn:

  • frontend and backend application lifecycle and contributions;
  • how to register commands, keybindings and menus;
  • how to use the command palette and the status bar;
  • how to open files.

In this exercise, you learn:

  • what is a widget and its lifecycle hooks;
  • how to add a view (singleton widget);
  • how to render in React;
  • how to preserve a widget state between reloads.

In this exercise, you learn:

  • how to add a new JSON-RPC service;
  • how to handle reconnections;
  • what is the connection scoping and how to work with multiple windows.

In this exercise, you learn:

  • how to add a new open handler;
  • how to configure and use preferences;
  • what is the navigatable widget and how to implement one.

Exercise 5: Connect a LS or DA

...TODO

In this exercise, you learn how to add a new language server or debug adapter support.

In this exercise, you learn:

  • how to customize the default layout;
  • how to customize the menu bar;
  • how to remove functionality;
  • how to customize theming.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published