CN105138337A - 一种插件适配方法及插件适配装置 - Google Patents

一种插件适配方法及插件适配装置 Download PDF

Info

Publication number
CN105138337A
CN105138337A CN201510546153.0A CN201510546153A CN105138337A CN 105138337 A CN105138337 A CN 105138337A CN 201510546153 A CN201510546153 A CN 201510546153A CN 105138337 A CN105138337 A CN 105138337A
Authority
CN
China
Prior art keywords
plug
described target
target
programming language
interface
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510546153.0A
Other languages
English (en)
Other versions
CN105138337B (zh
Inventor
马迪欣
陈文杰
李恩华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Honor Device Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201510546153.0A priority Critical patent/CN105138337B/zh
Publication of CN105138337A publication Critical patent/CN105138337A/zh
Application granted granted Critical
Publication of CN105138337B publication Critical patent/CN105138337B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明提供一种插件适配方法及插件适配装置,涉及计算机技术领域,用于插件开发,使得插件能够适用于不同的IDE,插件开发人员无需针对不同的IDE分别开发插件,节约开发成本。包括:获取目标插件的插件配置文件,所述插件配置文件是第一编程语言编写的;解析所述插件配置文件,确定所述目标插件对应的扩展点;将所述扩展点创建在目标集成开发环境IDE上;其中,所述目标IDE适用的编程语言是第二编程语言,所述第一编程语言与所述第二编程语言不同。

Description

一种插件适配方法及插件适配装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种插件适配方法及插件适配装置。
背景技术
在计算机技术领域,用户(开发人员)通常在主流的IDE(IntegratedDevelopmentEnvironment,集成开发环境)中进行软件开发、代码调试等,如:VisualStudio、Eclipse、NeatBeans、IntelliJIDEA等IDE。插件开发人员可针对工具开发工具插件,将工具插件集成在当前使用的IDE中,以方便用户使用工具。
针对基于不同的IDE,插件开发人员需要学习与IDE相应的开发语言和二次开发技术,才能使得开发出的插件与用户使用的IDE相匹配。示例的,用户基于VisualStudio进行软件开发,插件开发人员就需要开发与VisualStudio相匹配的插件,由于用户开发软件使用的IDE种类较多,那么插件开发人员就需要开发与多种IDE相匹配的插件,同时,同一个工具如果要集成在不同的IDE中,需要开发不同的插件。综上,采用目前方案导致插件开发成本较高。
发明内容
本发明提供一种插件适配方法及插件适配装置,使得插件能够适用于不同的IDE,插件开发人员无需针对不同的IDE分别开发插件,节约开发成本。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,公开了一种插件适配方法,所述方法包括:
获取目标插件的插件配置文件,所述插件配置文件是第一编程语言编写的;
解析所述插件配置文件,确定所述目标插件对应的扩展点;
将所述扩展点创建在目标集成开发环境IDE上;
其中,所述目标IDE适用的编程语言是第二编程语言,所述第一编程语言与所述第二编程语言不同。
结合第一方面,在第一方面的第一种可能的实现方式中,所述将所述扩展点创建在目标IDE上具体包括:
通过调用所述目标IDE的二次开发接口,将所述扩展点创建在所述目标IDE的界面上,使得在所述目标IDE启动时,所述目标IDE的界面显示有所述扩展点。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述目标插件对应的扩展点包括:菜单、工具栏、视图、快捷键中的至少一个。
结合第一方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,若所述目标插件对应的扩展点包括视图,所述将所述扩展点创建在目标IDE上之后,所述方法还包括:
显示所述目标插件的界面。
结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述显示所述目标插件的界面具体包括:
创建所述目标IDE的视图窗口;
在所述目标IDE的视图窗口内嵌入预设浏览器的内核;
通过所述预设浏览器解析所述目标插件的代码定义的视图,显示所述目标插件的界面。
结合第一方面,在第一方面的第五种可能的实现方式中,所述方法还包括:
将所述目标插件调用的API(ApplicationProgrammingInterface,应用程序编程接口)接口设置为与所述第一编程语言对应的API接口,以便所述目标插件通过所述第一编程语言对应的API接口与所述目标IDE进行交互。
第二方面,公开了一种插件适配装置,包括:
获取单元,用于获取目标插件的插件配置文件,所述插件配置文件是第一编程语言编写的;
解析单元,用于解析所述获取单元获取的所述插件配置文件,确定所述目标插件对应的扩展点;
创建单元,用于将所述解析单元确定的所述扩展点创建在目标集成开发环境IDE上;
其中,所述目标IDE适用的编程语言是第二编程语言,所述第一编程语言与所述第二编程语言不同。
结合第二方面,在第二方面的第一种可能的实现方式中,所述创建单元具体用于,通过调用所述目标IDE的二次开发接口,将所述扩展点创建在所述目标IDE的界面上,使得在所述目标IDE启动时,所述目标IDE的界面显示有所述扩展点。
结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述目标插件对应的扩展点包括:菜单、工具栏、视图、快捷键中的至少一个。
结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,若所述目标插件对应的扩展点包括视图,则还包括显示单元,
所述显示单元用于,在所述创建单元将所述扩展点创建在目标IDE上之后,显示所述目标插件的界面。
结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述显示单元具体用于,创建所述目标IDE的视图窗口;在所述目标IDE的视图窗口内嵌入预设浏览器的内核;以便通过所述预设浏览器解析所述目标插件的代码定义的视图,显示所述目标插件的界面。
结合第二方面,在第二方面的第五种可能的实现方式中,还包括设置单元,
所述设置单元用于,在所述显示单元显示所述目标插件的界面之前,将所述目标插件调用的API接口设置为与所述第一编程语言对应的API接口,以便所述目标插件通过所述第一编程语言对应的API接口与所述目标IDE进行交互。
本发明实施例提供的插件适配方法及插件适配装置,获取插件配置文件,所述插件配置文件是第一编程语言编写的;所述插件配置文件包括目标插件的代码;解析所述目标插件的代码,确定所述目标插件对应的扩展点;将所述扩展点创建在目标集成开发环境IDE上。其中,所述目标IDE适用的编程语言是第二编程语言,所述第一编程语言与所述第二编程语言不同。这样,插件开发人员无需针对不同的IDE分别开发适配的插件。仅开发一套插件,对该插件的配置文件进行解析将插相应的扩展点创建在目标IDE上,一套插件就可适用于不同的IDE,节约开发成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例1提供的插件适配方法的流程示意图;
图2为本发明实施例1提供的创建扩展点的示意图;
图3为本发明实施例1提供的交互示意图;
图4为本发明实施例2提供的插件适配装置的结构框图;
图5为本发明实施例3提供的插件适配装置的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
开发业界的主流工具厂商(如Atlassian,SmartBear)以及开源组织,在提供自己的工具或服务时,为了能便于开发人员使用,通常在主流的IDE,如:VisualStudio、Eclipse、NeatBeans、IntelliJIDEA等中开发插件,将插件集成在IDE中使用。
这些IDE都分别提供了自己的二次开发扩展点,让工具厂商和开源组织进行定制。工具厂商和开源组织的插件开发人员需要对不同的IDE分别开发插件。针对不同的IDE开发插件时,插件开发人员需要学习相应的语言和二次开发技术。如基于VisualStudio开发插件,就需要学习C语言或C++语言等,基于Eclipse开发插件,就需学习Java语言。
另外,同一个工具如果要集成在不同的IDE中,需要开发不同的插件,且要适配不同IDE的版本,插件开发成本以及后续的维护成本非常高。
本发明旨在提供一种插件适配方法,使得插件能够适用于不同的IDE,插件开发人员无需针对不同的IDE分别开发插件,节约开发成本。
实施例1:
本发明实施例提供一种插件适配方法,如图1所示,所述方法包括以下步骤:
101、获取目标插件的插件配置文件,所述插件配置文件是第一编程语言编写的。
需要说明的是,所述目标插件包括目标插件的代码和目标插件的插件配置文件。其中,所述插件配置文件定义了所述目标插件对应的扩展点,如:菜单,工具栏,视图、快捷键中的至少一个。所谓创建所述目标插件在所述目标IDE上需要集成的功能。所述第一编程语言可以是本领域技术人员普遍熟知的web语言。
需要说明的是,本实施例的执行主体为能够适配各个版本的IDE的IDE框架,即能够实现本发明实施例提供的方法的IDE框架。
102、解析所述插件配置文件,确定所述目标插件对应的扩展点。
由于所述目标插件的代码定义了所述目标插件对应的扩展点,对所述目标插件的代码进行解析就可以确定所述目标插件对应的扩展点。
示例的,所述插件配置文件中所述目标插件的代码可以是:
通过对上述代码进行解析,就可以确定所述目标插件对应的扩展点。
103、将所述扩展点创建在目标集成开发环境IDE上。
具体实现中,通过调用所述目标IDE的二次开发接口,将所述扩展点创建在所述目标IDE的界面上,使得在所述目标IDE启动时,所述目标IDE的界面显示有所述扩展点。示例的,VisualStudio需要调用CommanBars组件中CommanBarcontrol类的ADD方法,Eclipse需要使用Menumanager类方法将扩展点集成在目标IDE中。
如图2所示,可以将所述扩展点创建在所述目标IDE的界面的上方,当然也可以创建在所述目标IDE的界面上的其他位置。
需要说明的是,所述目标IDE适用的编程语言是第二编程语言,所述第一编程语言与所述第二编程语言不同。本发明中,对所述第一编程语言、所述第二编程语言不作限定,所述第一编程语言可以是web语言,所述第二编程语言是所述目标IDE适用的编程语言,在此不作限定。
在本发明的优选实施例中,若所述目标插件对应的扩展点包括视图,所述将所述扩展点创建在目标IDE上之后,所述方法还包括:显示所述目标插件的界面。
需要说明的是,所述目标插件对应的扩展点包括视图,即所述目标插件的代码定义了视图,如代码中定义了“views”,那就需要创建所述目标插件的视图,即显示所述目标插件的界面。
进一步地,所述显示所述目标插件的界面具体包括:创建所述目标IDE的视图窗口;在所述目标IDE的视图窗口内嵌入预设浏览器的内核,以便通过所述预设浏览器解析所述目标插件的代码定义的视图,显示所述目标插件的界面。
示例的,通过调用目标IDE提供的二次开发接口(如VisualStudio的CreateToolWindow2接口,Eclipse的WorkbenchWindow类的ShowView接口),动态创建IDE视图窗口。然后在IDE视图窗口内使用COM(ComponentObjectModel,组件对象模型)技术创建以IDE视图为父窗口的ActiveX控件作为沙箱容器,最后在沙箱内部动态创建Chrome浏览器内核,以便解析插件配置文件中视图(”View”)的相关代码,显示插件配置文件的插件界面定义插件界面。其中,Chrome浏览是用于解析web语言的浏览器,在此插件配置文件是用web语言编写的。COM技术是开发软件组件的一种方法。组件实际上是一些小的二进制可执行程序,它们可以给应用程序,操作系统以及其他组件提供服务。开发自定义的COM组件就如同开发动态的,面向对象的API。多个COM对象可以连接起来形成应用程序或组件系统。
在本发明的优选实施例中,所述方法还包括:将所述目标插件调用的API接口设置为与所述第一编程语言对应的API接口,以便所述目标插件通过所述第一编程语言对应的API接口与所述目标IDE进行交互。
具体地,所述目标插件与所述目标IDE间的交互包括:
通过与所述第一编程语言对应的API接口接收所述目标IDE发送的触发事件;所述触发事件为所述目标扩展点被触发;
确定所述触发事件对应的数据;
通过与所述第一编程语言对应的应用程序编程接口API接口将所述触发事件对应的数据发送给所述目标IDE。
具体地,IDE框架以文件和命令的方式,实现与目标IDE的交互。其中,复杂参数以xml(ExtensibleMarkupLanguage,可扩展标记语言)形式写在文本文件中传递,简单参数使用指令进行交互。
示例的,如图3所示,S1.目标IDE检测到触发事件,将所述触发事件发送给IDE框架的适配模块。
其中,所述触发事件即所述目标扩展点被触发(如:被点击选中),目标IDE将触发事件的标识发送给适配模块。
S2.IDE框架的适配模块通知IDE框架处理。
具体地,IDE框架的适配模块将插件标识(key)和触发事件的标识写入文件,并以命令形式通知IDE框架处理。
S3.IDE框架处理后会将触发事件对应的数据写入文件,并发送给IDE框架的适配模块。
S4.IDE框架的适配模块将携带触发事件对应的数据的文件发送给目标IDE。
本发明实施例提供的插件适配方法,获取插件配置文件,所述插件配置文件是第一编程语言编写的;所述插件配置文件包括目标插件的代码;解析所述目标插件的代码,确定所述目标插件对应的扩展点;将所述扩展点创建在目标集成开发环境IDE上。其中,所述目标IDE适用的编程语言是第二编程语言,所述第一编程语言与所述第二编程语言不同。这样,插件开发人员无需针对不同的IDE分别开发适配的插件。仅开发一套插件,对该插件的配置文件进行解析将插相应的扩展点创建在目标IDE上,一套插件就可适用于不同的IDE,节约开发成本。
实施例2:
本发明实施例提供了一种插件适配装置,如图4所示,所述插件适配装置包括:获取单元201、解析单元202、创建单元203。
获取单元201,用于获取目标插件的插件配置文件,所述插件配置文件是第一编程语言编写的。
需要说明的是,所述目标插件包括目标插件的代码和目标插件的插件配置文件。其中,所述插件配置文件定义了所述目标插件对应的扩展点,如:菜单,工具栏,视图、快捷键中的至少一个。所谓创建所述目标插件在所述目标IDE上需要集成的功能。所述第一编程语言可以是本领域技术人员普遍熟知的web语言。
解析单元202,用于解析所述获取单元201获取的所述插件配置文件,确定所述目标插件对应的扩展点。
由于所述目标插件的代码定义了所述目标插件对应的扩展点,对所述目标插件的代码进行解析就可以确定所述目标插件对应的扩展点。
示例的,所述插件配置文件中所述目标插件的代码可以是:
通过对上述代码进行解析,就可以确定所述目标插件对应的扩展点。
创建单元203,用于将所述解析单元202确定的所述扩展点创建在目标集成开发环境IDE上。
其中,所述目标IDE适用的编程语言是第二编程语言,所述第一编程语言与所述第二编程语言不同。
所述创建单元203具体用于,通过调用所述目标IDE的二次开发接口,将所述扩展点创建在所述目标IDE的界面上,使得在所述目标IDE启动时,所述目标IDE的界面显示有所述扩展点。
需要说明的是,所述目标插件对应的扩展点包括:菜单、工具栏、视图、快捷键中的至少一个。
若所述目标插件对应的扩展点包括视图,则所述插件适配装置还包括显示单元,
所述显示单元用于,在所述创建单元将所述扩展点创建在目标IDE上之后,显示所述目标插件的界面。
所述显示单元具体用于,创建所述目标IDE的视图窗口;在所述目标IDE的视图窗口内嵌入预设浏览器的内核;以便通过所述预设浏览器解析所述目标插件的代码定义的视图,显示所述目标插件的界面。
所述插件适配装置还包括设置单元。
所述设置单元用于,在所述显示单元显示所述目标插件的界面之前,将所述目标插件调用的API接口设置为与所述第一编程语言对应的API接口,以便所述目标插件通过所述第一编程语言对应的API接口与所述目标IDE进行交互。
具体地,所述目标插件与所述目标IDE间的交互包括:
通过与所述第一编程语言对应的API接口接收所述目标IDE发送的触发事件;所述触发事件为所述目标扩展点被触发;
确定所述触发事件对应的数据;
通过与所述第一编程语言对应的应用程序编程接口API接口将所述触发事件对应的数据发送给所述目标IDE。
具体地,IDE框架以文件和命令的方式,实现与目标IDE的交互。其中,复杂参数以xml(ExtensibleMarkupLanguage,可扩展标记语言)形式写在文本文件中传递,简单参数使用指令进行交互。
示例的,如图3所示,S1.目标IDE检测到触发事件,将所述插件信息发送给IDE框架的适配模块。
具体地,IDE框架的适配模块将插件标识(key)和触发事件的标识写入文件,并以命令形式通知IDE框架处理。
S3.IDE框架处理后会将触发事件对应的数据写入文件,并发送给IDE框架的适配模块。
S4.IDE框架的适配模块将携带触发事件对应的数据的文件发送给目标IDE。
本发明实施例提供的插件适配装置,获取插件配置文件,所述插件配置文件是第一编程语言编写的;所述插件配置文件包括目标插件的代码;解析所述目标插件的代码,确定所述目标插件对应的扩展点;将所述扩展点创建在目标集成开发环境IDE上。其中,所述目标IDE适用的编程语言是第二编程语言,所述第一编程语言与所述第二编程语言不同。这样,插件开发人员无需针对不同的IDE分别开发适配的插件。仅开发一套插件,对该插件的配置文件进行解析将插相应的扩展点创建在目标IDE上,一套插件就可适用于不同的IDE,节约开发成本。
实施例3:
本发明实施例提供了一种插件适配装置,如图5所示,所述插件适配装置可以包括处理器301、系统总线302和存储器303。
其中,处理器301可以为中央处理器(英文:centralprocessingunit,缩写:CPU)。
存储器303,用于存储程序代码,并将该程序代码传输给该处理器301,处理器301根据程序代码执行下述指令。存储器303可以包括易失性存储器(英文:volatilememory),例如随机存取存储器(英文:random-accessmemory,缩写:RAM);存储器303也可以包括非易失性存储器(英文:non-volatilememory),例如只读存储器(英文:read-onlymemory,缩写:ROM),快闪存储器(英文:flashmemory),硬盘(英文:harddiskdrive,缩写:HDD)或固态硬盘(英文:solid-statedrive,缩写:SSD)。存储器303还可以包括上述种类的存储器的组合。处理器301、存储器303之间通过系统总线302连接并完成相互间的通信。
处理器301,用于获取目标插件的插件配置文件,所述插件配置文件是第一编程语言编写的。解析所述插件配置文件,确定所述目标插件对应的扩展点。将所述扩展点创建在目标集成开发环境IDE上。
其中,所述目标IDE适用的编程语言是第二编程语言,所述第一编程语言与所述第二编程语言不同。
需要说明的是,所述目标插件包括目标插件的代码和目标插件的插件配置文件。其中,所述插件配置文件定义了所述目标插件对应的扩展点,如:菜单,工具栏,视图、快捷键中的至少一个。所谓创建所述目标插件在所述目标IDE上需要集成的功能。所述第一编程语言可以是本领域技术人员普遍熟知的web语言。
示例的,所述插件配置文件中所述目标插件的代码可以是:
通过对上述代码进行解析,就可以确定所述目标插件对应的扩展点。
所述处理器301具体用于,通过调用所述目标IDE的二次开发接口,将所述扩展点创建在所述目标IDE的界面上,使得在所述目标IDE启动时,所述目标IDE的界面显示有所述扩展点。
需要说明的是,所述目标插件对应的扩展点包括:菜单、工具栏、视图、快捷键中的至少一个。
若所述目标插件对应的扩展点包括视图,处理器301还用于,在所述创建单元将所述扩展点创建在目标IDE上之后,显示所述目标插件的界面。
所述处理器301具体用于,创建所述目标IDE的视图窗口;在所述目标IDE的视图窗口内嵌入预设浏览器的内核;以便通过所述预设浏览器解析所述目标插件的代码定义的视图,显示所述目标插件的界面。
所述处理器301还用于,在所述显示单元显示所述目标插件的界面之前,将所述目标插件调用的API接口设置为与所述第一编程语言对应的API接口,以便所述目标插件通过所述第一编程语言对应的API接口与所述目标IDE进行交互。
具体地,所述目标插件与所述目标IDE间的交互包括:
通过与所述第一编程语言对应的API接口接收所述目标IDE发送的触发事件;所述触发事件为所述目标扩展点被触发;
确定所述触发事件对应的数据;
通过与所述第一编程语言对应的应用程序编程接口API接口将所述触发事件对应的数据发送给所述目标IDE。
所述处理器301还用于,通过与所述第一编程语言对应的API接口与所述目标IDE进行交互。
所述处理器301具体用于,通过与所述第一编程语言对应的API接口接收所述目标IDE发送的触发事件对应的插件信息;所述触发事件为所述目标扩展点被触发;确定所述触发事件对应的数据;通过与所述第一编程语言对应的API接口将所述触发事件对应的数据发送给所述目标IDE。
本发明实施例提供的插件适配装置,获取插件配置文件,所述插件配置文件是第一编程语言编写的;所述插件配置文件包括目标插件的代码;解析所述目标插件的代码,确定所述目标插件对应的扩展点;将所述扩展点创建在目标集成开发环境IDE上。其中,所述目标IDE适用的编程语言是第二编程语言,所述第一编程语言与所述第二编程语言不同。这样,插件开发人员无需针对不同的IDE分别开发适配的插件。仅开发一套插件,对该插件的配置文件进行解析将插相应的扩展点创建在目标IDE上,一套插件就可适用于不同的IDE,节约开发成本。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (12)

1.一种插件适配方法,其特征在于,所述包括:
获取目标插件的插件配置文件,所述插件配置文件是第一编程语言编写的;
解析所述插件配置文件,确定所述目标插件对应的扩展点;
将所述扩展点创建在目标集成开发环境IDE上;
其中,所述目标IDE适用的编程语言是第二编程语言,所述第一编程语言与所述第二编程语言不同。
2.根据权利要求1所述的方法,其特征在于,所述将所述扩展点创建在目标IDE上具体包括:
通过调用所述目标IDE的二次开发接口,将所述扩展点创建在所述目标IDE的界面上,使得在所述目标IDE启动时,所述目标IDE的界面显示有所述扩展点。
3.根据权利要求1或2所述的方法,其特征在于,所述目标插件对应的扩展点包括:菜单、工具栏、视图、快捷键中的至少一个。
4.根据权利要求3所述的方法,其特征在于,若所述目标插件对应的扩展点包括视图,所述将所述扩展点创建在目标IDE上之后,所述方法还包括:
显示所述目标插件的界面。
5.根据权利要求4所述的方法,其特征在于,所述显示所述目标插件的界面具体包括:
创建所述目标IDE的视图窗口;
在所述目标IDE的视图窗口内嵌入预设浏览器的内核;
通过所述预设浏览器解析所述目标插件的代码定义的视图,显示所述目标插件的界面。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述目标插件调用的应用程序编程接口API接口设置为与所述第一编程语言对应的API接口,以便所述目标插件通过所述第一编程语言对应的API接口与所述目标IDE进行交互。
7.一种插件适配装置,其特征在于,包括:
获取单元,用于获取目标插件的插件配置文件,所述插件配置文件是第一编程语言编写的;
解析单元,用于解析所述获取单元获取的所述插件配置文件,确定所述目标插件对应的扩展点;
创建单元,用于将所述解析单元确定的所述扩展点创建在目标集成开发环境IDE上;
其中,所述目标IDE适用的编程语言是第二编程语言,所述第一编程语言与所述第二编程语言不同。
8.根据权利要求7所述的装置,其特征在于,所述创建单元具体用于,通过调用所述目标IDE的二次开发接口,将所述扩展点创建在所述目标IDE的界面上,使得在所述目标IDE启动时,所述目标IDE的界面显示有所述扩展点。
9.根据权利要求7或8所述的装置,其特征在于,所述目标插件对应的扩展点包括:菜单、工具栏、视图、快捷键中的至少一个。
10.根据权利要求9所述的装置,其特征在于,若所述目标插件对应的扩展点包括视图,则还包括显示单元,
所述显示单元用于,在所述创建单元将所述扩展点创建在目标IDE上之后,显示所述目标插件的界面。
11.根据权利要求10所述的装置,其特征在于,所述显示单元具体用于,创建所述目标IDE的视图窗口;在所述目标IDE的视图窗口内嵌入预设浏览器的内核;以便通过所述预设浏览器解析所述目标插件的代码定义的视图,显示所述目标插件的界面。
12.根据权利要求7所述的装置,其特征在于,还包括设置单元,
所述设置单元用于,在所述显示单元显示所述目标插件的界面之前,将所述目标插件调用的API接口设置为与所述第一编程语言对应的API接口,以便所述目标插件通过所述第一编程语言对应的API接口与所述目标IDE进行交互。
CN201510546153.0A 2015-08-31 2015-08-31 一种插件适配方法及插件适配装置 Active CN105138337B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510546153.0A CN105138337B (zh) 2015-08-31 2015-08-31 一种插件适配方法及插件适配装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510546153.0A CN105138337B (zh) 2015-08-31 2015-08-31 一种插件适配方法及插件适配装置

Publications (2)

Publication Number Publication Date
CN105138337A true CN105138337A (zh) 2015-12-09
CN105138337B CN105138337B (zh) 2018-09-28

Family

ID=54723695

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510546153.0A Active CN105138337B (zh) 2015-08-31 2015-08-31 一种插件适配方法及插件适配装置

Country Status (1)

Country Link
CN (1) CN105138337B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109960493A (zh) * 2019-03-25 2019-07-02 山东浪潮通软信息科技有限公司 一种基于动态插件机制的在线ide开发方法
CN111638877A (zh) * 2020-06-01 2020-09-08 山东汇贸电子口岸有限公司 一种Web项目可视化快速开发方法
CN111857710A (zh) * 2020-06-18 2020-10-30 远光软件股份有限公司 一种基于内嵌chromium开发Eclipse插件的方法及装置
CN112527284A (zh) * 2020-12-29 2021-03-19 杭州玳数科技有限公司 一种轻量级的插件式、组件化的web ide ui开发框架
CN113032087A (zh) * 2019-12-25 2021-06-25 亚信科技(南京)有限公司 一种基于Chromium内核的数据交互方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101446903A (zh) * 2008-12-19 2009-06-03 北京大学 构件自动分类的方法
US7668608B2 (en) * 2006-09-01 2010-02-23 Fisher-Rosemount Systems, Inc. Graphical programming language object editing and reporting tool

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7668608B2 (en) * 2006-09-01 2010-02-23 Fisher-Rosemount Systems, Inc. Graphical programming language object editing and reporting tool
CN101446903A (zh) * 2008-12-19 2009-06-03 北京大学 构件自动分类的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
李大卓等: "《Eclipse核心编程 插件、界面与Web开发》", 30 April 2007 *
谷钰等: "Eclipse 插件体系结构的研究", 《电脑知识与技术》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109960493A (zh) * 2019-03-25 2019-07-02 山东浪潮通软信息科技有限公司 一种基于动态插件机制的在线ide开发方法
CN113032087A (zh) * 2019-12-25 2021-06-25 亚信科技(南京)有限公司 一种基于Chromium内核的数据交互方法及装置
CN113032087B (zh) * 2019-12-25 2024-02-23 亚信科技(南京)有限公司 一种基于Chromium内核的数据交互方法及装置
CN111638877A (zh) * 2020-06-01 2020-09-08 山东汇贸电子口岸有限公司 一种Web项目可视化快速开发方法
CN111857710A (zh) * 2020-06-18 2020-10-30 远光软件股份有限公司 一种基于内嵌chromium开发Eclipse插件的方法及装置
CN112527284A (zh) * 2020-12-29 2021-03-19 杭州玳数科技有限公司 一种轻量级的插件式、组件化的web ide ui开发框架

Also Published As

Publication number Publication date
CN105138337B (zh) 2018-09-28

Similar Documents

Publication Publication Date Title
CN105138337A (zh) 一种插件适配方法及插件适配装置
US7334117B2 (en) Device boot loader for processing one or more requests from a host computer system concurrently with loading or updating the firmware of the device
CN107526625B (zh) 一种基于字节码检查的Java智能合约安全检测方法
US8645938B2 (en) System and method for replacing code
US20150082298A1 (en) Packaging and deploying hybrid applications
WO2016196701A1 (en) Natural language engine for coding and debugging
CN109669873B (zh) 用户界面自动测试方法及装置、电子设备及存储介质
CN108196876B (zh) 基于文件的php业务配置方法及中心服务器
CN103473067A (zh) 嵌入式Linux分区与数据还原方法、系统及系统开发方法
CN103778373A (zh) 病毒检测方法及装置
CN103246578A (zh) 应用软件进行崩溃处理的方法及进行崩溃处理的浏览器
CN103631719A (zh) 一种Web自动化测试方法和装置
CN109522010B (zh) 初始化代码添加方法及装置、存储介质、电子设备
US10387124B2 (en) System and method for creating domain specific language
KR20150061203A (ko) 네이티브 빌드 기반의 임베디드 소프트웨어 개발 환경을 지원하기 위한 임베디드 소프트웨어 개발 도구 제공 방법 및 장치
CN108037941A (zh) 基于公共插件的应用程序更新方法、电子设备、存储介质
US20100088689A1 (en) Branding binary modules using resource patching
CN103744656A (zh) 一种数据解析方法及装置
CN103077038A (zh) 动态生成和编译.net项目的方法
CN106547537B (zh) 一种基于qml技术实现可组装的电力应用软件方法
CN103176903A (zh) MapReduce分布式系统程序的测试方法及设备
US9405739B1 (en) Source code format for IDE code development with embedded objects
CN107077365B (zh) 有选择地加载预编译的头部和/或其部分
CN104063306A (zh) 智能终端软件测试中的自动登录方法、装置和系统
CN110780863A (zh) 一种存储系统的跨平台开发方法、装置、设备及介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20210428

Address after: Unit 3401, unit a, building 6, Shenye Zhongcheng, No. 8089, Hongli West Road, Donghai community, Xiangmihu street, Futian District, Shenzhen, Guangdong 518040

Patentee after: Honor Device Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right