发明内容
本发明的主要目的在于提供一种代码片段的添加方法和装置,以解决现有技术为代码片段添加标记类文件效率低的问题。
为了实现上述目的,根据本发明的一个方面,提供了一种代码片段的添加方法。
该代码片段的添加方法包括:确定多个待添加代码文件;将多个待添加代码文件添加到目标文件夹中;遍历目标文件夹中的待添加代码文件,将多个待添加代码文件依次转化为标记类代码文件,得到多个标记类代码文件;在待应用类文件中应用多个标记类代码文件中的一个或多个标记类代码文件,其中,待应用类文件为标记类代码文件应用的文件;根据应用的标记类代码文件将多个待添加代码文件中的一个或多个待添加代码文件添加到待应用类文件中。
进一步地,遍历目标文件夹中的待添加代码文件,将多个待添加代码文件依次转化为标记类代码文件,得到多个标记类代码文件包括:获取目标文件夹中的多个待添加代码文件;分别为多个待添加代码文件生成以预设字符串开头的多个标记类代码文件;将以预设字符串开头的多个标记类代码文件添加到目标文件夹中。
进一步地,待添加代码文件中包括参数列表和代码段,其中,参数列表是用户输入参数的列表,参数列表中的参数可以替换代码段中占位符之间的字符串,其中,分别为多个待添加代码文件生成以预设字符串开头的多个标记类代码文件包括:分别获取以预设字符串开头的多个标记类代码文件中标记类代码文件的属性值,其中,属性值为待添加代码文件的参数列表中的参数;分别获取以预设字符串开头的多个标记类代码文件中标记类代码文件的代码段,其中,分别获取以预设字符串开头的多个标记类代码文件中标记类代码文件包括:获取标记类代码文件中的代码段获取函数;通过调用代码段获取函数从待添加代码文件中获取待添加代码文件的代码段。
进一步地,根据应用的标记类代码文件将多个待添加代码文件中的一个或多个待添加代码文件添加到待应用类文件中包括:获取应用标记类文件的待应用类文件;从待应用类文件中筛选出以预设字符串开头的多个标记类代码文件;获取以预设字符串开头的多个标记类代码文件中标记类代码文件的属性值;获取以预设字符串开头的多个标记类代码文件中标记类代码文件的代码段;分别将以预设字符串开头的多个标记类代码文件中标记类代码文件的代码段中占位符之间的字符串用以预设字符串开头的多个标记类代码文件中标记类代码文件的属性值替换。
进一步地,获取应用标记类文件的待应用类文件包括:获取目标文件夹中的所有子文件夹;遍历目标文件夹中的所有子文件夹,分别获取每个子文件夹中的代码文件;将代码文件添加到预设集合中;从预设集合中筛选出应用以预设字符串开头的多个标记类代码文件中标记类代码文件的待应用类文件。
为了实现上述目的,根据本发明的另一方面,提供了一种代码片段的添加装置。
该代码片段的添加装置包括:确定模块,用于确定多个待添加代码文件;第一添加模块,用于将多个待添加代码文件添加到目标文件夹中;转化模块,用于遍历目标文件夹中的待添加代码文件,将多个待添加代码文件依次转化为标记类代码文件,得到多个标记类代码文件;应用模块,用于在待应用类文件中应用多个标记类代码文件中的一个或多个标记类代码文件,其中,待应用类文件为标记类代码文件应用的文件;第二添加模块,用于根据应用的标记类代码文件将多个待添加代码文件中的一个或多个待添加代码文件添加到待应用类文件中。
进一步地,转化模块包括:获取模块,用于获取目标文件夹中的多个待添加代码文件;生成模块,用于分别为多个待添加代码文件生成以预设字符串开头的多个标记类代码文件;第一添加子模块,用于将以预设字符串开头的多个标记类代码文件添加到目标文件夹中。
进一步地,待添加代码文件中包括参数列表和代码段,其中,参数列表是用户输入参数的列表,参数列表中的参数可以替换代码段中占位符之间的字符串,其中,生成模块包括:第一获取子模块,用于分别获取以预设字符串开头的多个标记类代码文件中标记类代码文件的属性值,其中,属性值为待添加代码文件的参数列表中的参数;第二获取子模块,用于分别获取以预设字符串开头的多个标记类代码文件中标记类代码文件的代码段,其中,分第二获取子模块包括:第三获取子模块,用于获取标记类代码文件中的代码段获取函数;第二添加子模块,用于通过调用代码段获取函数从待添加代码文件中获取待添加代码文件的代码段。
进一步地,第二添加模块包括:第四获取子模块,用于获取应用标记类文件的待应用类文件;第一筛选模块,用于从待应用类文件中筛选出以预设字符串开头的多个标记类代码文件;第五获取子模块,用于获取以预设字符串开头的多个标记类代码文件中标记类代码文件的属性值;第六获取子模块,用于获取以预设字符串开头的多个标记类代码文件中标记类代码文件的代码段;替换模块,用于分别将以预设字符串开头的多个标记类代码文件中标记类代码文件的代码段中占位符之间的字符串用以预设字符串开头的多个标记类代码文件中标记类代码文件的属性值替换。
进一步地,第四获取子模块包括:第七获取子模块,用于获取目标文件夹中的所有子文件夹;第八获取子模块,用于遍历目标文件夹中的所有子文件夹,分别获取每个子文件夹中的代码文件;第三添加子模块,用于将代码文件添加到预设集合中;第二筛选模块,用于从预设集合中筛选出应用以预设字符串开头的多个标记类代码文件中标记类代码文件的待应用类文件。
通过本发明,采用确定多个待添加代码文件;将多个待添加代码文件添加到目标文件夹中;遍历目标文件夹中的待添加代码文件,将多个待添加代码文件依次转化为标记类代码文件,得到多个标记类代码文件;在待应用类文件中应用多个标记类代码文件中的一个或多个标记类代码文件,其中,待应用类文件为标记类代码文件应用的文件;根据应用的标记类代码文件将多个待添加代码文件中的一个或多个待添加代码文件添加到待应用类文件中,解决了现有技术为代码片段添加标记类文件效率低的问题。该发明利用代码片段CodeSnippet解决了代码重用的问题,同时,该发明为每个代码文件生成标记类文件,通过应用该标记类文件,根据标记类文件实现将代码片段自动添加到待应用类文件,而且,该发明通过对标记类文件的属性进行修改可以有效地解决了代码片段CodeSnippet修改繁琐的问题,进而达到了提高编程效率的效果。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明旨在提供一种代码片段的添加方法和装置。
图1是根据本发明实施例的代码片段的添加方法的流程图。如图1所示,该代码片段的添加方法包括如下的步骤S101至步骤S105:
步骤S101,确定多个待添加代码文件。
该实施例中的待添加代码文件优选为代码片段CodeSnippet,利用代码片段CodeSnippet可以有效地解决代码重用的问题。待添加代码文件可以是一个,也可以是多个。待添加代码文件实质是可扩展标记语言(eXtensible Markup Language,简称为XML)文件,待添加代码文件中包括参数列表和代码段,其中,参数列表是用户输入参数的列表,参数需要用户手动输入,如下代码所示:
参数列表中的参数可以替换代码段中占位符之间的字符串,其中,$$之间的内容是占位符,如下所示:
步骤S102,将多个待添加代码文件添加到目标文件夹中。
在确定多个待添加代码文件之后,将一个或者多个待添加代码文件添加到目标文件中,该实施例的代码片段的添加方法中的目标文件优选为软件编程过程中的工程文件。到确定的待添加代码文件只有一个时,只需要将一个待添加代码文件添加到目标文件,即工程文件中,当确定的待添加代码文件有多个时,需要分别将确定的多个待添加代码文件添加到目标文件,即工程文件中。
步骤S103,遍历目标文件夹中的待添加代码文件,将多个待添加代码文件依次转化为标记类代码文件,得到多个标记类代码文件。
优选地,该实施例的代码片段的添加方法中遍历目标文件夹中的待添加代码文件,将多个待添加代码文件依次转化为标记类代码文件,得到多个标记类代码文件包括:获取目标文件夹中的多个待添加代码文件;分别为多个待添加代码文件生成以预设字符串开头的多个标记类代码文件;将以预设字符串开头的多个标记类代码文件添加到目标文件夹中。
具体地,分别为多个待添加代码文件生成以预设字符串开头的多个标记类代码文件可以包括:分别获取以预设字符串开头的多个标记类代码文件中标记类代码文件的属性值,其中,属性值为待添加代码文件的参数列表中的参数;分别获取以预设字符串开头的多个标记类代码文件中标记类代码文件的代码段,其中,分别获取以预设字符串开头的多个标记类代码文件中标记类代码文件包括:获取标记类代码文件中的代码段获取函数;通过调用代码段获取函数从待添加代码文件中获取待添加代码文件的代码段。
该实施例的代码片段的添加方法在目标文件中添加扩展样式转换表语言(Extenxible Stylesheet Language Transformations,简称为XSLT),其中XSLT用于将XML文件转化为任意形式的文件。该实施例中应用XSLT主要是将代码片段CodeSnippet转化为标记类文件Attribute。在添加XSLT文件之后,应用T4模板遍历目标文件夹中的待添加代码文件,即代码片段CodeSnippet,为每个代码文件应用XSLT生成标记类文件Attribute。具体地,应用T4模板遍历目标文件夹中的待添加代码文件,为每个代码文件应用XSLT生成标记类文件Attribute可以包括:获取T4模板所在的工程,即T4模板所在模板转换引擎的宿主。由于T4模板不能独立运行,需要寄宿在某个进程中,其中,T4模板寄宿的进程为宿主,宿主优选为Visual Studio,也可以是开发的可执行程序。在获取T4模板所在的宿主之后,利用宿主获取数据终端设备(DateTerminal Equipment,简称为DTE),即获取Visual Studio的对象,使用该Visual Studio的对象可以访问宿主的其他功能。DTE提供了解决方案属性Solution,使用该解决方案属性Solution中的查找工程文件FindProjectItem方法即可以获取T4模板所在的工程;获取工程下所有的代码文件。遍历工程下的所有项目,递归遍历每个项目的子项目,将所有项目添加到集合中,从集合中筛选出以CodeSnippet为后缀的文件,即代码文件;为每个代码文件生成以预设字符串开头的标记类文件。优选地,预设字符串为Snippt,加载XSLT文件和代码文件,利用XSLT执行代码文件的转化,并将转化后的内容保存在内存中,待多有的代码文件执行完转化后,将内存中的内容输出到标记类文件中,实现了代码文件添加到工程文件中,并将代码文件转化为标记类文件,保存在工程文件中。其中,代码文件CodeSnippt中所有的参数由标记类文件Attribute中的属性表示,同时标记类文件Attribute中包含代码段获取函数GetSnippet,利用该方法可以获取代码文件CodeSnippt中包含的代码段。
步骤S104,在待应用类文件中应用多个标记类代码文件中的一个或多个标记类代码文件。
该实施例的代码片段的添加方法中的待应用类文件为标记类代码文件应用的文件。在待应用类文件中应用多个标记类代码文件中的一个或多个标记类代码文件,目的是为了在待应用类文件中输入一个或者多个待添加代码文件,应用多个标记类代码文件中的一个或多个标记类代码文件既解决了代码重用的问题,同时有解决了代码重用带来的修改不方便的问题。
步骤S105,根据应用的标记类代码文件将多个待添加代码文件中的一个或多个待添加代码文件添加到待应用类文件中。
优选地,该实施例的代码片段的添加方法中根据应用的标记类代码文件将多个待添加代码文件中的一个或多个待添加代码文件添加到待应用类文件中可以包括:获取应用标记类文件的待应用类文件;从待应用类文件中筛选出以预设字符串开头的多个标记类代码文件;获取以预设字符串开头的多个标记类代码文件中标记类代码文件的属性值;获取以预设字符串开头的多个标记类代码文件中标记类代码文件的代码段;分别将以预设字符串开头的多个标记类代码文件中标记类代码文件的代码段中占位符之间的字符串用以预设字符串开头的多个标记类代码文件中标记类代码文件的属性值替换。
获取应用标记类文件的待应用类文件包括:获取目标文件夹中的所有子文件夹;遍历目标文件夹中的所有子文件夹,分别获取每个子文件夹中的代码文件;将代码文件添加到预设集合中;从预设集合中筛选出应用以预设字符串开头的多个标记类代码文件中标记类代码文件的待应用类文件。
具体地,获取应用标记类文件的待应用类文件包括:获取目标文件夹中的所有子文件夹;遍历目标文件夹中的所有子文件夹,分别获取每个子文件夹中的代码文件;将代码文件添加到预设集合中;从预设集合中筛选出应用以预设字符串开头的多个标记类代码文件中标记类代码文件的待应用类文件。
在待应用类文件中可以应用一个标记类文件,也可以应用多个标记类文件。使用T4模板遍历工程文件中所有应用上述标记类文件的类文件,循环遍历工程文件下的所有工程文件,对于每个工程文件,循环遍历当前工程文件的代码文件。其中,每个工程文件对应一个源文件,每个源文件可以包含多个代码文件,比如一个源文件中可以同时定义两个类,即包含两个类文件。递归遍历每个代码文件,将所有代码文件都添加到集合中,从集合中筛选出所有应用标记类文件的以Snippt开头的类文件。根据标记类文件Attribute为待应用类文件生成代码具体包括:获取这个待应用类文件应用的所有标记类文件,筛选出以Snippt开头的标记类文件,获取每个标记类文件的属性值,利用标记类文件中定义的获取代码段函数GetSnippet获取代码文件中的代码段,将代码段中的占位符之间的内容用标记类文件Attribute的各个属性值替换。该实施例的代码片段的添加方法可以自动地为代码文件生成标记类文件,不需要手动添加,提高了编码效率,降低了手动添加造成的失误率。
该实施例的代码片段的添加方法采用确定多个待添加代码文件;将多个待添加代码文件添加到目标文件夹中;遍历目标文件夹中的待添加代码文件,将多个待添加代码文件依次转化为标记类代码文件,得到多个标记类代码文件;在待应用类文件中应用多个标记类代码文件中的一个或多个标记类代码文件,其中,待应用类文件为标记类代码文件应用的文件;根据应用的标记类代码文件将多个待添加代码文件中的一个或多个待添加代码文件添加到待应用类文件中,解决了现有技术为代码片段添加标记类文件效率低的问题,进而达到了提高编程效率的效果。
从以上的描述中,可以看出,本发明实施例的代码片段的添加方法通过采用将每个待添加代码文件分别转化为标记类代码文件,在待应用类文件中应用标记类代码文件中,根据应用的标记类代码文件将待添加代码文件添加到待应用类文件中,解决了现有技术为代码片段添加标记类文件效率低的问题。该发明的实施例利用代码片段CodeSnippet有效地解决了代码重用的问题,同时,为每个代码文件生成标记类文件,通过对标记类文件的属性进行修改可以有效地解决了代码片段CodeSnippet修改繁琐的问题,进而达到了提高编程效率的效果。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本发明实施例还提供了一种代码片段的添加装置。需要说明的是,该代码片段的添加装置可以用于执行本发明实施例的代码片段的添加方法。
图2是根据本发明实施例的代码片段的添加装置的示意图。如图2所示,该代码片段的添加装置包括:确定模块10,第一添加模块20,转化模块30,应用模块40和第二添加模块50。
确定模块10,用于确定多个待添加代码文件,其中,待添加代码文件中包括参数列表和代码段,其中,参数列表是用户输入参数的列表,参数列表中的参数可以替换代码段中占位符之间的字符串。
第一添加模块20,用于将多个待添加代码文件添加到目标文件夹中。
转化模块30,用于遍历目标文件夹中的待添加代码文件,将多个待添加代码文件依次转化为标记类代码文件,得到多个标记类代码文件。
优选地,转化模块30包括:获取模块,用于获取目标文件夹中的多个待添加代码文件;生成模块,用于分别为多个待添加代码文件生成以预设字符串开头的多个标记类代码文件;第一添加子模块,用于将以预设字符串开头的多个标记类代码文件添加到目标文件夹中。
具体地,生成模块包括:第一获取子模块,用于分别获取以预设字符串开头的多个标记类代码文件中标记类代码文件的属性值,其中,属性值为待添加代码文件的参数列表中的参数;第二获取子模块,用于分别获取以预设字符串开头的多个标记类代码文件中标记类代码文件的代码段,其中,分第二获取子模块包括:第三获取子模块,用于获取标记类代码文件中的代码段获取函数;第二添加子模块,用于通过调用代码段获取函数从待添加代码文件中获取待添加代码文件的代码段。
应用模块40,用于在待应用类文件中应用多个标记类代码文件中的一个或多个标记类代码文件,其中,待应用类文件为标记类代码文件应用的文件。
第二添加模块50,用于根据应用的标记类代码文件将多个待添加代码文件中的一个或多个待添加代码文件添加到待应用类文件中。
优选地,第二添加模块50包括:第四获取子模块,用于获取应用标记类文件的待应用类文件;第一筛选模块,用于从待应用类文件中筛选出以预设字符串开头的多个标记类代码文件;第五获取子模块,用于获取以预设字符串开头的多个标记类代码文件中标记类代码文件的属性值;第六获取子模块,用于获取以预设字符串开头的多个标记类代码文件中标记类代码文件的代码段;替换模块,用于分别将以预设字符串开头的多个标记类代码文件中标记类代码文件的代码段中占位符之间的字符串用以预设字符串开头的多个标记类代码文件中标记类代码文件的属性值替换。
具体地,第四获取子模块包括:第七获取子模块,用于获取目标文件夹中的所有子文件夹;第八获取子模块,用于遍历目标文件夹中的所有子文件夹,分别获取每个子文件夹中的代码文件;第三添加子模块,用于将代码文件添加到预设集合中;第二筛选模块,用于从预设集合中筛选出应用以预设字符串开头的多个标记类代码文件中标记类代码文件的待应用类文件。
该实施例的代码片段的添加装置包括确定模块10,第一添加模块20,转化模块30,应用模块40和第二添加模块50。通过该实施例的代码片段的添加装置解决了现有技术为代码片段添加标记类文件效率低的问题。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。