System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 用于集成开发环境插件依赖管理的方法及插件依赖管理器技术_技高网

用于集成开发环境插件依赖管理的方法及插件依赖管理器技术

技术编号:41115094 阅读:4 留言:0更新日期:2024-04-25 14:05
本申请涉及用于集成开发环境插件依赖管理的方法及插件依赖管理器,涉及插件安装的技术领域,该方法包括读取插件配置文件内容,结合平台架构以及操作系统信息,获取至少一个插件分别对应的依赖包信息,检测依赖包信息是否符合depends规则,得到规则检测结果,获取依赖包信息以及规则检测结果,并将至少一个插件的插件信息、依赖包信息以及规则检测结果显示出来,根据依赖包信息,检查当前平台的操作系统中已安装的依赖包是否符合依赖包要求,若不符合依赖包要求,则检查软件源中是否存在符合要求的依赖包,得到依赖包状态信息,并显示依赖包状态信息,根据依赖包状态信息,为至少一个插件提供依赖包安装支持,并对应更新依赖包状态信息。

【技术实现步骤摘要】

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


技术介绍

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、若存在,则获取至本文档来自技高网...

【技术保护点】

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

2.根据权利要求1所述的用于集成开发环境插件依赖管理的插件依赖管理器,其特征在于,所述依赖包信息读取模块读取插件配置文件depends.json文件内容,结合平台架构以及操作系统信息,获取至少一个插件分别对应的依赖包信息,并检测所述依赖包信息是否符合depends规则,得到规则检测结果,包括:

3.根据权利要求2所述的用于集成开发环境插件依赖管理的插件依赖管理器,其特征在于,所述基于所述系统包管理形式、所述架构信息以及所述操作系统信息匹配出当前平台下所述插件的依赖包信息,包括:

4.根据权利要求1所述的用于集成开发环境插件依赖管理的插件依赖管理器,其特征在于,所述插件列表模块从依赖包信息读取模块获取依赖包信息以及规则检测结果,并将所述至少一个插件的插件信息、分别对应的依赖包信息以及分别对应的规则检测结果显示出来,包括:

5.根据权利要求1所述的用于集成开发环境插件依赖管理的插件依赖管理器,其特征在于,所述依赖包信息检查模块根据从依赖包信息读取模块获取到的依赖包信息,检查当前平台的操作系统中已安装的依赖包是否符合依赖包要求,并检查所述多个依赖包分别对应的软件源中的依赖包是否符合依赖包要求,得到依赖包状态信息,并显示所述依赖包状态信息,包括:

6.根据权利要求1所述的用于集成开发环境插件依赖管理的插件依赖管理器,其特征在于,所述依赖包安装模块根据从依赖包信息检查模块获取到的依赖包状态信息,为所述至少一个插件提供依赖包安装支持,包括:

7.用于集成开发环境插件依赖管理的方法,其特征在于,包括:

...

【技术特征摘要】

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

2.根据权利要求1所述的用于集成开发环境插件依赖管理的插件依赖管理器,其特征在于,所述依赖包信息读取模块读取插件配置文件depends.json文件内容,结合平台架构以及操作系统信息,获取至少一个插件分别对应的依赖包信息,并检测所述依赖包信息是否符合depends规则,得到规则检测结果,包括:

3.根据权利要求2所述的用于集成开发环境插件依赖管理的插件依赖管理器,其特征在于,所述基于所述系统包管理形式、所述架构信息以及所述操作系统信息匹配出当前平台下所述插件的依赖包信息,包括:

4.根据权利要求...

【专利技术属性】
技术研发人员:丁丽丽张昀穆瑞超齐璇
申请(专利权)人:麒麟软件有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1