diff --git a/src/components/index/TheiaIDEDownloads.js b/src/components/index/TheiaIDEDownloads.js index 775b0b39..62405f7f 100644 --- a/src/components/index/TheiaIDEDownloads.js +++ b/src/components/index/TheiaIDEDownloads.js @@ -108,7 +108,7 @@ const TheiaIDEDownloads = () => ( Help us make the Theia IDE even better, by sharing your experience and suggestions. The features found in the Eclipse Theia IDE are based on Eclipse Theia and the available extensions/plugins. For more details please see the Eclipse Theia GitHub Repository. The Eclipse Theia IDE only packages existing Eclipse Theia functionality and installers. If you believe there is a mistake in packaging, something needs to be added to the packaging or the installers do not work properly, please open an issue on GitHub to let us know.

Support

- Need help with Theia? To get support by the community go to the Discussions at GitHub. To get professional support for Theia see the support page. + Need help with Theia? To get support by the community go to the Discussions at GitHub. To get professional support for Theia see the support page. diff --git a/src/components/index/TheiaIDEExtensible.js b/src/components/index/TheiaIDEExtensible.js index 23e6dc72..13528e9f 100644 --- a/src/components/index/TheiaIDEExtensible.js +++ b/src/components/index/TheiaIDEExtensible.js @@ -84,7 +84,7 @@ const TheiaIDEExtensible = () => (

Extensible and Open

-

The Theia IDE is built upon the highly modular Theia platform, enabling the integration of custom extensions and the creation of fully tailored tools (see examples below). Explore the Theia Platform and learn how to create custom tool offerings with ease!

+

The Theia IDE is built upon the highly modular Theia platform, enabling the integration of custom extensions and the creation of fully tailored tools (see examples below). Explore the Theia Platform and learn how to create custom tool offerings with ease!



+Yeoman plugin output Pick up default values for each question. diff --git a/src/docs/authoring_vscode_extensions.md b/src/docs/authoring_vscode_extensions.md index e256e997..d9fea857 100644 --- a/src/docs/authoring_vscode_extensions.md +++ b/src/docs/authoring_vscode_extensions.md @@ -4,13 +4,13 @@ title: Authoring VS Code Extensions # Authoring VS Code Extensions -Alongside [Theia extensions](https://theia-ide.org/docs/extensions#theia-extensions), VS Code extensions can also be used to enhance Theia applications with additional functionality, such as language support, commands, or tree views. +Alongside [Theia extensions](../extensions#theia-extensions), VS Code extensions can also be used to enhance Theia applications with additional functionality, such as language support, commands, or tree views. VS Code extensions contribute functionality through the dedicated VS Code API, which the Theia framework also supports. This means that extensions that have been developed for VS Code are also compatible with Theia, and vice versa. The [coverage report](https://eclipse-theia.github.io/vscode-theia-comparator/status.html) provides more details on the extent to which the VS Code API is supported by each Theia version. While there are certain overlaps in which types of functionality can be contributed to a Theia application with a Theia extension or a VS Code extension, both have their unique advantages and disadvantages. -Please refer to the overview on [extensions and plugins](https://theia-ide.org/docs/extensions) and an [in-depth comparison](https://eclipsesource.com/blogs/2021/03/24/vs-code-extensions-vs-theia-extensions/) for a more detailed discussion. +Please refer to the overview on [extensions and plugins](../extensions) and an [in-depth comparison](https://eclipsesource.com/blogs/2021/03/24/vs-code-extensions-vs-theia-extensions/) for a more detailed discussion. In the remainder of this page, we guide you through the process of creating VS Code extensions and deploying them in Theia. The steps for deploying VS Code extensions apply not only to VS Code extensions you develop yourself, but also to third-party VS Code extensions from the [Theia marketplace](https://open-vsx.org/). If you use a third-party VS Code extension, you can skip the section "Creating VS Code Extensions" and "Developing VS Code Extensions in a Theia Project". @@ -129,7 +129,7 @@ Therefore, you need to extend your `package.json` to ``` As a result, running `yarn` will download any listed extensions and place them into the folder specified in `theiaPluginsDir` automatically. -For more details, see also the documentation on [composing Theia applications](https://theia-ide.org/docs/composing_applications/#consuming-vs-code-extensions). +For more details, see also the documentation on [composing Theia applications](../composing_applications/#consuming-vs-code-extensions). ### Installing VS Code Extensions at Runtime @@ -160,7 +160,7 @@ To make your VS Code extension available, you'll need to [publish](https://githu ## Developing VS Code Extensions in a Theia Project In certain scenarios, you may not want to develop your VS Code extension in isolation from your Theia application, but instead you may prefer to develop both your extensions and your application in project to keep update cycles short and immediate. -This is particularly useful if you develop your extensions primarily to be part a specific Theia application, thus you want to develop, test and debug them directly in the context of your Theia app, potentially alongside other [Theia extensions](https://theia-ide.org/docs/extensions#theia-extensions). +This is particularly useful if you develop your extensions primarily to be part a specific Theia application, thus you want to develop, test and debug them directly in the context of your Theia app, potentially alongside other [Theia extensions](../extensions#theia-extensions). In those scenarios, you can also include VS Code extensions as part of your Theia application monorepo. While there are several possible configuration options, probably the most straightforward approach is to follow the steps below. diff --git a/src/docs/blueprint_documentation.md b/src/docs/blueprint_documentation.md index af128ada..fd354b3d 100644 --- a/src/docs/blueprint_documentation.md +++ b/src/docs/blueprint_documentation.md @@ -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). @@ -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 @@ -161,7 +161,7 @@ To use another custom dialog widget, remove this code, extend Theia’s AboutDia ### Customizing the Preferences -The default preferences directory in Eclipse Theia IDE is `.theia-blueprint` and is located as described in the [Preferences documentation](https://theia-ide.org/docs/preferences/). You can customize this location by modifying [`theia-blueprint-variables-server.ts`](https://github.com/eclipse-theia/theia-blueprint/blob/master/theia-extensions/theia-blueprint-product/src/node/theia-blueprint-variables-server.ts). +The default preferences directory in Eclipse Theia IDE is `.theia-blueprint` and is located as described in the [Preferences documentation](../preferences/). You can customize this location by modifying [`theia-blueprint-variables-server.ts`](https://github.com/eclipse-theia/theia-blueprint/blob/master/theia-extensions/theia-blueprint-product/src/node/theia-blueprint-variables-server.ts). ### Customizing the Installer diff --git a/src/docs/blueprint_download.md b/src/docs/blueprint_download.md index 0d5508e4..db659098 100644 --- a/src/docs/blueprint_download.md +++ b/src/docs/blueprint_download.md @@ -4,4 +4,4 @@ title: Eclipse Theia Blueprint # Eclipse Theia Blueprint -Eclipse Theia Blueprint has been rebranded to "Theia IDE" and has moved to this page. \ No newline at end of file +Eclipse Theia Blueprint has been rebranded to "Theia IDE" and has moved to this page. diff --git a/src/docs/breadcrumbs.md b/src/docs/breadcrumbs.md index ac80d1f1..05d685b1 100644 --- a/src/docs/breadcrumbs.md +++ b/src/docs/breadcrumbs.md @@ -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. -A screenshot of breadcrumbs in Theia +A screenshot of breadcrumbs in Theia 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. @@ -89,7 +89,7 @@ export class CustomBreadcrumbsContribution implements BreadcrumbsContribution { Once the breadcrumbs contribution is registered, Theia will show the following for our custom widget. -A screenshot of custom breadcrumbs in Theia +A screenshot of custom breadcrumbs in Theia ## Interactive Breadcrumbs @@ -113,7 +113,7 @@ export class CustomBreadcrumbsContribution implements BreadcrumbsContribution { } ``` -A screenshot of custom breadcrumbs with a popup in Theia +A screenshot of custom breadcrumbs with a popup in Theia ## Priority of Breadcrumbs Contributions diff --git a/src/docs/commands_keybindings.md b/src/docs/commands_keybindings.md index ad157370..ebbf7933 100644 --- a/src/docs/commands_keybindings.md +++ b/src/docs/commands_keybindings.md @@ -8,7 +8,7 @@ Commands are runnable actions defined by an ID and the function to be executed ( The following sections provide details about how to contribute commands, keybindings and menu items. The sections will describe how to connect the different contributions and how to use the corresponding services for managing these items. -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/). +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](../services_and_contributions/). All the following code examples are from the [Theia extension generator](https://github.com/eclipse-theia/generator-theia-extension). You can get the same code set-up by installing the generator, selecting the “Hello World” example (see here) and choosing “helloworld” as the name. @@ -50,7 +50,7 @@ Finally, by implementing `isToggle` a handler can optionally specify, whether me ### Binding the contribution to CommandContribution -To make our `CommandContribution` accessible to Theia, we need to bind the custom `HelloworldCommandContribution` to the respective contribution symbol `CommandContribution`. This is done in the `helloworld-frontend-module`, for more details see [Services and Contributions](https://theia-ide.org/docs/services_and_contributions/). +To make our `CommandContribution` accessible to Theia, we need to bind the custom `HelloworldCommandContribution` to the respective contribution symbol `CommandContribution`. This is done in the `helloworld-frontend-module`, for more details see [Services and Contributions](../services_and_contributions/). **helloworld-frontend-module.ts** @@ -93,7 +93,7 @@ export class HelloworldMenuContribution implements MenuContribution { } ``` -To make our `MenuContribution` accessible to Theia, we need to bind the custom `HelloWorldMenuContribution` to the respective contribution symbol `MenuContribution`. This is done in the `helloworld-frontend-module`, for more details see [Services and Contributions](https://theia-ide.org/docs/services_and_contributions/). +To make our `MenuContribution` accessible to Theia, we need to bind the custom `HelloWorldMenuContribution` to the respective contribution symbol `MenuContribution`. This is done in the `helloworld-frontend-module`, for more details see [Services and Contributions](../services_and_contributions/). **helloworld-contribution.ts** diff --git a/src/docs/composing_applications.md b/src/docs/composing_applications.md index dd51e3d2..7a373325 100644 --- a/src/docs/composing_applications.md +++ b/src/docs/composing_applications.md @@ -5,11 +5,11 @@ title: Build your own IDE/Tool # Build your own IDE/Tool -This guide will teach you how to build your own Theia-based application. The guide will demonstrate how to configure your own application composed of existing or new Theia extensions, and any VS Code extensions you want bundled in your application by default. Please get familiar with the [extension mechanisms of Theia](https://theia-ide.org/docs/extensions/) in case you are not already. +This guide will teach you how to build your own Theia-based application. The guide will demonstrate how to configure your own application composed of existing or new Theia extensions, and any VS Code extensions you want bundled in your application by default. Please get familiar with the [extension mechanisms of Theia](../extensions/) in case you are not already. 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. @@ -155,7 +155,7 @@ e.g. to open `/workspace` on all interfaces and port `8080`: In the terminal, you should see that Theia application is up and listening: -Terminal +Terminal Open the application by entering the printed address in a new browser page. diff --git a/src/docs/enhanced_tab_bar_preview.md b/src/docs/enhanced_tab_bar_preview.md index 35fbc335..e3c0f6ce 100644 --- a/src/docs/enhanced_tab_bar_preview.md +++ b/src/docs/enhanced_tab_bar_preview.md @@ -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. @@ -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`. -A screenshot of the window.tabbar.enhancedPreview setting in Theia +A screenshot of the window.tabbar.enhancedPreview setting in Theia After enabling the enhanced tab bar preview, users will see the following on hovering over a widget's tab: -A screenshot of the enhanced preview in Theia +A screenshot of the enhanced preview in Theia ## Specifying the contents of the preview @@ -90,7 +90,7 @@ To also ensure the text is not going over the boxes boundaries, the property `wo After those rules are applied the preview will look as shown below: -A screenshot of the customized enhanced preview in Theia +A screenshot of the customized enhanced preview in Theia ### Changing the content element diff --git a/src/docs/extensions.md b/src/docs/extensions.md index da5f5fa2..d37c6f33 100644 --- a/src/docs/extensions.md +++ b/src/docs/extensions.md @@ -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. -Block diagram of Theia extension types +Block diagram of Theia extension types 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/). @@ -29,7 +29,7 @@ Please also note that you can use existing VS Code extensions in Theia, too. A g A Theia extension is a module that resides inside a Theia application and directly communicates with other modules (Theia extensions). The Theia project itself is composed of Theia extensions too. To create a Theia application, you can select a number of Theia extensions provided by the Theia project (core extensions), add your own custom Theia extensions and then compile and run the result. Your custom Theia extension will have access to the same API as the core extensions. This modularity allows you to extend, adapt or remove almost anything in Theia according to your requirements. Also, specific use cases, such as complex views are easier to develop with Theia extensions compared to VS Code extensions. Technically, an extension is an npm package that exposes any number of DI modules (`ContainerModule`) that contribute to the creation of the DI container. Extensions are consumed by declaring them as a `dependency` in the `package.json` of the application/extension, and are installed at compile time. -See [this section](https://theia-ide.org/docs/authoring_extensions/) for more detail on how to author a Theia extension. +See [this section](../authoring_extensions/) for more detail on how to author a Theia extension. ## Theia Plugins diff --git a/src/docs/getting_started.md b/src/docs/getting_started.md index deda2862..1878fc71 100644 --- a/src/docs/getting_started.md +++ b/src/docs/getting_started.md @@ -5,21 +5,21 @@ 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](../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](../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 -The first step is to define a custom product based on Theia. Please check out the guide on [how to build your own IDE or tool based on Theia](https://theia-ide.org/docs/composing_applications/). Subsequently, you might want to extend this product with your own feature for which you can use the [available extension mechanisms of Theia](https://theia-ide.org/docs/extensions/). +The first step is to define a custom product based on Theia. Please check out the guide on [how to build your own IDE or tool based on Theia](../composing_applications/). Subsequently, you might want to extend this product with your own feature for which you can use the [available extension mechanisms of Theia](../extensions/). ## Frequently Asked Questions -If you are unsure what Theia is, how it compares to other technologies or how to migrate Eclipse-based tools to it, please have a look at [resource section](https://theia-ide.org/resources/). +If you are unsure what Theia is, how it compares to other technologies or how to migrate Eclipse-based tools to it, please have a look at [resource section](../../resources/). ## Need Help? -Theia is an open community, and we are glad to help you. You can ask questions using our [public community forum](https://github.com/eclipse-theia/theia/discussions), you can [report bugs and feature requests](https://github.com/eclipse-theia/theia/issues/new/choose), and you can get [professional support, consulting and implementation services](https://theia-ide.org/support/) for building products based on Theia. +Theia is an open community, and we are glad to help you. You can ask questions using our [public community forum](https://github.com/eclipse-theia/theia/discussions), you can [report bugs and feature requests](https://github.com/eclipse-theia/theia/issues/new/choose), and you can get [professional support, consulting and implementation services](../../support/) for building products based on Theia. diff --git a/src/docs/index.md b/src/docs/index.md index cb7a5750..d3389e96 100644 --- a/src/docs/index.md +++ b/src/docs/index.md @@ -11,7 +11,7 @@ title: README Theia is an extensible platform to develop full-fledged multi-language Cloud & Desktop IDE-like products with state-of-the-art web technologies. -Theia IDE Screenshot +Theia IDE Screenshot ## Scope diff --git a/src/docs/json_rpc.md b/src/docs/json_rpc.md index 1468ca9b..c16d46d9 100644 --- a/src/docs/json_rpc.md +++ b/src/docs/json_rpc.md @@ -90,7 +90,7 @@ an when this contribution is initialized it creates a websocket channel for all To save resources the hood all `MessagingContributions` are routed over one websocket connection (multiplexing). -To dig more into ContributionProvider see this [section](Services_and_Contributions#contribution-providers). +To dig more into ContributionProvider see this [section](../services_and_contributions#contribution-providers). So now: @@ -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(taskPath, taskWatcher.getTaskClient()); diff --git a/src/docs/label_provider.md b/src/docs/label_provider.md index 75bd4885..872c46bb 100644 --- a/src/docs/label_provider.md +++ b/src/docs/label_provider.md @@ -10,9 +10,9 @@ 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. -A custom label provider +A custom label provider -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/). +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](../services_and_contributions/). All the following code examples are from the [Theia extension generator](https://github.com/eclipse-theia/generator-theia-extension). You can get the same code set-up by installing the generator, selecting the “Label Provider” example (see [here](https://github.com/eclipse-theia/generator-theia-extension)) and choosing “labelProvider” as the name. @@ -59,7 +59,7 @@ getName(fileStatNode: FileStatNode): string { } ``` -To make our `LabelProviderContribution` accessible to Theia, we need to bind the custom `LabelProviderLabelProviderContribution` to the respective contribution symbol `LabelProviderContribution`. This is done in the `labelprovider-frontend-module`, for more details see [Services and Contributions](https://theia-ide.org/docs/services_and_contributions/). +To make our `LabelProviderContribution` accessible to Theia, we need to bind the custom `LabelProviderLabelProviderContribution` to the respective contribution symbol `LabelProviderContribution`. This is done in the `labelprovider-frontend-module`, for more details see [Services and Contributions](../services_and_contributions/). **labelprovider-frontend-module.ts** diff --git a/src/docs/language_support.md b/src/docs/language_support.md index e506d391..64ba803b 100644 --- a/src/docs/language_support.md +++ b/src/docs/language_support.md @@ -6,4 +6,4 @@ title: Language Support Theia uses standard technologies for adding language support to custom Theia-based products. By integrating the Monaco Code Editor, Theia supports the language server protocol (LSP) as well as TextMate. -We recommend you use VS Code Extensions which the Theia Framework [supports](https://theia-ide.org/docs/authoring_vscode_extensions) in order to add support for an existing or a custom language. Please refer to the [VS Code Language Support](https://code.visualstudio.com/docs/languages/overview) documentation for additional details. +We recommend you use VS Code Extensions which the Theia Framework [supports](../authoring_vscode_extensions) in order to add support for an existing or a custom language. Please refer to the [VS Code Language Support](https://code.visualstudio.com/docs/languages/overview) documentation for additional details. diff --git a/src/docs/message_service.md b/src/docs/message_service.md index 1c8a10eb..fbe01b8f 100644 --- a/src/docs/message_service.md +++ b/src/docs/message_service.md @@ -15,15 +15,15 @@ By default, Theia will display messages as toast notifications in the bottom rig Info -Message Service - info +Message Service - info Warn -Message Service - warning +Message Service - warning Error -Message Service - error +Message Service - error 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: @@ -48,11 +48,11 @@ this.messageService The corresponding toast notification will look like this: -Message Service - user action +Message Service - user action When the user selects “Say Hello again”, another toast notification will be shown: -Message Service - after user action +Message Service - after user action ## Progress Reporting @@ -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: -Message Service - progress reporting +Message Service - progress reporting diff --git a/src/docs/property_view.md b/src/docs/property_view.md index f53b68fd..6b5cd35e 100644 --- a/src/docs/property_view.md +++ b/src/docs/property_view.md @@ -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: -Property View - custom widget +Property View - custom widget diff --git a/src/docs/services_and_contributions.md b/src/docs/services_and_contributions.md index 4500e964..726258cd 100644 --- a/src/docs/services_and_contributions.md +++ b/src/docs/services_and_contributions.md @@ -4,9 +4,9 @@ title: Services and Contributions # Services and Contributions -In this section we describe how [Theia extensions](https://theia-ide.org/docs/extensions#theia-extensions) can use services provided by the platform and by other extensions. Furthermore, we describe how extensions can contribute to the Theia workbench via contribution points. +In this section we describe how [Theia extensions](../extensions#theia-extensions) can use services provided by the platform and by other extensions. Furthermore, we describe how extensions can contribute to the Theia workbench via contribution points. -A **service** is an object that provides functionality to its consumers. The contract between a service and its consumers is described by an interface. Any implementation of a service must implement that interface according to the interface documentation. Any extension in Theia can provide and/or consume services. The extensions provided by the Theia platform provide a set of default services, e.g. the [`MessageService`](https://theia-ide.org/docs/message_service/). However, you can provide and consume your own custom services, too. +A **service** is an object that provides functionality to its consumers. The contract between a service and its consumers is described by an interface. Any implementation of a service must implement that interface according to the interface documentation. Any extension in Theia can provide and/or consume services. The extensions provided by the Theia platform provide a set of default services, e.g. the [`MessageService`](../message_service/). However, you can provide and consume your own custom services, too. **Contribution points** define hooks, which allow extending something. Contribution points are defined by an interface that the contributor is expected to implement, e.g. a `CommandContribution`. The extension defining the contribution point will then pick up the contribution, e.g. adding the contributed command to the Theia workbench. @@ -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. -Dependency Injection Overview +Dependency Injection Overview In the following sections, we provide a quick overview of dependency injection, services, contributions and how to define contribution points. @@ -80,7 +80,7 @@ export default new ContainerModule(bind => { }); ``` -Please see [Commands/Menus/Keybindings](https://theia-ide.org/docs/commands_keybindings/) for a simple example for the usage of services and contribution points. +Please see [Commands/Menus/Keybindings](../commands_keybindings/) for a simple example for the usage of services and contribution points. ## Defining Contribution-Points diff --git a/src/docs/tasks.md b/src/docs/tasks.md index 7f235c88..23cb9362 100644 --- a/src/docs/tasks.md +++ b/src/docs/tasks.md @@ -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. -Task flow overview +Task flow overview 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. @@ -37,7 +37,7 @@ Finally, we will contribute a custom task runner that executes our provided task Task providers and task resolvers are contributed via an implementation of `TaskContribution`. Like all contributions, it must be bound in the respective front end module as shown below. -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/). +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](../services_and_contributions/). ``` typescript export default new ContainerModule(bind => { @@ -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. -Running custom task +Running custom task 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. diff --git a/src/docs/tips.md b/src/docs/tips.md index f8858955..42a2eb8a 100644 --- a/src/docs/tips.md +++ b/src/docs/tips.md @@ -8,7 +8,7 @@ In this section we'll outline some advanced hints and tips to get the most out o ## Providing custom API to VS Code extensions in Eclipse Theia -Theia allows running VS Code extension by providing a compatible API (see [this overview](https://theia-ide.org/docs/extensions/) for details). +Theia allows running VS Code extension by providing a compatible API (see [this overview](../extensions/) for details). It is possible to extend this API to allow VS Code extensions running in Theia to access additional functionality compared to when they run within VS Code. This allows you to provide a feature as a VS Code extension targeting VS Code and Theia. However, when running in Theia, the feature can be enhanced by using custom API only available in Theia. diff --git a/src/docs/toolbar.md b/src/docs/toolbar.md index 8e7123a9..2bc30323 100644 --- a/src/docs/toolbar.md +++ b/src/docs/toolbar.md @@ -4,9 +4,9 @@ title: Dynamic Toolbar # Dynamic Toolbar -Eclipse Theia provides an optional and fully dynamic toolbar to be included in your custom IDE or tool. Please also see [the documentation of the toolbar from a user point of view](/docs/user_toolbar). +Eclipse Theia provides an optional and fully dynamic toolbar to be included in your custom IDE or tool. Please also see [the documentation of the toolbar from a user point of view](../user_toolbar). -To enable the toolbar, simply include the Theia extension "@theia/toolbar" into your Theia-based product (also see [the documentation on composing Theia applications](/docs/composing_applications/)). +To enable the toolbar, simply include the Theia extension "@theia/toolbar" into your Theia-based product (also see [the documentation on composing Theia applications](../composing_applications/)). The Theia toolbar defines some default commands that are displayed even before the user can configure the toolbar to their preferences. These defaults are defined in a `ToolbarDefaultsFactory`. See [here](https://github.com/eclipse-theia/theia/blob/master/packages/toolbar/src/browser/toolbar-defaults.ts) for the default `ToolbarDefaultsFactory` that is shipped within the toolbar extension. To define your own default commands to the toolbar, create a custom implementation of `ToolbarDefaultsFactory` and rebind you own factory in your extension module (see following code example). diff --git a/src/docs/user_getting_started.md b/src/docs/user_getting_started.md index 263a7528..d2c9ba36 100644 --- a/src/docs/user_getting_started.md +++ b/src/docs/user_getting_started.md @@ -5,18 +5,18 @@ title: Using Theia As An End User # Using the "Theia IDE" as an End User The Theia IDE is a modern and open IDE for cloud and desktop. The Theia IDE is based on the Theia platform. -- [Learn more about the Theia IDE](/#theiaide) -- [Download the Theia IDE](/#theiaidedownload) +- [Learn more about the Theia IDE](../../#theiaide) +- [Download the Theia IDE](../../#theiaidedownload) - [Try the Theia IDE online](https://try.theia-cloud.io/) - [Run the Theia IDE with Docker](https://github.com/eclipse-theia/theia-blueprint?tab=readme-ov-file#docker-build) -Theia IDE Screenshot +Theia IDE Screenshot This section is about using the Theia IDE from an end user point of view. Please note that the Theia IDE is based on the Theia Platform, a technology to build tools and IDEs. As an end user, you are not using “Theia”, but always a product based on Theia, in this case the Theia IDE. If you are using another product based on Theia, please consider the specific end user documentation of the product you are using over this section. The Theia IDE features and usability concept is heavily influences by VS Code. Therefore, for many use cases, we refer to the VS Code documentation. We still provide some selected documentation about use cases which are differing or not supported in VS Code: -- [Install VS Code extensions](/docs/user_install_vscode_extensions/) -- [Using the dynamic Toolbar](/docs/user_toolbar/) +- [Install VS Code extensions](../user_install_vscode_extensions/) +- [Using the dynamic Toolbar](../user_toolbar/) -Please note that you can also [use the Theia IDE as a basis to create your own custom product](/docs/blueprint_documentation/). +Please note that you can also [use the Theia IDE as a basis to create your own custom product](../blueprint_documentation/). diff --git a/src/docs/user_install_vscode_extensions.md b/src/docs/user_install_vscode_extensions.md index ac47cc78..dc633834 100644 --- a/src/docs/user_install_vscode_extensions.md +++ b/src/docs/user_install_vscode_extensions.md @@ -6,7 +6,7 @@ title: Installing VS Code Extensions in Theia You can install VS Code extensions into Theia-based products via the [Open VSX Registry](https://open-vsx.org/), aka “Theia Marketplace” or “Theia Extension Registry”. -*Note: To be able to install extensions, the creator of your Theia-based tool needs to have enabled this option. The following documentation is based on the Theia IDE, a standard product based on Theia. This might slightly differ from the Theia-based product you are using, please contact the provider of your tool if there are uncertainties and also see [here](/docs/user_getting_started/). For tool creators, please see the end of this document.* +*Note: To be able to install extensions, the creator of your Theia-based tool needs to have enabled this option. The following documentation is based on the Theia IDE, a standard product based on Theia. This might slightly differ from the Theia-based product you are using, please contact the provider of your tool if there are uncertainties and also see [here](../user_getting_started/). For tool creators, please see the end of this document.* To install new extensions into the Theia IDE, please open the Extensions View via the Menu "View => Extensions" or via the command “Toggle Extensions View”. @@ -14,7 +14,7 @@ In the opened Extension View you can browse for available VS Code extensions usi The Extension View also presents recommendations to be installed, if any, as well as extensions that are already installed. Here, you can uninstall extensions by clicking “Uninstall”. -Theia Marketplace / Theia Registry +Theia Marketplace / Theia Registry The last section, “Built-In” shows VS Code extensions that are a fix part of your Theia-based product. This means the creator of your tool has installed them already for you and you can also not uninstall them. @@ -30,4 +30,4 @@ For details about the compatibility of Theia for VS Code extensions can be found If you are missing a specific VS Code extension or if you have issues with using a VS Code extension in Theia, please report this to the creator of your Theia-based Tool. If you are using the Theia IDE or a variant of it, please report your issues [here](https://github.com/eclipse-theia/theia/issues/new?assignees=&labels=&template=bug_report.md). -For adopters: If you are building a Theia-based product, please have a look at our overview about [extensions and plugins](/docs/extensions/) as well as at the [documentation on authoring VS Code extensions in Theia](/docs/authoring_vscode_extensions/). +For adopters: If you are building a Theia-based product, please have a look at our overview about [extensions and plugins](../extensions/) as well as at the [documentation on authoring VS Code extensions in Theia](../authoring_vscode_extensions/). diff --git a/src/docs/user_toolbar.md b/src/docs/user_toolbar.md index d15dd911..091acac3 100644 --- a/src/docs/user_toolbar.md +++ b/src/docs/user_toolbar.md @@ -6,15 +6,15 @@ title: Using the dynamic Toolbar in Theia Eclipse Theia provides a dynamic toolbar allowing easy access to commonly used commands. The toolbar contains default commands and can be dynamically adapted by users based on their personal preference. -*Note: To use the toolbar in Theia, the creator of your Theia-based tool needs to have enabled this option. The following documentation is based on the Theia IDE, a standard product based on Theia. This might slightly differ from the Theia-based product you are using, please contact the provider of your tool if there are uncertainties and also see [here](/docs/user_getting_started/). For tool creators, please see the [toolbar adopter documentation](/docs/toolbar/).* +*Note: To use the toolbar in Theia, the creator of your Theia-based tool needs to have enabled this option. The following documentation is based on the Theia IDE, a standard product based on Theia. This might slightly differ from the Theia-based product you are using, please contact the provider of your tool if there are uncertainties and also see [here](../user_getting_started/). For tool creators, please see the [toolbar adopter documentation](../toolbar/).* As a user, you can control the default visibility of the Theia toolbar using the setting "Show Toolbar" (see screenshot below). Additionally, you can toggle the toolbar using "ALT+T" or via right-click on the toolbar => "Toggle Toolbar". -Theia Toolbar Visibility +Theia Toolbar Visibility The toolbar will show some default commands, which are configured by the provider of your Theia-based tool. As a user, you can add and remove commands. Further, you can change their position in the toolbar. To remove an existing command, right-click the icon in the toolbar and select "Remove Command From Toolbar". To change the position of an existing command, simply drag it around. The toolbar supports three columns to visually structure commands ("Left", "Center" and "Right"). To add a new command to the toolbar, right click and select "Add Command to Toolbar" (see screenshot below). This will open a wizard that first allows you to select the command you want to add. In the second step, you can specify and icon that is used to display the new command in the toolbar. Finally, you select the column the new command will be placed in (you can still move it around later). -Theia Toolbar +Theia Toolbar To restore the default commands on the toolbar, right click and select "Restore Toolbar Defaults". Please note that this will delete all custom commands you might have added. diff --git a/src/docs/widgets.md b/src/docs/widgets.md index 95b41441..68b12f64 100644 --- a/src/docs/widgets.md +++ b/src/docs/widgets.md @@ -6,17 +6,17 @@ title: Widgets A widget is a part displaying content within the Theia workbench, e.g. a view or an editor. Examples for existing widgets in Theia are the file explorer, the code editor or the problems view. By contributing custom widgets, you can place your own custom UI in a Theia-based application. Your custom UI will behave the same as other widgets in terms of window layouts including the title tab, resizing, dragging and opening/closing (see screenshot below). -Widget Example +Widget Example Furthermore, a widget will receive events from the surrounding workbench, e.g. on application start, on resize or on detach. The implementation of the actual content of a widget, which is rendered in the provided frame is completely up to you, though. As an example, you can implement some custom UI using React within a widget. In a nutshell, a widget is a frame to embed some custom (HTML-based) UI into the Theia workbench (see diagram below) -Widget Architecture +Widget Architecture In this article we will describe how to contribute a custom widget to the Theia workbench. We will focus on a simple view (in contrast to an editor) and use React to implement the UI. -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/). +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](../services_and_contributions/). If you would like to have a look at the example code, please use the [Theia extension generator](https://github.com/eclipse-theia/generator-theia-extension). Install the generator, select the “Widget” example and enter “MyWidget” as a name for the extension.