使用Theia——添加语言支持
上一篇:使用Theia——创建插件
Theia——添加语言支持
Theia中TextMate的支持
添加新语法
extension/
data/
grammars go here
lib/
...
src/
...
package.json
...
然后,在package.json文件中声明以下属性,这样新提供的语法可以与源代码和编译的文件一同发布。
"files": [
"data",
"lib",
"src"
],
在扩展包中,我们可以通过LanguageGrammarDefinitionContribution的contribution point来提供这一特性。
@injectable()
export class YourContribution implements LanguageGrammarDefinitionContribution { readonly id = 'languageId';
readonly scopeName = 'source.yourLanguage'; registerTextmateLanguage(registry: TextmateRegisty) {
registry.registerTextmateGrammarScope(this.scopeName, {
async getGrammarDefinition() {
return {
format: 'json',
content: require('../data/yourGrammar.tmLanguage.json'),
}
}
});
registry.mapLanguageIdToTextmateGrammar(this.id, this.scopeName);
}
}
如果使用.plist语法,则不能使用require来直接获取内容,因为Webpack将返回从服务器获取的文件的名称。这种情况下,可以使用下面的模式来获取文件的内容:
@injectable()
export class YourContribution implements LanguageGrammarDefinitionContribution { readonly id = 'languageId';
readonly scopeName = 'source.yourLanguage'; registerTextmateLanguage(registry: TextmateRegisty) {
registry.registerTextmateGrammarScope(this.scopeName, {
async getGrammarDefinition() {
const response = await fetch(require('../data/yourGrammar.plist'));
return {
format: 'plist',
content: await response.text(),
}
}
});
registry.mapLanguageIdToTextmateGrammar(this.id, this.scopeName);
}
}
使用Theia——添加语言支持的更多相关文章
- iOS-生成国际化包-配置App多语言支持
标签: ios国际化 ios多语言支持 xcode多语言支持 xcode生成多语言 国际化 it 分类: 功能知识 如果你的App需要支持多国语言.那么,就应该为你的App应用添加“国际化”支 ...
- Pyqt 国际化多语言支持
国际化是指在代码设计上加入能方便的移植到其他国家和地区的特性, 给Pyqt 添加国际化支持需要五步 一.编写GUI.py 在要被翻译的text上用tr方法括起来 # -*- coding: utf-8 ...
- ios调用系统相册、相机 显示中文标题、本地化多语言支持
因为调用系统相册.相机需要显示中文,所以搞了半天才知道是在Project->info->Custom ios Target Properties 添加 Localizations 并加入C ...
- DDD开发框架ABP之本地化/多语言支持
本地化(Localization)也就是多语言功能,借此用户能够选择他的母语或熟悉的语言来使用系统,这显然非常有利于软件系统推向国际化.一个应用程序的UI界面至少有一种语言,DDD开发框架ABP就提供 ...
- (视频)《快速创建网站》 3.3 国际化高大上 - WordPress多语言支持
本文是<快速创建网站>系列的第7篇,如果你还没有看过之前的内容,建议你点击以下目录中的章节先阅读其他内容再回到本文. 访问本系列目录,请点击:http://devopshub.cn/tag ...
- tp 多语言支持
tp支持多语言 通过get来改变语言的 http://localhost/tp/index.php/Admin/User/add/hl/zh-cn http://localhost/tp/index. ...
- Windows Phone 8本地化多语言支持
原文 Windows Phone 8本地化多语言支持 在WP8平台处理本地化多语言的支持还是比较容易的,大部分工作都有VS IDE处理,开发者只需简单操作,并翻译本地资源即可实现. 无论您目前的应用是 ...
- Qt国际化(Q_DECLARE_TR_FUNCTIONS() 宏给非Qt类添加翻译支持,以前没见过QTextEncoder和QTextDecoder和QLibraryInfo::location()和QEvent::LanguageChange)
Internationalization with Qt 应用程序的国际化就是使得程序能在国际间可用而不仅仅是在本国可用的过程. Relevant Qt Classes andAPIs 以下的类支持Q ...
- Windows 8本地化多语言支持
原文:Windows 8本地化多语言支持 在Win8平台处理本地化多语言的支持相对比较容易的,但比WP8稍微复杂一点,并不像WP8平台那样大部分工作都有VS IDE处理,Win8平台的操作基本需要开发 ...
随机推荐
- HZOJ 礼物
其实是比较简单的一道期望状压dp,考试时一直在想数组表示概率,然而最后出的数总是小于一,于是无奈的把第一个点判掉放弃了其他点. 设f[i]为状态为i时到全部买到的期望次数,$f[i]=∑f[j]*p[ ...
- ODT 珂朵莉树 入门
#include<iostream> #include<stdio.h> #include<string.h> #include<algorithm> ...
- iptables 过滤条件(Matches)
iptables可让你设置多种过滤条件,但是某些条件需要核心有提供相关功能才行.Iptables本身內建一般性的Internet Protocol (IP) 过滤条件,也就是說,即时沒载入任何扩充模组 ...
- QQ 第三方登录
- 2001年NOIP普及组复赛题解
题目涉及算法: 数的计算:动态规划: 最大公约数和最小公倍数问题:质因数分解: 求先序排列:递归: 装箱问题:动态规划(纯0-1背包问题) 数的计算 题目链接:https://www.luogu.or ...
- 多线程:“对象当前正在其他地方使用”如何解决 system.drawing
使用这个委托,在拥有此控件的基础窗口句柄的线程上执行指定委托 this.Invoke(new Action(() => { node.SetValues(values); }));
- H3C 基本ACL部署位置示例
- java分配内存空间
分配内存空间 数组名=new 数据类型[数组长度]: new关键字用来实现为数组或对象分配内存 (堆内存) 数组具有固定的长度.获取数组的长度: 数组名.length 定义数组+分配内存空间 数据类型 ...
- springboot + redis + 注解 + 拦截器 实现接口幂等性校验
一.概念 幂等性, 通俗的说就是一个接口, 多次发起同一个请求, 必须保证操作只能执行一次 比如: 订单接口, 不能多次创建订单 支付接口, 重复支付同一笔订单只能扣一次钱 支付宝回调接口, 可能会多 ...
- js基础——对象和数组
1.Object类型 1)使用new运算符 var box = new Object();===>等同于 var box = Object();(省略new关键字) box.name ...