基于文件依赖关系自动调整文件窗口顺序的方法及系统与流程

    专利2022-07-08  86


    本发明涉及计算机技术领域。更具体的说,本发明涉及一种基于文件依赖关系自动调整文件窗口顺序的方法及系统。



    背景技术:

    随着react、vue等前端框架的盛行,前端越来越注重模块化的概念,一个项目通常由很多个不同的组件模块组成,项目越大,组件模块越多,模块文件之间的依赖也越来越多。程序员在编码的过程中,经常会遇到这种情况,即:打开一个文件,该文件内部引入了n个子模块文件,该文件也会作为其他文件的子模块文件被引用。此时编辑器里打开了一系列的文件窗口,这些文件杂乱无序地展示在窗口里。在开发的过程中,频繁来回切换找到一些文件,给技术人员带来一种不好的体验。

    vscode,即visualstudiocode微软在2015年发布的一个运行于多平台的,针对于编写现代web和云应用的跨平台源代码编辑器。vscode作为一个web开发人员的代码编辑神器,占据了很大的市场使用份额,运行于macosx、windows和linux之上的,并且支持插件扩展。

    vscode插件的技术实现依赖于以下环境和工具:node环境;npm;yeoman;generator-code代码生成器;vsce。node为基于chromejavascript运行时建立的一个平台,npm为随同node一起安装的包管理工具,允许用户从npm下载他人编写的第三方包到项目中使用,yeoman我们创建项目,提供更好的工具来使项目更多样化,vsce是官方管理插件的工具,所有插件都通过这个工具来发布。

    目前vscode编辑器里没有一种插件,能是实现让文件按照依赖关系从左往右排序展示。只能靠开发人员人为地拖动,费事费力,体验较差。



    技术实现要素:

    本申请实施例提供了一种基于文件依赖关系自动调整文件窗口顺序的方法,以至少解决相关技术中主观因素影响的问题。

    本发明提供了一种基于文件依赖关系自动调整文件窗口顺序的方法,基于vscode代码编辑器,所述方法包括以下步骤:

    插件生成步骤:生成扩展插件;

    指令增加步骤:基于所述扩展插件,增加文件排序功能指令;

    关系建立步骤:建立并缓存文件之间的依赖关系;

    排序步骤:依据所述依赖关系,触发所述文件排序功能指令对文件窗口进行自动排序。

    作为本发明的进一步改进,所述插件生成步骤具体包括以下步骤:

    脚手架安装步骤:安装vscode插件脚手架;

    代码生成步骤:安装完成后,输入命令生成vscode生成器代码;

    调试运行步骤:完成后打开vscode编辑器,调试运行后生成所述扩展插件。

    作为本发明的进一步改进,所述指令增加步骤具体包括以下步骤:

    配置步骤:在package.json中添加配置;

    注册步骤:添加完配置后,在extension.js中注册排序事件。

    作为本发明的进一步改进,所述排序步骤具体包括以下步骤:

    文件保存步骤:将窗口文件保存到队列中;

    代码执行步骤:依据所述依赖关系执行分类代码对所述文件窗口进行自动排序。

    作为本发明的进一步改进,所述关系建立步骤中使用map实现文件缓存。

    作为本发明的进一步改进,当文件有依赖变更时,重新建立并缓存所述依赖关系。

    基于相同发明思想,本发明还基于任一项发明创造所揭示的基于文件依赖关系自动调整文件窗口顺序的方法,揭示了一种基于文件依赖关系自动调整文件窗口顺序的系统,

    所述基于文件依赖关系自动调整文件窗口顺序的系统,基于vscode代码编辑器,包括:

    插件生成模块,生成扩展插件;

    指令增加模块,基于所述扩展插件,增加文件排序功能指令;

    关系建立模块,建立并缓存文件之间的依赖关系;

    排序模块,依据所述依赖关系,触发所述文件排序功能指令对文件窗口进行自动排序。

    作为本发明的进一步改进,所述插件生成模块具体包括:

    脚手架安装单元,安装vscode插件脚手架;

    代码生成单元,安装完成后,输入命令生成基本代码;

    调试运行单元,完成后打开vscode编辑器,调试运行后生成所述扩展插件。

    作为本发明的进一步改进,所述指令增加模块具体包括:

    配置单元,在package.json中添加配置;

    注册单元,添加完配置后,在extension.js中注册排序事件。

    作为本发明的进一步改进,所述排序模块具体包括:

    文件保存单元,将窗口文件保存到队列中;

    代码执行单元,依据所述依赖关系执行分类代码对所述文件窗口进行自动排序。

    与现有技术相比,本发明的有益效果如下:

    1、提出了一种基于文件依赖关系自动调整文件窗口顺序的方法,基于vscode代码编辑器,可实现让文件按照依赖关系从左往右排序展示的功能;

    2、开发一个vscode插件,终端输入插件对应的指令,可以根据配置的指令一键排序,减少开发中的无效时间,提升工作效率;

    3、有序展示文件窗口,从而提升开发体验和编码体验。

    本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。

    附图说明

    此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

    图1是本发明实施例提供的一种基于文件依赖关系自动调整文件窗口顺序的方法整体流程图;

    图2是本实施例所揭示的排序实现核心流程图;

    图3是图1所揭示的步骤s1整体流程图;

    图4是本实施例所揭示的vscode生成器代码界面图;

    图5是本实施例提供的‘helloworld’提示弹窗界面图;

    图6是图1所揭示的步骤s2整体流程图;

    图7是图1所揭示的步骤s4整体流程图;

    图8是本实施例提供的一种基于文件依赖关系自动调整文件窗口顺序的系统结构框架图;

    图9是根据本发明实施例的计算机设备的框架图。

    以上图中:

    100、插件生成模块;200、指令增加模块;300、关系建立模块;400、排序模块;101、脚手架安装单元;102、代码生成单元;103、调试运行单元;201、配置单元;202、注册单元;401、文件保存单元;402、代码执行单元;80、总线;81、处理器;82、存储器;83、通信接口。

    具体实施方式

    为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

    显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。

    在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。

    除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不待表针对对象的特定排序。

    下面结合附图所示的各实施方式对本发明进行详细说明,但应当说明的是,这些实施方式并非对本发明的限制,本领域普通技术人员根据这些实施方式所作的功能、方法、或者结构上的等效变换或替待,均属于本发明的保护范围之内。

    在详细阐述本发明各个实施例之前,对本发明的核心发明思想予以概述,并通过下述若干实施例予以详细阐述。

    本发明可vscode代码编辑器实现文件窗口自动排序功能,使文件窗口按照文件依赖关系自动排序,从而提升编码体验和用户体验。

    实施例一:

    参照图1至图7所示,本实例揭示了一种基于文件依赖关系自动调整文件窗口顺序的方法以下简称“方法”)的具体实施方式。

    具体而言,参照图1和图2所示,本实施例所揭示的方法主要包括以下步骤:

    步骤s1、生成扩展插件。

    具体而言,在其中一些实施例中,参照图3所示步骤s1具体包括以下步骤:

    s11、安装vscode插件脚手架;

    s12、安装完成后,输入命令生成vscode生成器代码;

    s13、完成后打开vscode编辑器,调试运行后生成所述扩展插件。

    具体而言,在其中一些实施例中,所述方法基于vscode代码编辑器实现,首先开发插件,在开发插件时需要生产插件代码的东西,也就是yeoman和vscodeextensiongenerator。yeoman即为用于现代web应用程序的web脚手架工具。

    具体而言,打开cmd执行命令npminstall-gyogenerator-code来安装yeoman,在完成安装后,可以输入yocode命令来生成vscode生成器代码,如图4所示为vscode生成器代码界面图,完成后打开vscode编辑器,按下‘f5’键进行调试,项目运行起来后,会调用一个新的vscode窗口在标题栏的地方显示一个“扩展开发主机”的标题,这个窗口即支持运行的插件项目的命令,由此生成了插件基础工程。例如:在命令面板(‘ctrl shift p’)中输入‘helloworld’命令,会显示‘helloworld’提示弹窗,如图5所示。

    然后执行步骤s2、基于所述扩展插件,增加文件排序功能指令。

    具体而言,在其中一些实施例中,参照图6所示步骤s2具体包括以下步骤:

    s21、在package.json中添加配置;

    s22、添加完配置后,在extension.js中注册排序事件。

    具体而言,在其中一些实施例中,扩展插件正常运行后,就可以书写代码以实现不同的功能,新增事件sort指令,在package.json中添加两个配置,添加完配置后,在extension.js中注册sort事件(增加文件排序功能指令),添加配置和注册排序命令的代码为:

    然后执行步骤s3、建立并缓存文件之间的依赖关系。

    具体而言,项目初始化,建立文件与文件之间的结构关系,并用缓存存储,并且每当文件有依赖变更的时候,重新建立该文件缓存依赖。

    具体而言,在其中一些实施例中,使用map实现文件缓存,构建filemapcache文件缓存map,伪代码为:

    然后执行步骤s4、依据所述依赖关系,触发所述文件排序功能指令对文件窗口进行自动排序。

    具体而言,在其中一些实施例中,参照图7所示步骤s4具体包括以下步骤:

    s41、将窗口文件保存到队列中;

    s42、依据所述依赖关系执行分类代码对所述文件窗口进行自动排序。

    具体而言,在其中一些实施例中,当用户输入相应指令触发的时候,将窗口文件存入到opencurrentfiles队列中;执行sortopencurrentfiles方法,得到新的窗口文件的排列顺序,即opennextfiles。

    其中,sortopencurrentfile实现伪代码为:

    具体而言,在其中一些实施例中,在执行完自动排序后还包括将插件打包发布。打开cmd执行命令npminstall-gvsce安装完成后可以用命令窗口到项目目录,然后执行命vscepublish来发布到marketplace.visualstudio.com上面去,发布成功后可以在vscode里面用extinstall来安装这个插件。

    通过本申请实施例所揭示的一种基于文件依赖关系自动调整文件窗口顺序的方法,基于vscode代码编辑器,可实现让文件按照依赖关系从左往右排序展示的功能;开发一个vscode插件,终端输入插件对应的指令,可以根据配置的指令一键排序,减少开发中的无效时间,提升工作效率;有序展示文件窗口,从而提升开发体验和编码体验。

    本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。

    实施例二:

    结合实施例一所揭示的一种基于文件依赖关系自动调整文件窗口顺序的方法,本实施例揭示了一种基于文件依赖关系自动调整文件窗口顺序的系统(以下简称“系统”)的具体实施示例。

    参照图8所示,所述系统包括:

    插件生成模块100,生成扩展插件;

    指令增加模块200,基于所述扩展插件,增加文件排序功能指令;

    关系建立模块300,建立并缓存文件之间的依赖关系;

    排序模块400,依据所述依赖关系,触发所述文件排序功能指令对文件窗口进行自动排序。

    具体而言,在其中一些实施例中,所述插件生成模块100具体包括:

    脚手架安装单元101,安装vscode插件脚手架;

    代码生成单元102,安装完成后,输入命令生成基本代码;

    调试运行单元103,完成后打开vscode编辑器,调试运行后生成所述扩展插件。

    具体而言,在其中一些实施例中,所述指令增加模块200具体包括:

    配置单元201,在package.json中添加配置;

    注册单元202,添加完配置后,在extension.js中注册排序事件。

    具体而言,在其中一些实施例中,所述排序模块400具体包括:

    文件保存单元401,将窗口文件保存到队列中;

    代码执行单元402,依据所述依赖关系执行分类代码对所述文件窗口进行自动排序。

    本实施例所揭示的一种基于文件依赖关系自动调整文件窗口顺序的系统与实施例一所揭示的一种基于文件依赖关系自动调整文件窗口顺序的方法中其余相同部分的技术方案,请参考实施例一所述,在此不再赘述。

    实施例三:

    结合图9所示,本实施例揭示了一种计算机设备的一种具体实施方式。计算机设备可以包括处理器81以及存储有计算机程序指令的存储器82。

    具体地,上述处理器81可以包括中央处理器(cpu),或者特定集成电路(applicationspecificintegratedcircuit,简称为asic),或者可以被配置成实施本申请实施例的一个或多个集成电路。

    其中,存储器82可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器82可包括硬盘驱动器(harddiskdrive,简称为hdd)、软盘驱动器、固态驱动器(solidstatedrive,简称为ssd)、闪存、光盘、磁光盘、磁带或通用串行总线(universalserialbus,简称为usb)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器82可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器82可在数据处理装置的内部或外部。在特定实施例中,存储器82是非易失性(non-volatile)存储器。在特定实施例中,存储器82包括只读存储器(read-onlymemory,简称为rom)和随机存取存储器(randomaccessmemory,简称为ram)。在合适的情况下,该rom可以是掩模编程的rom、可编程rom(programmableread-onlymemory,简称为prom)、可擦除prom(erasableprogrammableread-onlymemory,简称为eprom)、电可擦除prom(electricallyerasableprogrammableread-onlymemory,简称为eeprom)、电可改写rom(electricallyalterableread-onlymemory,简称为earom)或闪存(flash)或者两个或更多个以上这些的组合。在合适的情况下,该ram可以是静态随机存取存储器(staticrandom-accessmemory,简称为sram)或动态随机存取存储器(dynamicrandomaccessmemory,简称为dram),其中,dram可以是快速页模式动态随机存取存储器(fastpagemodedynamicrandomaccessmemory,简称为fpmdram)、扩展数据输出动态随机存取存储器(extendeddateoutdynamicrandomaccessmemory,简称为edodram)、同步动态随机存取内存(synchronousdynamicrandom-accessmemory,简称sdram)等。

    存储器82可以用来存储或者缓存需要处理和/或通信使用的各种数据文件,以及处理器81所执行的可能的计算机程序指令。

    处理器81通过读取并执行存储器82中存储的计算机程序指令,以实现上述实施例中的任意一种基于文件依赖关系自动调整文件窗口顺序的方法。

    在其中一些实施例中,计算机设备还可包括通信接口83和总线80。其中,如图9所示,处理器81、存储器82、通信接口83通过总线80连接并完成相互间的通信。

    通信接口83用于实现本申请实施例中各模块、装置、单元和/或设备之间的通信。通信端口83还可以实现与其他部件例如:外接设备、图像/数据采集设备、数据库、外部存储以及图像/数据处理工作站等之间进行数据通信。

    总线80包括硬件、软件或两者,将计算机设备的部件彼此耦接在一起。总线80包括但不限于以下至少之一:数据总线(databus)、地址总线(addressbus)、控制总线(controlbus)、扩展总线(expansionbus)、局部总线(localbus)。举例来说而非限制,总线80可包括图形加速接口(acceleratedgraphicsport,简称为agp)或其他图形总线、增强工业标准架构(extendedindustrystandardarchitecture,简称为eisa)总线、前端总线(frontsidebus,简称为fsb)、超传输(hypertransport,简称为ht)互连、工业标准架构(industrystandardarchitecture,简称为isa)总线、无线带宽(infiniband)互连、低引脚数(lowpincount,简称为lpc)总线、存储器总线、微信道架构(microchannelarchitecture,简称为mca)总线、外围组件互连(peripheralcomponentinterconnect,简称为pci)总线、pci-express(pci-x)总线、串行高级技术附件(serialadvancedtechnologyattachment,简称为sata)总线、视频电子标准协会局部(videoelectronicsstandardsassociationlocalbus,简称为vlb)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线80可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。

    该计算机设备可以基于vscode实现文件窗口自动排序,从而实现结合图1描述的方法。

    另外,结合上述实施例中基于文件依赖关系自动调整文件窗口顺序的方法,本申请实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种基于文件依赖关系自动调整文件窗口顺序的方法。

    以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

    综上所述,基于本发明的有益效果在于,提出了一种基于文件依赖关系自动调整文件窗口顺序的方法,基于vscode代码编辑器,可实现让文件按照依赖关系从左往右排序展示的功能;开发一个vscode插件,终端输入插件对应的指令,可以根据配置的指令一键排序,减少开发中的无效时间,提升工作效率;有序展示文件窗口,从而提升开发体验和编码体验。

    以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。


    技术特征:

    1.一种基于文件依赖关系自动调整文件窗口顺序的方法,其特征在于,基于vscode代码编辑器,包括如下步骤:

    插件生成步骤:生成扩展插件;

    指令增加步骤:基于所述扩展插件,增加文件排序功能指令;

    关系建立步骤:建立并缓存文件之间的依赖关系;

    排序步骤:依据所述依赖关系,触发所述文件排序功能指令对文件窗口进行自动排序。

    2.如权利要求1所述的基于文件依赖关系自动调整文件窗口顺序的方法,其特征在于,所述插件生成步骤具体包括以下步骤:

    脚手架安装步骤:安装vscode插件脚手架;

    代码生成步骤:安装完成后,输入命令生成vscode生成器代码;

    调试运行步骤:完成后打开vscode编辑器,调试运行后生成所述扩展插件。

    3.如权利要求1所述的基于文件依赖关系自动调整文件窗口顺序的方法,其特征在于,所述指令增加步骤具体包括以下步骤:

    配置步骤:在package.json中添加配置;

    注册步骤:添加完配置后,在extension.js中注册排序事件。

    4.如权利要求1所述的基于文件依赖关系自动调整文件窗口顺序的方法,其特征在于,所述排序步骤具体包括以下步骤:

    文件保存步骤:将窗口文件保存到队列中;

    代码执行步骤:依据所述依赖关系执行分类代码对所述文件窗口进行自动排序。

    5.如权利要求1所述的基于文件依赖关系自动调整文件窗口顺序的方法,其特征在于,所述关系建立步骤中使用map实现文件缓存。

    6.如权利要求5所述的基于文件依赖关系自动调整文件窗口顺序的方法,其特征在于,当文件有依赖变更时,重新建立并缓存所述依赖关系。

    7.一种基于文件依赖关系自动调整文件窗口顺序的系统,其特征在于,基于vscode代码编辑器,包括:

    插件生成模块,生成扩展插件;

    指令增加模块,基于所述扩展插件,增加文件排序功能指令;

    关系建立模块,建立并缓存文件之间的依赖关系;

    排序模块,依据所述依赖关系,触发所述文件排序功能指令对文件窗口进行自动排序。

    8.如权利要求7所述的基于文件依赖关系自动调整文件窗口顺序的系统,其特征在于,所述插件生成模块具体包括:

    脚手架安装单元,安装vscode插件脚手架;

    代码生成单元,安装完成后,输入命令生成基本代码;

    调试运行单元,完成后打开vscode编辑器,调试运行后生成所述扩展插件。

    9.如权利要求7所述的基于文件依赖关系自动调整文件窗口顺序的系统,其特征在于,所述指令增加模块具体包括:

    配置单元,在package.json中添加配置;

    注册单元,添加完配置后,在extension.js中注册排序事件。

    10.如权利要求7所述的基于文件依赖关系自动调整文件窗口顺序的系统,其特征在于,所述排序模块具体包括:

    文件保存单元,将窗口文件保存到队列中;

    代码执行单元,依据所述依赖关系执行分类代码对所述文件窗口进行自动排序。

    技术总结
    本申请公开了一种基于文件依赖关系自动调整文件窗口顺序的方法及系统,基于VS code代码编辑器,所述方法包括:生成扩展插件;基于所述扩展插件,增加文件排序功能指令;建立并缓存文件之间的依赖关系;依据所述依赖关系,触发所述文件排序功能指令对文件窗口进行自动排序。通过本申请,可实现让文件按照依赖关系从左往右排序展示的功能,提升编码体验。

    技术研发人员:余玉婷
    受保护的技术使用者:恩亿科(北京)数据科技有限公司
    技术研发日:2020.12.15
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-23464.html

    最新回复(0)