十分时时彩_十分时时彩下注平台注册_十分时时彩邀请码 - 十分时时彩,十分时时彩下注平台注册,十分时时彩邀请码精选头条好文,分享实用生活小技巧,达人购物经验,包括科技、手机、数码、娱乐、美容、母婴、旅行、居家等内容,打造优质阅读体验。

使用Theia——创建插件

  • 时间:
  • 浏览:0

上一篇:使用Theia——创建扩展包

创建Theia插件

  下面而且我们我们我们我们来看看怎么可否创建Theia插件。作为示例,而且我们我们我们我们将注册有另一个 Hello World命令,该命令显示有另一个 “Hello World”通知。本文将指导你完成所有必要的步骤。

Theia的架构

插件与扩展包

  Theia是有另一个 可扩展的IDE。你可能听说过扩展是定制IDE的某种土依据,而插件则是某种还都还都可否 被加在到Theia中的新的可扩展模型。下面是或多或少有关插件和扩展包之间的主要区别。

插件

  优点:

  • 代码隔离:插件的代码运行在独立的线程中,它不用阻塞Theia核心线程。

  • 还都还都可否 在运行时加载。不须要重新编译整个Theia IDE。

  • 减少编译时间。

  • 自蕴含。插件还都还都可否 被打包成有另一个 独立的文件,并在稍后直接加载。它不须要从npmjs可能其它的地方获取额外的依赖项。

  • 简单的API

  • 不须要学习inversify或任何其它的框架。

  • 单个入口,蕴含代码补全,以查看可能的与JsDoc相关的调用。

  • 可能API是向后兼容的,或多或少很方便从有另一个 Theia版本升级到也不 版本。

  缺点:

  • 须要遵守预定义的API。可能没有通过API提供contribution point,则可能对功能进行调整。注意当前的API还都还都可否 进行扩展以支持更多的功能。

设计

  Theia应用线程由有另一个 核心组成,它为特定功能提供一组小部件、命令和正确处理线程等。

  Theia定义了有另一个 运行时的API,它允许插件定制IDE并将它们的功能加在到Theia应用线程的各个地方。

  在Theia中,插件还都还都可否 通过有另一个 名为theia的对象访问API,该对象在所有的插件中都可用。有关API的更多细节还都还都可否 查看

这里

  插件有某种性质:

  • 后端插件。后端插件与VS Code的插件很像。插件的代码运行在服务端或多或少人独立的线程中。当API被调用时,它会在用户的浏览器或UI上发送或多或少actions来注册新命令,等等。所有的回调都不 服务端专有的线程中运行。

  • 前端插件。你这人情况表下所有的回调都不 浏览器或UI的工作线程中运行。哪些地方地方插件只被授权使用“浏览器兼容”模块。这类,不允许读写文件,可能所有的插件都运行在浏览器端。而且,可能你我我着实希望在客户端正确处理或多或少网络操作,没有你这人土依据是有用的。

必要条件

  这里有有另一个 运行的Theia实例,(v0.3.12+)还都还都可否 从Theia仓库获得Theia的说明。

项目行态

  而且我们我们我们我们创建了有另一个 名为theia-hello-world-plugin的新目录,用来存放而且我们我们我们我们项目的源代码。

  你这人新目录还都还都可否 创建在任何路径下,它是独立于Theia源代码的。

  还都还都可否 通过下面的命令来安装和运行生成器。注意,而且你在运行Theia实例的新终端中输入哪些地方地方命令。

npm install -g yo @theia/generator-plugin
mkdir theia-hello-world-plugin
cd theia-hello-world-plugin
yo @theia/plugin

  在上边的命令中:

  • npm install -g yo @theia/generator-plugin命令在全局安装Theia生成器。

  • yo @theia/plugin命令调用yeoman生成器来创建Theia插件生成器的模板。

  下面是生成器运行的动态图。

  每个哪些地方的问题使用默认选项即可。

  在你这人步中,theia-hello-world-plugin目录中可能有了有另一个 从源码构建的插件了。

实现插件

  而且我们我们我们我们来看下自动生成的代码。

{
      "name": "theia-hello-world-plugin",
      "publisher": "theia",
      "keywords": [
        "theia-plugin"
      ],
      "version": "0.0.1",
      "files": [
        "src"
      ],
      "devDependencies": {
        "@theia/plugin": "latest", <-- 1. Theia API dependency
        "rimraf": "^2.6.2",
        "typescript": "^2.9.2"
      },
      "scripts": {
        "prepare": "yarn run clean && yarn run build",
        "clean": "rimraf lib",
        "build": "tsc"
      },
      "engines": {
        "theiaPlugin": "latest"  <-- 2. this plug-in requires Theia runtime
      },
      "theiaPlugin": {
        "backend": "lib/theia-hello-world-plugin-backend-plugin.js" 3. <-- entrypoint
      }
}

  在你这人package.json文件中,有有另一个 重要的偏离 :

  1. 首先,在devDependencies中,有有另一个 依赖项@theia/plugin,你这人包将在插件的代码中调用Theia API(如加在新命令和显示消息)。

  2. 第二,engines偏离 蕴含theiaPlugin,它允许将node包标记为可在特定版本的Theia上运行。

  3. 第三,theiaPlugin偏离 蕴含插件的入口位置。对于后端插件,backend的值是指向插件的javascript的路径。

  而且我们我们我们我们来看下生成的单个源代码文件的内容。下面你这人文件的路径是src/theia-hello-world-plugin-backend-plugin.ts,它蕴含TypeScript代码。

import * as theia from '@theia/plugin';

export function start() {
    const informationMessageTestCommand = {
        id: 'hello-world-example-generated',
        label: "Hello World"
    };
    theia.commands.registerCommand(informationMessageTestCommand, (...args: any[]) => {
        theia.window.showInformationMessage('Hello World!');
    });

}

export function stop() {

}

  还都还都可否 就看,只需几行代码就还都还都可否 注册有另一个 命令并显示通知消息。

  第一行怪怪的要,用来导入API。import * as theia from '@theia/plugin';将所有的Theia插件的API导入到有另一个 theia对象中。

  代码中蕴蕴含另一个 土依据,start()stop()

  土依据start()在插件被加载时调用。在你这人土依据中,有有另一个 action,用来注册hello world命令和有另一个 回调,以及显示hello world的消息。Command对象有有另一个 id和有另一个 用来在命令面板中显示的label

  土依据stop()的内容为空,它在插件停止时被调用,用于执行或多或少操作。此土依据是可选的,可能为空则还都还都可否 将其删除。

运行插件

  现在而且我们我们我们我们来看看你这人插件的运行情况表。在Theia蕴含某种被称之为hosted mode的模式,该模式允许而且我们我们我们我们在其蕴含另一个 Theia实例中开发插件,并将其部署到也不 Theia实例中。也不 就还都还都可否 很方便地生成插件并进行测试。

  首先,确保可能打开Theia中生成插件的目录(它须要有你在workspace的一偏离 )。而且打开命令面板(F1键),搜索Hosted mode: start instance,选着该命令。

  浏览workspace并选着插件的目录(其蕴含高package.json文件)。

  这将在150150端口上启有另一个 新的Theia实例。而且你就看打开了有另一个 新的选项卡(可能你须要验证一下),有有另一个 新的实例在Development Host下运行(还都还都可否 在情况表栏中就看)。

  在Development Host实例中,打开命令面板(F1键)而且搜索Hello World命令。

  选着该命令,你将在屏幕上就看Hello World的消息。

开发插件

  正如上边所说的,Theia API由TypeScript提供,一同在开发过程中还支持代码补全功能和JsDoc。

更新插件

   假若你想将消息的内容从Hello World改成Hello Theia,还都还都可否 进到Hosted Plugin: running实例中(看情况表栏上的显示),编辑TypeScript文件src/theia-hello-world-plugin-backend-plugin.ts,将theia.window.showInformationMessage('Hello World!');改成theia.window.showInformationMessage('Hello Theia!');

  在插件的根目录下运行命令yarn build,重新编译源代码。而且你只须要刷新Development Host的实例,插件就会被重新加载。

  注意:你也还都还都可否 使用watch模式来代替手动刷新。

插件的API

VS Code代码实现