上一篇:使用Theia——创建扩展包
创建Theia插件
下面我们来看看如何创建Theia插件。作为示例,我们将注册一个Hello World命令,该命令显示一个“Hello World”通知。本文将指导你完成所有必要的步骤。
Theia的架构
插件与扩展包
Theia是一个可扩展的IDE。你可能听说过扩展是定制IDE的一种方式,而插件则是一种可以被添加到Theia中的新的可扩展模型。下面是一些有关插件和扩展包之间的主要区别。
插件
优点:
代码隔离:插件的代码运行在独立的进程中,它不会阻塞Theia核心进程。
可以在运行时加载。不需要重新编译整个Theia IDE。
减少编译时间。
自包含。插件可以被打包成一个独立的文件,并在稍后直接加载。它不需要从npmjs或者其它的地方获取额外的依赖项。
简单的API
缺点:
- 需要遵守预定义的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
在上面的命令中:
下面是生成器运行的动态图。

每个问题使用默认选项即可。
在这一步中,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文件中,有三个重要的部分:
首先,在devDependencies中,有一个依赖项@theia/plugin,这个包将在插件的代码中调用Theia API(如添加新命令和显示消息)。
第二,engines部分包含theiaPlugin,它允许将node包标记为可在特定版本的Theia上运行。
第三,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代码实现
- Netsharp快速入门(之2) 基础档案(之A 创建插件和资源)
作者:秋时 杨昶 时间:2014-02-15 转载须说明出处 第三章 基础档案开发 本文不再对此需求进行分析设计,其实分析设计的结果在下文会体现在平台的使用过程中,这个销售系统分成两个模 ...
- grunt入门讲解5:创建插件,安装Grunt以及常见问题
创建插件 创建插件主要有以下几个步骤: (1)通过 npm install -g grunt-init 命令安装 grunt-init .(2)通过 git clone git://github.co ...
- cordova 环境配制和创建插件
环境配制 英文网站:http://cordova.apache.org/ 中文网站:http://cordova.axuer.com/ 安装Cordova Cordova的命令行运行在Node.js ...
- 【odoo14】第三章、创建插件
现在我们已经有了开发环境并了解了如何管理实例及数据库,现在让我们来学习下如何创建插件模块. 本章内容如下: 创建和安装模块 完成manifest文件 组织模块文件结构 添加模型 添加菜单及视图 添加访 ...
- 基于C#的SolidWorks插件开发(2)--创建插件
在项目工程中可以看到SwAddin.cs文件.这个文件是插件的核心文件,包括插件的名称,注册表项,菜单,以及菜单的回调函数都在该文件中实现. 1.修改插件的名称和描述 Guid为插件生成后注册到注册表 ...
- 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 ...
- 使用Theia——创建扩展包
上一篇:使用Theia——构建你自己的IDE 创建Theia扩展包 本例中,我们将添加一个菜单项“Say hello”用来显示一个通知“Hello world!”.本文将指导你完成所有必要的步骤. T ...
- 邓_phpcms_二次开发_创建插件
Phpcms_V9 [test]测试 ================================================================ ====== ...
- 使用Theia——添加语言支持
上一篇:使用Theia——创建插件 Theia——添加语言支持 Theia中TextMate的支持 使用TextMate语法可以为大部分源文件提供精准的着色修饰,虽然这只是在语法级别上(没有语言本身的 ...
随机推荐
- linux中使用gbd进行单布调试
在linux 中使用gdb命令行进行单步调试,将整个过程介绍如下: 1.在当前路径下新建文件夹main, 并进入文件夹,新建文件main.cpp mkdir main cd main touch ma ...
- php-max_execution_time
有时候我们需要跑一个脚本,比如执行几十万个请求.如果你使用浏览器,请求服务器.这时就会出现执行中断,因为超时了.我们可以通过下面的方式: 修改php.ini配置文件 max_execution_tim ...
- win10访问Microsoft数据库问题总结
今天突然接到任务 把15年的一个wpf项目倒腾出来,根据客户要求微调界面效果 翻扯项目历史记录,找到最后一版的项目,不过历经三载,开发时的环境和现在的环境略有差距 原来:win7 64位 vs20 ...
- 【原生JS】评论编辑器 文本操作
效果图: HTML: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> ...
- 利用sort对数字排序
sort,可排序字符串,按照ASCII码排序. 但也可以穿一个比较函数,实现比较数组内容,排序数组的功能. var arr = [40, 32, 45, 89, 93, 0, 46, 74]; var ...
- pytorch lstm crf 代码理解 重点
好久没有写博客了,这一次就将最近看的pytorch 教程中的lstm+crf的一些心得与困惑记录下来. 原文 PyTorch Tutorials 参考了很多其他大神的博客,https://blog.c ...
- Python--day62--编辑出版社功能
1,Django项目主要用到的文件
- win10下,cmd,power shell设置默认编码为‘UTF-8’?
这个问题可以终结了,最新版 Windows 10 支持 UTF-8 了.打开这个选项,cmd 和 powershell 默认就是 UTF-8 了.在控制面板-时钟和区域-区域-管理-更改系统区域设置( ...
- H3C DHCP服务器基本配置示例
- 一次接口压力测试qps极低原因分析及解决过程
一次接口压力测试qps极低原因分析及解决过程 9-2日在做内部的性能测试相关培训时,发现注册接口压力测试qps极低(20左右),这个性能指标远不能达到上线标准 ,经过一系列调试,最后定位 98%的时间 ...