首页> 中国专利> 一种类文件导入代码管理系统及方法

一种类文件导入代码管理系统及方法

摘要

本发明公开了一种Xcode中类文件导入代码管理系统及方法。该系统包括:输入模块,用于接收用户输入的特殊类文件名和真实引用类文件名的映射关系;读取模块,用于从代码文件中获取全部代码,并读取所有类文件导入代码和注释相关代码;匹配模块,用于根据用户输入的映射关系和注释相关代码确定实际编写代码中已使用的类文件导入代码和未使用的类文件导入代码,并且删除未使用的类文件导入代码;排序模块,用于对所有已使用的类文件导入代码进行排序。本发明实现了对类文件导入代码的排序、剔除多余代码等功能,可以提升开发效率。

著录项

  • 公开/公告号CN112988137A

    专利类型发明专利

  • 公开/公告日2021-06-18

    原文格式PDF

  • 申请/专利权人 武汉虹信技术服务有限责任公司;

    申请/专利号CN202110294675.1

  • 发明设计人 张昊;孙含福;黄晓艳;钟卫为;

    申请日2021-03-19

  • 分类号G06F8/33(20180101);G06F8/70(20180101);

  • 代理机构42224 武汉东喻专利代理事务所(普通合伙);

  • 代理人雷霄

  • 地址 430205 湖北省武汉市江夏区藏龙岛科技园谭湖2路1号虹信无线通信产业园2号楼4楼

  • 入库时间 2023-06-19 11:29:13

说明书

技术领域

本发明属于软件开发技术领域,更具体地,涉及一种Xcode中类文件导入代码管理系统及方法。

背景技术

Xcode是苹果公司提供的开发iOS应用程序的集成开发环境,提供了用于管理整个开发工作流程的工具—从创建程序到测试,优化并将其提交到应用商店。

苹果公司从Xcode 8开始不再支持第三方的插件,并在Xcode 8.0的beta里面,引入了一个新的面向苹果系统的应用扩展(App Extension),叫做Xcode源代码编辑器扩展(Xcode Source Editor Extension)。

在苹果应用的日常的迭代开发中,随着需求的变更,应用中会增加一些新的功能,一部分老的功能被修改或者被废弃。因此在开发的过程中,基于整个项目的代码规范,会面临着大量的代码删减整理的工作,其中过多的凌乱的类文件导入代码(import代码)充斥其中,导致以下几个问题:(1)重复的类文件导入代码会影响整个应用的编译速度;(2)没有一定规则排序的代码,会增加后续维护的时间成本;(3)过多的无用的类文件导入代码,某个类并没有使用,却被引入进来,增加编译的工作量,对于后期代码瘦身,删除没有引用的类文件带来了麻烦;(4)另外由于代码量的增加,Xcode的限制,每次引入某个类都必须把文件滑到最前面进行编写,增加了一些时间消耗。

发明内容

针对现有技术的至少一个缺陷或改进需求,本发明提供了一种Xcode中类文件导入代码管理系统及方法,实现了对类文件导入代码的排序、剔除多余代码等功能,更加方便快捷,可以帮助提升开发效率。

为实现上述目的,按照本发明的第一方面,提供了一种Xcode中类文件导入代码管理系统,包括步骤:

输入模块,用于接收用户输入的特殊类文件名和真实引用类文件名的映射关系;

读取模块,用于从代码文件中获取全部代码,并读取所有类文件导入代码和注释相关代码;

匹配模块,用于根据用户输入的映射关系和注释相关代码确定实际编写代码中已使用的类文件导入代码和未使用的类文件导入代码,并且删除未使用的类文件导入代码;

排序模块,用于对所有已使用的类文件导入代码进行排序。

优选的,所述确定实际编写代码中已使用的类文件导入代码和未使用的类文件导入代码包括步骤:

从全部代码中删除类文件导入代码和注释代码,得到实际编写代码;

从所有类文件导入代码中获取所有类文件名;

根据映射关系表查询获得所有真实引用类文件名,将每个真实引用类文件名在实际编写代码中进行匹配,根据匹配结果确定已使用的类文件导入代码和未使用的类文件导入代码。

优选的,类文件导入代码管理系统还包括:插入模块,用于将排序后的已使用的类文件导入代码插入到实际编写代码中。

优选的,所述排序为:依次按照系统框架的类文件导入代码、第三方框架的类文件导入代码、自定义的类文件导入代码进行排序。

优选的,若包含多个系统框架的类文件导入代码,则按照字母顺序将多个系统框架的类文件导入代码进行排序;若包含多个第三方框架的类文件导入代码,则按照字母顺序将多个第三方框架的类文件导入代码进行排序;若包含多个自定义的类文件导入代码,则按照字母顺序将多个自定义的类文件导入代码进行排序。

优选的,所述读取模块支持从全部代码任意位置读取类文件导入代码。

按照本发明的第二方面,提供了一种Xcode中类文件导入代码管理方法,包括步骤:

接收用户输入的特殊类文件名和真实引用类文件名的映射关系;

从代码文件中获取全部代码,并读取所有类文件导入代码和注释相关代码;

根据用户输入的映射关系和注释相关代码确定实际编写代码中已使用的类文件导入代码和未使用的类文件导入代码,并且删除未使用的类文件导入代码;

对所有已使用的类文件导入代码进行排序。

总体而言,本发明与现有技术相比,具有有益效果:

(1)本发明提供的一种基于Xcode源代码编辑器扩展的类文件导入管理系统和方法,针对在日常迭代开发中,大部分时候类文件导入代码缺少管理,需要人为进行操作的问题,基于Xcode源代码编辑器扩展的实时获取编写的代码内容的特性,实现了对类文件导入代码的排序、剔除多余代码等功能,更加方便快捷,可以帮助提升开发效率。

(2)本发明提供的一种基于Xcode源代码编辑器扩展的类文件导入管理系统和方法,针对现有技术中代码导入麻烦的问题,实现了在当前文件的任意位置都可以编写导入的代码,只需一键操作就可自动插入到文件开头指定的位置,方便开发人员操作,节约时间。

(3)本发明提供的一种基于Xcode源代码编辑器扩展的类文件导入管理系统和方法,可提前录入特殊类文件名,可根据不同项目要求进行处理,保证了一定的准确性和灵活性。通过结合字符串匹配和特殊情况建库对比等方式,实现在Xcode中一键自动管理类文件导入代码,提高开发效率。

附图说明

图1是本发明实施例的类文件导入管理系统的模块示意图;

图2是本发明另一实施例的类文件导入管理方法的模块示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

如图1所示,本发明实施例提供的一种Xcode中类文件导入管理系统包括输入模块、读取模块、匹配模块和排序模块。

输入模块,用于接收用户输入的特殊类文件名和真实引用类文件名的映射关系。优选的,所述输入模块还用于接收用户输入的第三方库类文件名和和真实引用类文件名的映射关系。

读取模块,用于采用Xcode源代码编辑器扩展提供的方法从代码文件中获取全部代码,并读取所有类文件导入代码和注释相关代码;

匹配模块,用于根据用户输入的映射关系和注释相关代码确定实际编写代码中已使用的类文件导入代码和未使用的类文件导入代码,并且删除未使用的类文件导入代码。

排序模块,用于对所有已使用的类文件导入代码进行排序。

优选的,类文件导入代码管理系统还包括:插入模块,用于将排序后的已使用的类文件导入代码插入到原来的位置。

本发明实施例提供的一种基于Xcode源代码编辑器扩展的类文件导入管理方法,包括步骤:

S1,接收用户输入的特殊类文件名和真实引用类文件名的映射关系。

类文件导入代码中名称和代码中引用的类名不一致的情况下,此时import代码中的名称就是特殊类文件名。

真实引用类文件名是指代码中引用的类名。

比如使用MJRefresh框架时,导入时写法为#import"MJRefresh.h",代码中实际使用到的类名为MJRefreshNormalHeader或者其他,此时使用到的类名和import中的名称不一致。

比如使用百度地图定位框架的时候,导入时写法为#import,代码中可能使用到的是BMKLocationManager、BMKLocationManagerDelegate等类名,真实引用类文件名有很多,且和import中的名称不一致,此时可以使用前缀BMK关键字作为真实引用类文件名去做匹配。

以下为映射关系示例。

优选的,此步骤还可以接收用户输入的特殊类文件名和真实引用类文件名的映射关系。

iOS开发中一些常用的第三方库的文件名和实际使用的类名可以提前写入本地建立的映射关系中。

S2,采用Xcode源代码编辑器扩展提供的方法从代码文件中获取全部代码,并从全部代码中读取所有类文件导入代码和注释相关代码。

一般情况下,写的代码都一个个的代码文件,称为源代码文件。对于某个代码文件来说,可以把这个文件里的内容进行分类,可分为类文件导入代码,注释类代码,实际编写代码,三者是单独的,彼此分开的。可以从代码文件中获取全部代码,从全部代码中读取类文件导入代码和注释相关代码,通过删除类文件导入代码和注释相关代码得到实际编写代码。

具体地,搜索发现当前代码文件中的类文件导入代码,对每一行类文件导入代码统一去除首尾空格处理。

优选的,该步骤中对类文件导入代码的搜索,可对iOS开发中使用到的Objective-C、Swift、C语言的导入方式都进行匹配。

本步骤支持从文件代码任意位置读取类文件导入代码。

S3,根据用户输入的映射关系和注释相关代码确定实际编写的代码中已使用的类文件导入代码和未使用的类文件导入代码,并且删除未使用的类文件导入代码。

具体地,步骤S3包括子步骤:

S31,从全部代码中删除类文件导入代码和注释代码,得到实际编写代码;

S32,从所有类文件导入代码中获取所有类文件名。

具体地,对获得的所有行的代码进行‘#import’、‘import’、‘@import’、‘#include’等关键的检索,将得到的每一行代码保存于数组中。

S33,根据步骤S1的映射关系表查询真实引用类文件名(即类名关键字),将真实引用类文件名在实际编写的代码中进行匹配,若能匹配上,则为已使用代码,若不能匹配上,则为未使用代码。

进一步根据类名关键字和特殊的映射关系在剔除了注释的实际编写的代码中匹配,确定实际编写的代码中已使用的类文件导入代码和未使用的类文件导入代码。

以步骤S1中给出映射关系示例为例,说明此步骤。实际编写代码,比如使用百度地图定位框架的时候,导入时写法为#import,代码中可能使用到的是BMKLocationManager、BMKLocationManagerDelegate等类名,根据步骤S1建立的映射关系,使用BMK关键字去实际编写代码中匹配,如果实际编写的代码中包含有BMK关键字,则该类文件导入代码为已使用的类文件导入代码。

S4,对所有已使用的类文件导入代码进行排序。

优选的,排序为:依次按照系统框架的类文件导入代码、第三方框架的类文件导入代码、自定义的类文件导入代码进行排序。

优选的,还进行按字母顺序进行局部排序。即若包含多个系统框架的类文件导入代码,则按照字母顺序将多个系统框架的类文件导入代码进行排序;若包含多个第三方框架的类文件导入代码,则按照字母顺序将多个第三方框架的类文件导入代码进行排序;若包含多个自定义的类文件导入代码,则按照字母顺序将多个自定义的类文件导入代码进行排序。

优选的,上述方法还包括步骤S5,将排序后的已使用的类文件导入代码插入到实际编写代码中原来的位置。

如图2所示,本发明另一实施例提供的一种基于Xcode源代码编辑器扩展的管理类文件导入方法,包括以下步骤:

S1、新建一个苹果系统应用(macOSapp)工程,在该工程中新建一个Xcode源代码编辑器扩展的target;

S2、在SourceEditorCommand实例方法中,根据系统提供的方法来,获取目标文件所有行的代码;

S3、对获得的所有行的代码进行‘#import’、‘import’、‘@import’、‘#include’等关键的检索,将得到的每一行代码保存于数组中;

S4、对获得的所有行的代码进行单行注释、多行注释的匹配,将得到的每一行注释相关的代码,并临时存起来;

S5、对获得的所有行的代码剔除import和注释相关的代码,得到实际编写代码内容;

S6、在macOSapp中新建一个界面用于用户输入特殊情况,以keyvalue的形式保存并进行持久化,在Xcode源代码编辑器扩展的Info.plist配置命令,用于打开上述macOSapp;

S7、在Xcode源代码编辑器扩展中,根据保存的import相关代码提取导入的类名,根据输入的keyvalue形式的特殊情况文件名和类名数据进行比对,提取出需要检索的类名信息;

S8、在Xcode源代码编辑器扩展中,根据实际编写代码内容和需要检索的类名信息进行对比,可得出使用到的import代码和一些没有使用到的import代码,将使用到的import代码重新保存起来;

S9、在Xcode源代码编辑器扩展中,对使用到的类文件导入代码进行排序,根据系统框架的导入、第三方框架的导入、自己写的类等顺序排序,并进行按字母顺序进行局部排序,并将排序好的类文件导入代码插入到之前原始的位置。

优选的,可以在Xcode中设置快捷键来使用扩展,达到一键完成操作。

类文件导入管理系统的实现原理、技术效果与上述类文件导入管理方法类似,不再赘述。

必须说明的是,上述任一实施例中,方法并不必然按照序号顺序依次执行,只要从执行逻辑中不能推定必然按某一顺序执行,则意味着可以以其他任何可能的顺序执行。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号