blog

eclipse Theia ドキュメント - 翻訳

最初のプラグインを作成します。例として、Hello Worldコマンドの "Hello world!"通知を表示するために登録します。この記事では、必要なステップをすべて説明します。 Theiaは拡張...

Apr 22, 2020 · 2 min. read

Theiaプラグインの作成

Theia

このセクションでは、Theiaの一般的なアーキテクチャについて説明します。

Theiaはデスクトップアプリケーションであることも、ブラウザやリモートサービスで実行することもできます。同じコード一式でデスクトップアプリケーションとWebIDEの両方をサポートするために、Theiaは2つの別々のプロセスで実行されます。このプロセスはそれぞれフロントエンドとバックエンドと呼ばれ、WebSocket上のJSON-RPCメッセージまたはHTTP上のREST apiを介して通信します。デスクトップアプリケーションでは、バックエンドとフロントエンドの両方がローカルで実行され、リモートコンテキストではバックエンドがリモートホストで実行されます。

前方部分

フロントエンドプロセスはクライアントを代表し、UIのレンダリングを担当します。ブラウザでは、単にレンダリングループの中で実行されますが、Electronでは、基本的にElectronとNode.jsのAPIを追加したブラウザであるElectronウィンドウの中で実行されます。そして、どんなフロントエンドのコードも、Node.jsを関連付けずに、ブラウザをプラットフォームと仮定することができます。

バックエンド

バックエンドプロセスはNode.js上で動作します。HTTPサーバーとしてexpressを使用します。プラットフォームとしてブラウザに依存するコードを使用する必要はありません。バックエンドアプリケーションのスタートアップは、まず貢献する拡張機能のすべてのDIモジュールをロードし、BackendApplicationのインスタンスを取得してstart(portNumber)を呼び出します。デフォルトでは、バックエンドの express サーバはフロントエンドのコードも提供します。

プラットフォーム分離

extensionsのトップレベルフォルダには、プラットフォームごとに分けられるファイルの追加フォルダがあります:

  • commonフォルダには、ランタイムに依存しないコードが含まれています。

  • Browserフォルダには、プラットフォームとしてモダンブラウザの使用を必要とするコードが含まれています。

  • Electron Browserフォルダには、DOM APIやElectronレンダラー処理に特化したAPIを必要とするフロントエンドのコードが含まれています。

  • nodeフォルダにはコードが含まれており、プラットフォームとしてNode.jsが必要です。

  • node-electronフォルダにはElectron固有のコードが含まれています。

Theia アーキテクチャーの概要については、このドキュメントを参照してください。

Read next

N-フォーク木の後方探索

N-木が与えられた場合、そのノード値の後方走査を返します。

Apr 22, 2020 · 1 min read