一起写atom插件(2)——插件间的数据交互
来源:互联网 发布:淘宝买单机游戏 编辑:程序博客网 时间:2024/06/06 14:21
简介
atom插件之间是通过service交流的,我目前在写一个自动补全的插件,是依赖于facebook的hyperclick插件的,就以这个为例讲下插件间的数据交互。
学过android的童鞋应该都懂,这不就是provider吗。
声明service
声明service在package.json中用providedServices,具体的方法是带版本号的,
"providedServices": { "hyperclick.provider": { "versions": { "0.0.0": "getProvider" } } },
getProvider方法返回的是一个hyperclick.provider的对象,代码分析:
getProvider() { return makeProvider(this.subscriptions) },
makePrivoder我这里是返回的provider对象:
return { providerName: "lp-js-hyperclick", wordRegExp: /[$0-9\w]+/g, getSuggestionForWord( textEditor: TextEditor, text: string, range: AtomRange, ) { if (isJavascript(textEditor)) { const info = cache.get(textEditor) if (info.parseError) return const buffer = textEditor.getBuffer() const start = buffer.characterIndexForPosition(range.start) const end = buffer.characterIndexForPosition(range.end) const options = { jumpToImport: atom.config.get("lp-js-hyperclick.jumpToImport"), } const suggestion = buildSuggestion(info, text, { start, end }, options) if (suggestion) { return buildResult(textEditor, range, suggestion, false) } } }, }
接收service
调用service在package.json中用consumedServices
"consumedServices": { "hyperclick.provider": { "versions": { "0.0.0": "addLegacyProvider" } },
:
版本对的上就可以接收了,注意这不是调用而是接收,接收的也是provider对象,
addLegacyProvider( provider: HyperclickProvider | Array<HyperclickProvider>, ): IDisposable { return this.addProvider( Array.isArray(provider) ? provider.map(fixLegacyProvider) : fixLegacyProvider(provider), ); }
至此你应该非常清楚Atom插件间的数据交互了
阅读全文
1 0
- 一起写atom插件(2)——插件间的数据交互
- 一起写atom插件(1)——写个简单的插件
- 一起写atom插件(3)——常用的组件
- 我的atom插件
- atom的插件必备
- atom的插件必备
- atom的插件
- atom的插件必备
- 最强大的代码编辑器(IDE)——Atom。Atom介绍安装与插件配置(一)
- Atom Editor 插件 atom-less 的使用方法
- Atom插件——前端必备哦
- atom插件
- atom插件
- Atom插件
- Atom的配置与插件
- atom编辑器的常用插件
- 关于atom的初次使用和atom插件
- Atom插件go-plus的离线安装
- LNAMP环境的搭建
- Java生成二维码
- Sql Server的登陆方式
- 基数排序(Radix Sort)
- 如何本地ssh远程登录阿里云服务器 ECS
- 一起写atom插件(2)——插件间的数据交互
- HttpServlet详解
- Java 深度克隆
- 关于MySQL返回插入的自增主键的几种方法
- OPCDAAuto.dll的C#使用方法浅析
- java如何对ArrayList中对象按照该对象某属性排序
- Android gradle issue: WARNING [Project: :app] shrinkResources does not yet work with useJack=true
- 谈一谈学习AngularJS2的一些package的心得
- Swift