Skip to content

Commit

Permalink
Fix root-relative links
Browse files Browse the repository at this point in the history
  • Loading branch information
planger committed Apr 4, 2024
1 parent 9865ee1 commit 4bcfba7
Show file tree
Hide file tree
Showing 19 changed files with 43 additions and 43 deletions.
2 changes: 1 addition & 1 deletion src/docs/authoring_extensions.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ A Theia app is composed of so-called _extensions_. An extension provides a set o

Theia defines a plethora of contribution interfaces that allow extensions to add their behaviour to various aspects of the application. Just search for interfaces with the name `*Contribution` to get an idea. An extension implements the contribution interfaces belonging to the functionality it wants to deliver. In this example, we are going to implement a `CommandContribution` and a `MenuContribution`. Other ways for extensions to interact with a Theia application are via one of the various _services_ or _managers_.

In Theia, everything is wired up via [dependency injection](/docs/Services_and_Contributions#dependency-injection-di). An extension defines one or more dependency injection modules. This is where it binds its contribution implementations to the respective contribution interface. The modules are listed in the `package.json` of the extension package. An extension can contribute to the frontend, e.g. providing a UI extension, as well as to the backend, e.g. contributing a language server. When the application starts, the union of all these modules is used to configure a single, global dependency injection container on each, the frontend and the backend. The runtime will then collect all contributions of a specific kind by means of a multi-inject.
In Theia, everything is wired up via [dependency injection](Services_and_Contributions#dependency-injection-di). An extension defines one or more dependency injection modules. This is where it binds its contribution implementations to the respective contribution interface. The modules are listed in the `package.json` of the extension package. An extension can contribute to the frontend, e.g. providing a UI extension, as well as to the backend, e.g. contributing a language server. When the application starts, the union of all these modules is used to configure a single, global dependency injection container on each, the frontend and the backend. The runtime will then collect all contributions of a specific kind by means of a multi-inject.

## Prerequisites

Expand Down
2 changes: 1 addition & 1 deletion src/docs/authoring_plugins.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ In the previous commands:
Here is an animated screenshot of the generator running.
<img src="../yeoman-plugin.gif" class="doc-image" alt="Yeoman plugin output">
<img src="../../yeoman-plugin.gif" class="doc-image" alt="Yeoman plugin output">
Pick up default values for each question.
Expand Down
6 changes: 3 additions & 3 deletions src/docs/blueprint_documentation.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ title: Extending/Adopting the Theia IDE

# Extending/Adopting the Theia IDE

This guide provides an overview on how to extend and customize the Theia IDE to your own custom IDE or tool. In this scenario, the Eclipse Theia IDE is an example product used as a reference on how to build desktop IDE-like products based on the Eclipse Theia framework. If you just want to use the Theia IDE, see the [user guide](/docs/user_getting_started)
This guide provides an overview on how to extend and customize the Theia IDE to your own custom IDE or tool. In this scenario, the Eclipse Theia IDE is an example product used as a reference on how to build desktop IDE-like products based on the Eclipse Theia framework. If you just want to use the Theia IDE, see the [user guide](user_getting_started)

Please note that adopting the Theia IDE as a basis is just one of several ways to get started with building a Theia-based application. We recommend reading the article "[Build your own IDE/Tool](/docs/composing_applications)" as a first step. Furthermore, this guide is focused on building a desktop app. We also provide an [experimental Docker version](https://github.com/eclipse-theia/theia-blueprint?tab=readme-ov-file#docker-build) of the Theia IDE as an alternative.
Please note that adopting the Theia IDE as a basis is just one of several ways to get started with building a Theia-based application. We recommend reading the article "[Build your own IDE/Tool](composing_applications)" as a first step. Furthermore, this guide is focused on building a desktop app. We also provide an [experimental Docker version](https://github.com/eclipse-theia/theia-blueprint?tab=readme-ov-file#docker-build) of the Theia IDE as an alternative.

The Theia IDE assembles a selected subset of existing Theia features and extensions.
We provide installers for the Theia IDE to be downloaded (see links below).
Expand Down Expand Up @@ -57,7 +57,7 @@ However, as signing is highly dependent on your setup, see the [electron builder

## Adding/Removing Features

The Theia IDE is based on the Theia platform, which is a flexible and adaptable platform for build tools and IDEs. Therefore, you can adapt the feature set and general appearance of the Theia IDE to your custom requirements with almost no limits. The Theia platform provides two mechanism to add your custom extensions: VS Code extensions and Theia extensions. Please have a look at the [overview about Theia extension capabilities](/docs/extensions/) for details. When assembling a product such as the Theia IDE, you can freely decide, which VS Code extensions and Theia extensions are part of it and thereby influence the feature set of your custom product. The following two sections describe how to modify which [VS Code Extensions](#updating-bundled-vs-code-extensions) and which [Theia extensions](#customizing-theia-extensions) are part of your product. Please also note that you can allow users of a Theia-based tool to [install VS Code extensions at runtime](/docs/user_install_vscode_extensions/).
The Theia IDE is based on the Theia platform, which is a flexible and adaptable platform for build tools and IDEs. Therefore, you can adapt the feature set and general appearance of the Theia IDE to your custom requirements with almost no limits. The Theia platform provides two mechanism to add your custom extensions: VS Code extensions and Theia extensions. Please have a look at the [overview about Theia extension capabilities](extensions/) for details. When assembling a product such as the Theia IDE, you can freely decide, which VS Code extensions and Theia extensions are part of it and thereby influence the feature set of your custom product. The following two sections describe how to modify which [VS Code Extensions](#updating-bundled-vs-code-extensions) and which [Theia extensions](#customizing-theia-extensions) are part of your product. Please also note that you can allow users of a Theia-based tool to [install VS Code extensions at runtime](user_install_vscode_extensions/).

## Updating Bundled VS Code Extensions

Expand Down
6 changes: 3 additions & 3 deletions src/docs/breadcrumbs.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ If enabled via the preferences, Theia can show a navigation bar, often referred
This interactive navigation bar indicates the location of the widget's content in the context of an overall structure, such as the filesystem.
By default, Theia shows breadcrumbs for the location of files in the filesystem when a file is opened in the text editors.

<img src="../breadcrumbs.png" alt="A screenshot of breadcrumbs in Theia" style="max-width: 525px">
<img src="../../breadcrumbs.png" alt="A screenshot of breadcrumbs in Theia" style="max-width: 525px">

However, Theia's breadcrumbs mechanism can also be used for any custom widget, too.
Moreover, Theia allows showing a widget's content location in an arbitrary custom logical structure, such as a custom project structure.
Expand Down Expand Up @@ -89,7 +89,7 @@ export class CustomBreadcrumbsContribution implements BreadcrumbsContribution {

Once the breadcrumbs contribution is registered, Theia will show the following for our custom widget.

<img src="../breadcrumbs-custom.png" alt="A screenshot of custom breadcrumbs in Theia" style="max-width: 525px">
<img src="../../breadcrumbs-custom.png" alt="A screenshot of custom breadcrumbs in Theia" style="max-width: 525px">

## Interactive Breadcrumbs

Expand All @@ -113,7 +113,7 @@ export class CustomBreadcrumbsContribution implements BreadcrumbsContribution {
}
```

<img src="../breadcrumbs-popup.png" alt="A screenshot of custom breadcrumbs with a popup in Theia" style="max-width: 525px">
<img src="../../breadcrumbs-popup.png" alt="A screenshot of custom breadcrumbs with a popup in Theia" style="max-width: 525px">

## Priority of Breadcrumbs Contributions

Expand Down
2 changes: 1 addition & 1 deletion src/docs/composing_applications.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ This guide will teach you how to build your own Theia-based application. The gui
This guide describes the manual steps to build a Theia-based product, there are two ways to avoid this manual set-up:

- [Theia Extension Yeoman generator](https://github.com/eclipse-theia/generator-theia-extension): Generates Theia-based products along with example extensions.
- [Theia IDE](/#theiaide): A tool based on the Theia Platform that can be used as a template for creating installable desktop applications based on Theia. [Learn how to extend and adapt the Theia IDE](/docs/blueprint_documentation/).
- [Theia IDE](../../#theiaide): A tool based on the Theia Platform that can be used as a template for creating installable desktop applications based on Theia. [Learn how to extend and adapt the Theia IDE](blueprint_documentation/).

We still recommend reading the manual guide first, it allows you to understand the structure of a Theia-based project.

Expand Down
6 changes: 3 additions & 3 deletions src/docs/enhanced_tab_bar_preview.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ title: Enhanced Tab Bar Preview

# Enhanced Tab Bar Preview

By default, Theia shows the value of a widget's `caption` property when users hover above a widget's tab (see also [widgets](/docs/widgets/)).
By default, Theia shows the value of a widget's `caption` property when users hover above a widget's tab (see also [widgets](widgets/)).
In certain use cases, especially with custom editors, this information may however not be sufficient to give users sufficient overview about a widget's content before activating the tab.

Therefore, Theia optionally provides an enhanced tab bar preview for widgets of the main or bottom area of Theia; that is, for horizontal tab bars.
Expand All @@ -15,11 +15,11 @@ Moreover, it can easily be styled according to the needs of a tool provider adop

The enhanced tab bar preview is disabled by default and needs to be explicitly enabled with a via the preference `window.tabbar.enhancedPreview`.

<img src="../enhanced-preview-setting.png" alt="A screenshot of the window.tabbar.enhancedPreview setting in Theia" style="max-width: 525px">
<img src="../../enhanced-preview-setting.png" alt="A screenshot of the window.tabbar.enhancedPreview setting in Theia" style="max-width: 525px">

After enabling the enhanced tab bar preview, users will see the following on hovering over a widget's tab:

<img src="../enhanced-preview.png" alt="A screenshot of the enhanced preview in Theia" style="max-width: 525px">
<img src="../../enhanced-preview.png" alt="A screenshot of the enhanced preview in Theia" style="max-width: 525px">

## Specifying the contents of the preview

Expand Down
2 changes: 1 addition & 1 deletion src/docs/extensions.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ These are not scoped to frontend connections and have no access (directly) to fr

The following diagram shows the high level architecture for all four options. VS Code extensions and Theia plugins run in a dedicated process per frontend connection, can be installed at runtime, and work against a defined API. Headless plugins similarly run in a dedicated process, but only one that is not associated with any frontend connection. Theia extensions are added during compile time and become a core part of your Theia application. They can access the full API of Theia.

<img src="../extensiontypes.svg" alt="Block diagram of Theia extension types" style="max-width: 525px">
<img src="../../extensiontypes.svg" alt="Block diagram of Theia extension types" style="max-width: 525px">

If you would like more guidance on which mechanism to use, please also refer to [this detailed comparison between VS Code extensions and Theia extensions](https://eclipsesource.com/blogs/2021/03/24/vs-code-extensions-vs-theia-extensions/).

Expand Down
4 changes: 2 additions & 2 deletions src/docs/getting_started.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@ title: Getting Started
# Getting started

In this section, we provide a high level overview on how to get started with Eclipse Theia and link to respective sections to read.
Eclipse Theia is a platform for building custom Cloud & Desktop IDEs and tools with modern web technologies. The Eclipse Theia Platform is not a tool itself, but there are many tools which are built upon Theia. The Theia project provides a tool called [Eclipse Theia IDE](/#theiaide) that can be directly used. The Theia IDE can also be [used as a template](https://theia-ide.org/docs/blueprint_documentation/) to get started with building your own tool. Please have a look at the project goals for more details!
Eclipse Theia is a platform for building custom Cloud & Desktop IDEs and tools with modern web technologies. The Eclipse Theia Platform is not a tool itself, but there are many tools which are built upon Theia. The Theia project provides a tool called [Eclipse Theia IDE](../../#theiaide) that can be directly used. The Theia IDE can also be [used as a template](https://theia-ide.org/docs/blueprint_documentation/) to get started with building your own tool. Please have a look at the project goals for more details!

## Use Eclipse Theia (IDE)

You cannot directly launch/use Theia as it is a platform. The project provides one tool called [Eclipse IDE](/#theiaide) that you can directly download and use. Further, it is very easy to [create your own product based on Theia](https://theia-ide.org/docs/composing_applications/). Please also refer to [this article](https://eclipsesource.com/de/blogs/2019/09/25/how-to-launch-eclipse-theia/) highlighting the various options available to [launch/try Eclipse Theia and Theia-based products](https://eclipsesource.com/de/blogs/2019/09/25/how-to-launch-eclipse-theia/).
You cannot directly launch/use Theia as it is a platform. The project provides one tool called [Eclipse IDE](../../#theiaide) that you can directly download and use. Further, it is very easy to [create your own product based on Theia](https://theia-ide.org/docs/composing_applications/). Please also refer to [this article](https://eclipsesource.com/de/blogs/2019/09/25/how-to-launch-eclipse-theia/) highlighting the various options available to [launch/try Eclipse Theia and Theia-based products](https://eclipsesource.com/de/blogs/2019/09/25/how-to-launch-eclipse-theia/).

## Build a tool or IDE based on Eclipse Theia

Expand Down
2 changes: 1 addition & 1 deletion src/docs/json_rpc.md
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,7 @@ Here we're creating a watcher, this is used to get notified about events
from the backend by using the `taskWatcher`'s client
(`taskWatcher.getTaskClient()`)
See more information about how events work in theia [here](/docs/Events#events).
See more information about how events work in theia [here](Events#events).
``` typescript
return connection.createProxy<TaskServer>(taskPath, taskWatcher.getTaskClient());
Expand Down
2 changes: 1 addition & 1 deletion src/docs/label_provider.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ The default label provider in Theia browses registered label provider contributi

In this article we will describe how to customize the label and icon of a custom file type (.my) in Eclipse Theia, as seen in the screenshot below.

<img src="../custom-label-provider.png" alt="A custom label provider" style="max-width: 525px">
<img src="../../custom-label-provider.png" alt="A custom label provider" style="max-width: 525px">

If you are not yet familiar with contribution points in Theia or the use of dependency injection, please consider this guide on [Services and Contributions](https://theia-ide.org/docs/services_and_contributions/).

Expand Down
12 changes: 6 additions & 6 deletions src/docs/message_service.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,15 @@ By default, Theia will display messages as toast notifications in the bottom rig

Info

<img src="../message-service-info.png" alt="Message Service - info" style="max-width: 525px">
<img src="../../message-service-info.png" alt="Message Service - info" style="max-width: 525px">

Warn

<img src="../message-service-warn.png" alt="Message Service - warning" style="max-width: 525px">
<img src="../../message-service-warn.png" alt="Message Service - warning" style="max-width: 525px">

Error

<img src="../message-service-error.png" alt="Message Service - error" style="max-width: 525px">
<img src="../../message-service-error.png" alt="Message Service - error" style="max-width: 525px">

By default, notifications will be displayed until the user closes them. You can optionally define a time-out after which messages will be closed automatically:

Expand All @@ -48,11 +48,11 @@ this.messageService

The corresponding toast notification will look like this:

<img src="../message-service-user-action.png" alt="Message Service - user action" style="max-width: 525px">
<img src="../../message-service-user-action.png" alt="Message Service - user action" style="max-width: 525px">

When the user selects “Say Hello again”, another toast notification will be shown:

<img src="../message-service-hello-again.png" alt="Message Service - after user action" style="max-width: 525px">
<img src="../../message-service-hello-again.png" alt="Message Service - after user action" style="max-width: 525px">

## Progress Reporting

Expand Down Expand Up @@ -86,4 +86,4 @@ this.messageService
Note that `progress.cancel` is also used to signal that progress is complete.
The code example above will be displayed like this:

<img src="../message-service-progress-reporting.gif" alt="Message Service - progress reporting" style="max-width: 525px">
<img src="../../message-service-progress-reporting.gif" alt="Message Service - progress reporting" style="max-width: 525px">
2 changes: 1 addition & 1 deletion src/docs/property_view.md
Original file line number Diff line number Diff line change
Expand Up @@ -150,4 +150,4 @@ Following these few steps should give the reader an idea on how to implement an

The resulting property view will be displayed like this:

<img src="../custom-property-view.gif" alt="Property View - custom widget" style="max-width: 690px">
<img src="../../custom-property-view.gif" alt="Property View - custom widget" style="max-width: 690px">
2 changes: 1 addition & 1 deletion src/docs/services_and_contributions.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Contribution points, like services, can be contributed to and defined by any ext

The usage of services and contribution points requires communication between extensions. To avoid direct dependencies on the implementation classes, Theia uses dependency injection.

<img src="../dependency-injection.png" alt="Dependency Injection Overview" style="max-width: 525px">
<img src="../../dependency-injection.png" alt="Dependency Injection Overview" style="max-width: 525px">

In the following sections, we provide a quick overview of dependency injection, services, contributions and how to define contribution points.

Expand Down
4 changes: 2 additions & 2 deletions src/docs/tasks.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ In Eclipse Theia, tasks can also be provided from and executed by custom Theia e
In particular, Theia offers the three main contribution points for tasks: `TaskProvider`, `TaskResolver` and `TaskRunner`.
To better understand the purpose of those, let’s look at the flow, through the involved components, when a user selects and executes a task in the following figure.

<img src="../tasks.png" alt="Task flow overview" style="max-width: 915px">
<img src="../../tasks.png" alt="Task flow overview" style="max-width: 915px">

Besides the user-defined task configurations, Eclipse Theia will also offer its users all task configurations collected from the registered task providers.
When a user selects one of the provided task configurations and executes it, the configuration will be handed over to the task service, which will first resolve the selected task configuration using a resolver that is registered for the selected task configuration’s type.
Expand Down Expand Up @@ -153,7 +153,7 @@ class MyTask extends Task {

As you can see in the screenshot below, our custom task is running for 5000 ms (as we set a timeout in `MyTask`) and then it stops.

<img src="../running-custom-task.gif" alt="Running custom task" style="max-width: 702px">
<img src="../../running-custom-task.gif" alt="Running custom task" style="max-width: 702px">

As can be seen in the console output, the task starts and finishes 5000 ms later, and prints the custom variable that has been added by the custom resolver.

Expand Down
Loading

0 comments on commit 4bcfba7

Please sign in to comment.