用于集成开发环境插件依赖管理的方法及插件依赖管理器与流程

文档序号:37775163发布日期:2024-04-25 11:01阅读:6来源:国知局
用于集成开发环境插件依赖管理的方法及插件依赖管理器与流程

本技术涉及插件安装的领域,尤其涉及用于集成开发环境插件依赖管理的方法及插件依赖管理器。


背景技术:

1、visual studio code(简称为vs code)是一款由微软开发的轻量级代码编辑器,它具有跨平台、轻量级、多语言支持、智能提示、内置终端、内置git、插件机制等特点,这使其被广泛应用于各种编程场景中,无论是轻量级的网页开发还是复杂的云计算应用,都能满足用户的需求。

2、vs code的插件机制使得它不仅是一个编辑器,更是一个轻量级的ide。用户可以根据需要定制和扩展编辑器的功能,例如语法高亮、代码折叠、自动补全、代码片段、调试等。vs code拥有一个庞大而活跃的插件市场,每天都有插件开发者将新插件被发布在插件市场中,插件使用者可以通过在插件市场搜索不同功能的插件定制自己的编程环境。

3、插件可能会依赖操作系统依赖包,这些依赖包可能包括各种库、框架或工具等。一些插件可能需要特定的编程语言编译器,例如c++插件可能需要c++编译器;一些插件可能需要特定的软件库或框架,例如一些处理html或css的插件可能需要jquery或react等javascript库。另外,一些插件可能需要特定的工具,例如clangd插件可能需要相关的语法检查工具。

4、对于这些依赖包的安装,插件开发者通常有两种处理方法。一、在插件的帮助文档中对依赖包的依赖情况进行阐述,插件使用者根据需要自行下载依赖包进行安装;二、在插件帮助文档中阐述依赖情况的同时,给插件添加上依赖包检测和安装功能,插件使用者在安装这些插件时插件将尝试自动检测并安装必要的依赖包。在这两种方法中,仅仅在帮助文档中阐述依赖包情况对插件使用者来说是不够的,通常定制vs code开发环境所需的插件可能几个到十几个或者更多,如果每个插件的依赖包都要用户手动下载安装,这无疑会给使用者一种很糟糕的体验。方法二虽然支持插件自动检测并安装依赖包的功能,但是存在两个问题。第一个问题:对于插件开发者来说,每开发一款依赖操作系统底层依赖包的插件时都需要重复的添加依赖包检测和安装功能。第二个问题:插件具有跨平台的特性,通常不同的操作系统之间的依赖包可能存在差异,但是插件并没有对此做区分,只是从依赖包官网进行拉取下载,因此依赖包可能与系统不兼容造成插件无法正常使用。


技术实现思路

1、为解决上述问题,本发明提供了用于集成开发环境插件依赖管理的插件依赖管理器以及方法。

2、其中,用于集成开发环境插件依赖管理的插件依赖管理器包括插件依赖包信息读取模块、插件列表模块、依赖包信息检查模块以及依赖包安装模块,其中,所述依赖包信息读取模块与所述插件列表模块相连接,所述依赖包信息读取模块与所述依赖包信息检查模块相连接,所述依赖包信息检查模块与所述依赖包安装模块相连接,其中,

3、依赖包信息读取模块,用于读取插件配置文件depends.json文件内容,结合平台架构以及操作系统信息,获取至少一个插件分别对应的依赖包信息,并检测所述依赖包信息是否符合depends规则,得到规则检测结果,所述依赖包信息用于表征插件对当前平台的适配情况,所述depends规则是定义的一种插件依赖管理规则;

4、插件列表模块,用于从依赖包信息读取模块获取依赖包信息以及规则检测结果,并将所述至少一个插件的插件信息、分别对应的依赖包信息以及分别对应的规则检测结果显示出来,所述插件信息包括插件id、插件名称和插件版本;

5、依赖包信息检查模块,用于根据从依赖包信息读取模块获取到的依赖包信息,检查当前平台的操作系统中已安装的依赖包是否符合依赖包要求,若不符合所述依赖包要求,则检查已安装的依赖包对应的软件源中的依赖包是否符合依赖包要求,得到依赖包状态信息,并显示所述依赖包状态信息;

6、依赖包安装模块,用于根据从依赖包信息检查模块获取到的依赖包状态信息,为所述至少一个插件提供依赖包安装支持。

7、在另一种可能实现的方式中,所述依赖包信息读取模块读取插件配置文件depends.json文件内容,结合平台架构以及操作系统信息,获取至少一个插件分别对应的依赖包信息,并检测所述依赖包信息是否符合depends规则,得到规则检测结果,包括:

8、获取depends.json文件路径,检测depends.json文件是否存在,所述depends.json文件由插件开发者填写;

9、若存在,则读取depends.json文件内容,并存放在dependsdata中;

10、获取当前平台的系统包管理形式、架构信息以及操作系统信息;

11、基于所述系统包管理形式、所述架构信息以及所述操作系统信息匹配出当前平台下所述至少一个插件分别对应的依赖包信息;

12、检测所述依赖包信息是否符合depends规则,得到规则检测结果,将依赖包信息及规则检测结果存放在dependsdatafilter中,并传递给插件列表模块。

13、在另一种可能实现的方式中,所述基于所述系统包管理形式、所述架构信息以及所述操作系统信息匹配出当前平台下所述插件的依赖包信息,包括:

14、步骤sa,从dependsdata中获取默认架构default_arch,默认操作系统default_os的依赖包信息,放入dependsobject中;

15、步骤sb,从dependsdata中获取默认架构default_arch,当前操作系统的依赖包信息放入dependsobject,与sa步骤中获取的信息形成合集,但是如果从步骤sa中获取的依赖包信息与当前步骤获取的依赖包信息存在冲突,则针对冲突信息的处理方式为用当前步骤获取的依赖包信息覆盖步骤sa中获取的依赖包信息;

16、步骤sc,从dependsdata中获取当前架构,默认操作系统default_os的依赖包信息,放入dependsobject,与sa,sb步骤中获取的信息形成合集,但是如果从步骤sa以及步骤sb中获取的依赖包信息与当前步骤获取的依赖包信息存在冲突,则用当前步骤获取的依赖包信息覆盖步骤sa以及步骤sb中获取的依赖包信息;

17、步骤sd,从dependsdata中获取当前架构,当前操作系统的依赖包信息,放入dependsobject,与sa,sb,sc步骤中获取的信息形成合集,但是如果从步骤sa、步骤sb以及步骤sc中获取的依赖包信息与当前步骤获取的依赖包信息有冲突,则用当前步骤获取的依赖包信息覆盖从步骤sa、步骤sb以及步骤sc中获取的依赖包信息。

18、在另一种可能实现的方式中,所述插件列表模块从依赖包信息读取模块获取依赖包信息以及规则检测结果,并将所述至少一个插件的插件信息、分别对应的依赖包信息以及分别对应的规则检测结果显示出来,包括:

19、获取当前平台的系统包管理形式;

20、判断所述系统包管理形式对应的可执行文件是否存在;

21、若存在,则获取至少一个插件中任一插件的插件信息,所述任一插件为未经历过当前获取步骤的插件;

22、检查插件安装位置是否有depends.json文件,若有,则执行后续操作,若无,则继续执行上述获取至少一个插件中任一插件的插件信息的步骤;

23、调用依赖包信息读取模块获取所述任一插件对应的依赖包信息;

24、如果存在依赖包信息则将任一插件的插件信息以及对应的依赖包信息存入插件列表的结构体数组中,若不存在,则确定所述任一插件并不依赖依赖包,则不对该插件进行处理;

25、直至获取完至少一个插件中每个插件分别对应的依赖包信息,显示所述插件列表。

26、在另一种可能实现的方式中,所述依赖包信息检查模块根据从依赖包信息读取模块获取到的依赖包信息,检查当前平台的操作系统中已安装的依赖包是否符合依赖包要求,并检查所述多个依赖包分别对应的软件源中的依赖包是否符合依赖包要求,得到依赖包状态信息,并显示所述依赖包状态信息,包括:

27、步骤se,获取插件id;

28、步骤sf,基于所述插件id从依赖包信息读取模块获取依赖包信息,所述依赖包信息包括依赖包的名称以及每个依赖包对应的所需的依赖包版本;

29、步骤sg,遍历依赖包信息,基于规则检测结果对符合depends规则的依赖包信息进行检查;

30、步骤sh,调用底层命令检测依赖包在当前平台是否已经安装,包括如下两种情况:

31、步骤sh1,若已经安装,则获取安装版本,判断所述安装版本是否符合所需的依赖包版本:

32、若符合,则标识所述依赖包符合依赖包要求,得到了当前遍历周期所对应的插件的依赖包状态信息,继续执行步骤sg继续遍历下一个依赖包信息;

33、若不符合,则检查软件源中是否存在满足依赖包要求的依赖包:根据检查结果标识软件源中是否存在满足依赖包要求的依赖包,得到了当前遍历周期所对应的插件的依赖包状态信息,继续执行步骤sg继续遍历下一个依赖包信息;

34、步骤sh2,若未安装,则直接检查软件源中是否存在满足依赖包要求的依赖包:根据检查结果标识软件源中是否存在满足依赖包要求的依赖包,得到了当前遍历周期所对应的插件的依赖包状态信息,继续执行步骤sg继续遍历下一个依赖包信息;

35、步骤si,在遍历结束后,显示依赖包状态信息。

36、在另一种可能实现的方式中,所述依赖包安装模块根据从依赖包信息检查模块获取到的依赖包状态信息,为所述至少一个插件提供依赖包安装支持,包括:

37、获取插件id;

38、将所述插件id传递给插件依赖包信息检查模块,从插件依赖包信息检查模块获取到依赖包状态信息,遍历依赖包状态信息;

39、基于所述依赖包状态信息,将符合依赖包要求的依赖包的名称存放在安装数组中;

40、在遍历完依赖包状态信息之后,检查所述安装数组是否为空;

41、若不为空,则创建安装任务,并创建终端,在所述终端中执行所述安装任务。

42、本技术还提供了用于集成开发环境插件依赖管理的方法,包括:

43、读取插件配置文件depends.json文件内容,结合平台架构以及操作系统信息,获取至少一个插件分别对应的依赖包信息,并检测所述依赖包信息是否符合depends规则,得到规则检测结果,所述依赖包信息用于表征插件对当前平台的适配情况,所述depends规则是定义的一种插件依赖管理规则;

44、获取依赖包信息以及规则检测结果,并将所述至少一个插件的插件信息、分别对应的依赖包信息以及分别对应的规则检测结果显示出来

45、根据获取到的依赖包信息,检查当前平台的操作系统中已安装的依赖包是否符合依赖包要求,若不符合所述依赖包要求,则检查软件源中是否存在符合要求的依赖包,得到依赖包状态信息,并显示所述依赖包状态信息;

46、根据获取到的依赖包状态信息,为所述至少一个插件提供依赖包安装支持,并对应更新依赖包状态信息。

47、综上所述,本技术包括以下有益技术效果:

48、让插件开发者不需要自己添加依赖包检测和安装功能,避免重复造轮子,节省开发时间,能够让插件使用者只需要通过打开插件依赖管理界面,点击界面中的检查安装图标来完成依赖包的检查安装,从而减少手动检测和安装依赖包的工作量,提升用户体验,同时避免从依赖包官网下载的依赖包与系统不兼容。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1