上一篇:使用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源代码的。
  为了简化仓库的设置,你可以使用Yeoman代码生成器来帮助快速生成项目的脚手架。
  可以通过下面的命令来安装和运行生成器。注意,你可以在运行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文件)。
 
  这将在端口上启一个新的Theia实例。你会看到打开了一个新的选项卡(可能你需要验证一下),有一个新的实例在Development Host下运行(可以在状态栏中看到)。
aaarticlea/png;base64,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" alt="" width="308" height="110"> 
  在Development Host实例中,打开命令面板(F1键)然后搜索Hello World命令。
 
  选择该命令,你将在屏幕上看到Hello World的消息。
aaarticlea/png;base64,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5efnU1hYSENDA1999dUV7Xu9xiQiIiLSZ2a8eKnxYDBI6yO/umaPO6fEg8OyaGoL8cmx/ktoCtOdDM9w0txus+dU7981mniHG9vA7pNdfa4DrtmlMz1/eAqn04nD4eizbPymh/y+gn5Ct3jAFxEREZGBFfJvVX9PyL9h16e0MHj2vk/wXB1dheMxgzJj/6mhLtzfHMR9bAeOC6rzFhERERG5Wq5z5871aszKyrounVkY3F9X4vpbJWZQBrbXDy4PVuA8jtZGrGCH/iMiIiIiIkBzc3PkLP6APZMfE/YtsFobcbQ26r8nIiIiInKNOXQIREREREQU8kVERERERCFfREREREQU8kVERERERCFfREREREQU8kVEREREFPJFREREREQhX0REREREFPJFRERE5LvqSn/dVRTyRURERERumcnO1U54rIKCApNopTEm5mbbdqRdRERERORaic6X8Rn0uxDk428OhwOHw3HVQd91qU7jB6CALyIiIiLXM+jH/73dRQf5+LB/tVyX02n0fYV8EREREbkRYf+7EPTjs3b8/asN+q4r7VxERERE5EYFXx2Dq+PSQRcRERERub3o6joiIiIiIgr5IiIiIiKikC8iIiIiIgr5IiIiIiKikC8iIiIiIgr5IiIiIiIK+SIiIiIiopAvIiIiIiIK+SIiIiIiopAvIiIiIiIK+SIiIiIiCvkiIiIiIqKQLyIiIiIiN9j/AxTzpCAMftZ1AAAAAElFTkSuQmCC" alt="" width="761" height="60">

开发插件

  正如上面所说的,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代码实现

   Theia 提供VS Code API,可以查看这个链接的内容以获取当前的状态,比较Theia和VS Vode API

使用Theia——创建插件的更多相关文章

  1. Netsharp快速入门(之2) 基础档案(之A 创建插件和资源)

    作者:秋时 杨昶   时间:2014-02-15  转载须说明出处 第三章     基础档案开发 本文不再对此需求进行分析设计,其实分析设计的结果在下文会体现在平台的使用过程中,这个销售系统分成两个模 ...

  2. grunt入门讲解5:创建插件,安装Grunt以及常见问题

    创建插件 创建插件主要有以下几个步骤: (1)通过 npm install -g grunt-init 命令安装 grunt-init .(2)通过 git clone git://github.co ...

  3. cordova 环境配制和创建插件

    环境配制 英文网站:http://cordova.apache.org/ 中文网站:http://cordova.axuer.com/ 安装Cordova Cordova的命令行运行在Node.js ...

  4. 【odoo14】第三章、创建插件

    现在我们已经有了开发环境并了解了如何管理实例及数据库,现在让我们来学习下如何创建插件模块. 本章内容如下: 创建和安装模块 完成manifest文件 组织模块文件结构 添加模型 添加菜单及视图 添加访 ...

  5. 基于C#的SolidWorks插件开发(2)--创建插件

    在项目工程中可以看到SwAddin.cs文件.这个文件是插件的核心文件,包括插件的名称,注册表项,菜单,以及菜单的回调函数都在该文件中实现. 1.修改插件的名称和描述 Guid为插件生成后注册到注册表 ...

  6. How To Use the Widget Factory 使用widget factory创建插件

    To start, we'll create a progress bar that just lets us set the progress once.  创建一个基于widget factory ...

  7. 使用Theia——创建扩展包

    上一篇:使用Theia——构建你自己的IDE 创建Theia扩展包 本例中,我们将添加一个菜单项“Say hello”用来显示一个通知“Hello world!”.本文将指导你完成所有必要的步骤. T ...

  8. 邓_phpcms_二次开发_创建插件

    Phpcms_V9           [test]测试 ================================================================ ====== ...

  9. 使用Theia——添加语言支持

    上一篇:使用Theia——创建插件 Theia——添加语言支持 Theia中TextMate的支持 使用TextMate语法可以为大部分源文件提供精准的着色修饰,虽然这只是在语法级别上(没有语言本身的 ...

随机推荐

  1. Best Open Source Software

    Best Open Source Software Open Source, Software, Top The promise of open source software is best qua ...

  2. 数据采集之js埋点

    一.后台nginx环境搭建 web点数据采集后台配置nginx:https://blog.csdn.net/weixin_37490221/article/details/80894827 下载数据源 ...

  3. ThinkPHP URL 路由简介

    简单的说,URL 路由就是允许你在一定规则下定制你需要的 URL 样子,以达到美化 URL ,提高用户体验,也有益于搜索引擎收录的目的. 例子 原本的 URL 为: http://www.5idev. ...

  4. Python--day30--网络基础

    单波: 查找mac:

  5. Python--day26--封装和@property

    ---恢复内容开始--- @property:修饰过的方法不能传任何参数,把方法伪装成属性,没有这个装饰就像c1.area()这样调用,少了一个括号,没什么用. @name.setter:实现可以修改 ...

  6. vue在渲染之前拿到数据操作.......vue数据获取

    异步请求数据,但是生命周期函数也是异步的,怎么才能保证渲染之前就能拿到数据呢? 官方给了两种方案, 我们可以在异步获取数据的时候加上一个loading表示现在在获取数据..... 由于ajax是异步操 ...

  7. SpringBoot集成thymeleaf(自定义)模板中文乱码的解决办法

    楼主今天在学习SpringBoot集成thymelaf的时候报了中文乱码的错误,经过网上的搜索,现在得到解决的办法,分享给大家: package com.imooc.config; import or ...

  8. 如何解决vue项目中 scss 不支持 scoped 的 /deep/ 穿透写法

    如何解决vue项目中 scss 不支持 scoped 的 /deep/ 穿透写法 用过vue的人估计都用过scoped样式属性,但有时候需要穿透样式,啥办? 很多资料都说用>>> 或 ...

  9. Pandas库之DataFrame

    Pandas库之DataFrame 1 简介 DataFrame是Python中Pandas库中的一种数据结构,它类似excel,是一种二维表. 或许说它可能有点像matlab的矩阵,但是matlab ...

  10. js基础——变量、作用域、内存

    1.new关键字创建的是引用类型: eg. var box = new Object();      box.name = "Linda";//引用类型添加属性没问题     al ...