CN114895888A - 一种数据导入方法、装置、终端及存储介质 - Google Patents
一种数据导入方法、装置、终端及存储介质 Download PDFInfo
- Publication number
- CN114895888A CN114895888A CN202210494594.0A CN202210494594A CN114895888A CN 114895888 A CN114895888 A CN 114895888A CN 202210494594 A CN202210494594 A CN 202210494594A CN 114895888 A CN114895888 A CN 114895888A
- Authority
- CN
- China
- Prior art keywords
- file
- code
- class
- target
- header
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/33—Intelligent editors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据导入方法、装置、终端及存储介质,该方法包括:显示当前正在编辑的目标文件的代码;响应于针对目标文件的头文件代码快捷插入操作,基于所述目标文件中的目标代码获取需要引用的类的类名信息;基于所述类名信息查找所述类所在的文件,根据所述文件生成所述类的引用头文件代码;在所述目标文件的文件头中导入所述引用头文件代码。本方案可以减少来回滚动文件的时间,有效提高开发效率。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种数据导入方法、装置、终端及存储介质。
背景技术
目前在编码过程中,经常需要引用到另外一个类,这时候需要手动滚动到当前文件的头部去编写引用头文件的代码,然后再滚动回原来编辑的位置;来回切换不仅浪费时间,还会打断思路,影响开发效率。
因此,现有技术需要改进。
发明内容
本申请实施例提供一种数据导入方法、装置、终端及存储介质,可以减少来回滚动文件的时间,有效提高开发效率。
本申请实施例提供一种数据导入方法,包括:显示当前正在编辑的目标文件的代码;响应于针对目标文件的头文件代码快捷插入操作,基于所述目标文件中的目标代码获取需要引用的类的类名信息;基于所述类名信息查找所述类所在的文件,根据所述文件生成所述类的引用头文件代码;在所述目标文件的文件头中导入所述引用头文件代码。
在一个可选的实施例中,所述响应于针对目标文件的头文件代码快捷插入操作,基于所述目标文件中的目标代码获取需要引用的类的类名信息,包括:
响应于对所述目标文件的编辑页面中快捷插入控件的触发操作,基于所述目标文件中的目标代码获取需要引用的类的类名信息;
或者,响应于通过外部输入设备输入的快捷键指令,基于所述目标文件中的目标代码获取需要引用的类的类名信息。
在一个可选的实施例中,响应于针对目标文件的头文件代码快捷插入操作,基于所述目标文件中的目标代码获取需要引用的类的类名信息,包括:
响应于针对目标文件的头文件代码快捷插入操作,对所述目标文件中的目标代码进行分割,得到多个代码段;
根据所述多个代码段确定需要引用的类的类名信息。
在一个可选的实施例中,所述对目标文件的目标代码进行分割,得到多个代码段,包括:
确定预设分隔符号,基于所述预设分隔符号对所述目标文件的目标代码进行分割,得到多个代码段。
在一个可选的实施例中,所述目标代码包括所述目标文件中当前正在编辑的代码行,或者被选中的代码;
若所述目标代码包括被选中的代码,所述响应于针对目标文件的头文件代码快捷插入操作,基于所述目标文件中的目标代码获取需要引用的类的类名信息之前,还包括:
响应于针对目标文件的代码选择操作,确定所述代码选择操作所选中的代码。
在一个可选的实施例中,所述基于所述类名信息查找所述类所在的文件,根据所述文件生成所述类的引用头文件代码,包括:
确定所述目标文件中是否包含所述类名信息;
若是,则基于所述类名信息确定所述类所在的文件的文件名,根据所述文件名生成所述类的引用头文件代码;
若否,则扫描所述目标文件所在的项目,获取所述项目中类名信息与文件名的映射关系,确定所述类名信息对应的文件的文件名,根据所述文件名生成所述类的引用头文件代码。
在一个可选的实施例中,所述基于所述类名信息确定所述类所在的文件的文件名,包括:
获取所述目标文件对应的文件缓存信息,所述文件缓存信息中缓存有类名信息与文件名的映射关系;
基于所述类名信息从所述文件缓存信息中确定所述类对应的文件的文件名。
在一个可选的实施例中,所述在所述目标文件的文件头中导入所述头文件代码,包括:
在所述目标文件的文件头中遍历文件头的每一行代码,确定最后一行引用头文件代码;
在所述最后一行引用头文件代码的下一行写入所述类的引用头文件代码。
在一个可选的实施例中,所述在所述目标文件的文件头中遍历文件头的每一行代码,确定最后一行引用头文件代码,包括:
确定所述引用头文件代码的指定标识;
在所述目标文件中查找所述指定标识,通过所述指定标识确定最后一行引用头文件代码。
本申请实施例还提供一种数据导入装置,包括:
显示单元,用于显示当前正在编辑的目标文件的代码;
获取单元,用于响应于针对目标文件的头文件代码快捷插入操作,基于所述目标文件中的目标代码获取需要引用的类的类名信息;
生成单元,用于基于所述类名信息查找所述类所在的文件,根据所述文件生成所述类的引用头文件代码;
导入单元,用于在所述目标文件的文件头中导入所述引用头文件代码。
本申请实施例还提供了一种终端,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行计算机程序时实现如上述数据导入方法的步骤。
本申请实施例还提供了一种存储介质,其上存储有计算机程序,其中,计算机程序被处理器执行时实现如上述数据导入方法的步骤。
本申请实施例提供了一种数据导入方法,可以显示当前正在编辑的目标文件的代码;响应于针对目标文件的头文件代码快捷插入操作,基于所述目标文件中的目标代码获取需要引用的类的类名信息;基于所述类名信息查找所述类所在的文件,根据所述文件生成所述类的引用头文件代码;在所述目标文件的文件头中导入所述引用头文件代码。本方案在编辑文件代码的过程中需要引入一个新的类时,只需要通过获取对应的类名,响应于快捷插入操作,就可以自动在文件头部插入对应的引用头文件代码,可以减少来回滚动文件的时间,有效提高开发效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种数据导入装置的系统示意图;
图2是本申请实施例提供的一种数据导入方法的流程示意图;
图3是本申请实施例提供的另一种数据导入方法的流程示意图;
图4是本申请实施例提供的另一种数据导入方法的流程示意图;
图5是本申请实施例提供的一种数据导入装置的结构示意图;
图6是本申请实施例提供的一种终端的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种数据导入方法、装置、终端及存储介质。具体地,本实施例提供适用于数据导入装置的数据导入方法,该数据导入装置可以集成在计算机设备中。
其中,该计算机设备可以为终端等设备,例如可以为智能手机、平板电脑、笔记本电脑、触控屏幕、游戏机、个人计算机(PC,Personal Computer)、个人数字助理(PersonalDigital Assistant,PDA)等终端设备,终端还可以包括客户端,该客户端可以是游戏应用客户端、携带有游戏程序的浏览器客户端或即时通信客户端等。该计算机设备还可以为服务器等设备,该服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器,但并不局限于此。
请参阅图1,图1为本申请实施例提供的数据导入装置的系统示意图。该系统可以包括至少一个终端1000,至少一个服务器2000,至少一个数据库3000,以及网络4000。用户持有的终端1000可以通过网络4000连接到不同应用程序的服务器。终端1000是具有计算硬件的任何设备,该计算硬件能够支持和执行与应用程序对应的软件产品。另外,终端1000具有用于感测和获得用户通过在一个或者多个触控显示屏的多个点执行的触摸或者滑动操作的输入的一个或者多个多触敏屏幕。另外,当系统包括多个终端1000、多个服务器2000、多个网络4000时,不同的终端1000可以通过不同的网络4000、通过不同的服务器2000相互连接。网络4000可以是无线网络或者有线网络,比如无线网络为无线局域网(WLAN)、局域网(LAN)、蜂窝网络、2G网络、3G网络、4G网络、5G网络等。另外,不同的终端1000之间也可以使用自身的蓝牙网络或者热点网络连接到其他终端或者连接到服务器等。例如,多个用户可以通过不同的终端1000在线从而通过适当网络连接并且相互同步,以支持多用户使用应用程序。另外,该系统可以包括多个数据库3000,多个数据库3000耦合到不同的服务器2000,并且可以将与应用程序的环境有关的信息在不同用户在线使用应用程序时连续地存储于数据库3000中。
本申请公开了一种数据导入方法,包括:显示当前正在编辑的目标文件的代码;响应于针对目标文件的头文件代码快捷插入操作,基于所述目标文件中的目标代码获取需要引用的类的类名信息;基于所述类名信息查找所述类所在的文件,根据所述文件生成所述类的引用头文件代码;在所述目标文件的文件头中导入所述引用头文件代码。
以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。
本申请实施例将从数据导入装置的角度进行描述,该数据导入装置具体可以集成在终端设备中,该终端设备可以包括智能手机、笔记本电脑、平板电脑以及个人计算机等设备。其中,本方案主要针对的产品是Xcode(一种开发工具)。
本申请实施例提供了一种数据导入方法,本实施例的数据导入方法应用于终端,如图2所示,本申请实施例的数据导入方法的具体流程主要包括步骤201至步骤204,详细说明如下:
201、显示当前正在编辑的目标文件的代码。
具体的,在开发过程中,在终端的显示界面显示有当前正在编辑的文件的代码,设当前正在编辑的文件为目标文件。
202、响应于针对目标文件的头文件代码快捷插入操作,基于所述目标文件中的目标代码获取需要引用的类的类名信息。
本申请实施例中,在目标文件的编辑页面可以设置一快捷插入控件,则步骤“响应于针对目标文件的头文件代码快捷插入操作”,具体为:响应于对目标文件的编辑页面中快捷插入控件的触发操作。其中,触发操作可以包括点击操作,按压操作等,点击操作又可以包括单击、双击等。
本申请实施例中,终端也可以直接响应于通过外部输入设备输入的快捷键指令,基于目标文件中的目标代码获取需要引用的类的类名信息。比如,通过终端连接的键盘上的预设快捷键上的点击操作,生成快捷键指令,响应于键盘输入的快捷键指令,基于目标文件中的目标代码获取需要引用的类的类名信息。其中,预设快捷键可以是键盘上的某一个单独的按键,也可以是两个或三个按键的组合,可以用户自定义设置。
本申请实施例中,目标代码包括目标文件中当前正在编辑的代码行,或者被选中的代码。若目标代码为目标文件中当前正在编辑的代码行,则步骤“响应于针对目标文件的头文件代码快捷插入操作,基于所述目标文件中的目标代码获取需要引用的类的类名信息”,具体包括:响应于针对目标文件的头文件代码快捷插入操作,对目标文件中的目标代码进行分割,得到多个代码段;根据多个代码段确定需要引用的类的类名信息。其中,步骤“对目标文件中的目标代码进行分割”具体包括:确定预设分隔符号,基于预设分隔符号对目标文件的目标代码进行分割。比如,若目标代码为目标文件中当前正在编辑的代码行,预设分隔符可以是空格或*,通过空格或*对代码行中的代码进行分割,可以得到至少一个代码段。其中,将分割出的第一个代码段作为需要引用的类的类名信息。
本申请实施例中,若目标代码包括被选中的代码,在步骤“响应于针对目标文件的头文件代码快捷插入操作,基于所述目标文件中的目标代码获取需要引用的类的类名信息”之前,还包括:响应于针对目标文件的代码选择操作,确定代码选择操作所选中的代码。其中,代码选择操作可以是用户通过鼠标或键盘进行选择操作,比如,用户通过鼠标选中的代码,作为目标代码。
203、基于所述类名信息查找所述类所在的文件,根据所述文件生成所述类的引用头文件代码。
在本申请实施例中,在获取到需要引用的类的类名信息之后,基于类名信息查找该类所在的文件,并根据文件生成该类对应的引用头文件代码。
在本申请实施例中,确定目标文件中是否包含类名信息,具体为:从git仓库中获取当前正在编辑的目标文件,确定目标文件中是否包含该类名。若是,则基于类名信息确定类所在的文件的文件名,根据文件名生成类的引用头文件代码。比如,若git仓库中的目标文件中包含了该类,也即包含该类名,则可以根据类名确定类所在文件的文件名,直接生成类的引用头文件代码。一般情况下类名和文件名都是相同的(Xcode默认创建就是一样的),此时若引用到CCModel这个类,则只需要拼接#import"CCModel.h"的应用代码,作为该类对应的引用头文件代码。
若否,即若目标文件中未包含类名信息,则终端扫描目标文件所在的项目,获取项目中类名信息与文件名的映射关系,确定类名信息对应的文件的文件名,根据文件名生成类的引用头文件代码。比如,类名是CCModel,但是该代码的声明在CCFile.h文件中,则创建对应的映射关系{"CCModel":"CCFile.h"},当需要引用CCModel的时候,这个时候该类的引用头文件代码就变为#import"CCFile.h"。
其中,步骤“根据文件名生成类的引用头文件代码”,具体包括:确定指定头文件前缀与指定头文件后缀;基于文件名、指定头文件前缀与指定头文件后缀拼接生成待导入的头文件。比如,指定头文件前缀为#import,指定头文件后缀为.h,文件名为CCModel,则该类对应的引用头文件代码为#import
"CCModel.h",也就是在类名前面拼接上#import和后面拼接上.h。
在本申请实施例中,在基于类名信息确定类所在的文件的文件名时,可以获取目标文件对应的文件缓存信息,文件缓存信息中缓存有类名信息与文件名的映射关系;基于类名信息从文件缓存信息中确定类对应的文件的文件名。比如,在扫描目标文件所在的一整个项目的代码时,建立后类名和文件名的映射关系后,就将上述映射关系存储到文件缓存信息中,可以比面进行多次扫描,在下一次引用某一个类时,可以先直接基于类名从文件缓存信息中查找,提高确定文件名的效率。如果找到就可以拼接引用头文件代码,如果找不到就提示用户类名出错。
204、在所述目标文件的文件头中导入所述引用头文件代码。
在本申请实施例中,在生成引用头文件代码后,在目标文件的文件头中导入该引用头文件代码。具体包括:在目标文件的文件头中遍历文件头的每一行代码,确定最后一行引用头文件代码;在最后一行引用头文件代码的下一行写入类的引用头文件代码。其中,可以通过确定引用头文件代码的指定标识;在目标文件中查找指定标识,通过指定标识确定最后一行引用头文件代码。比如,引用头文件代码的指定标识为#import,则在目标文件中遍历查找最后一行以#import开头的内容,然后在其下一行插入对应的引用头文件代码即可。可选的,引用头文件代码也可以不一定是要插入到最后一行引用头文件代码的下一行,也可以插入到目标文件的文件头区域中的某一行,其中文件头区域也就是专门输入引用头文件代码的区域,也即以#import开头的代码行。
在本申请实施例中,在开发过程中若需要引入某一个类名的时候,只需要在行首输入或者选中该类名,然后按下快捷键即可;不需要用户再手动滚动到文件的头部去编辑代码。开发同学不仅可以减少来回滚动文件的时间,还可以集中思路在当前编辑的地方,避免思路被打断,从而有效提高开发效率。同时支持忽略大小写比较,即使用户输入的类名大小写不对,也可以正确的生成引用头文件的代码,进一步提高交互逻辑。
请参阅图3,图3为本申请实施例提供的数据导入方法的另一流程示意图。该数据导入方法的具体流程可以如下:
用户打开Xcode,Xcode启动并加载插件,当用户按下快捷键的时候,会运行插件并回调当前编辑的目标文件、当前行或选中的文本。若有选中的文本,则根据选中文本获取对应的类名;若没有选中的文本,则根据当前行提取出对应的类名。通过类名去查找当前类所在的文件,根据文件名拼接相对应的引用头文件的代码,最终插入到文件头部。具体的,在选中类名或提取出类名后,从git仓库中查看目标文件是否包含该类,若目标文件中包含有该类,也即包含有该类名,则可以直接根据类名对应的文件名拼接对应的引用头文件代码。若目标文件中未包含有该类,则扫描目标文件所在项目中的类和文件,建立类名和文件名的映射关系中并缓存在文件缓存信息中,可以避免多次扫描,方便下一次使用;也即若目标文件中未包含有该类时,可以先从文件缓存信息中查看是否有缓存结果,即类名和文件名的映射关系,若缓存有该映射关系,则基于类名确定对应的文件名,根据文件名拼接对应的引用头文件代码,即拼接的对应的#import代码。最后,在拼接出对应的引用头文件代码后,在目标文件的文件头中插入上述代码。若在文件缓存信息中和项目中都没有包含该类,则提示该类名出错。
其中,当用户按下快捷键的时候,Xcode会回调当前编辑的文件、对应的行以及选中的文本。终端会判断用户是否有选中,如果选中就使用该文本作为类名。如果用户没有选中文本,终端可以获取用户当前光标所在的行,根据当前行的文本,使用*和空格作为分隔符去分割字符串,得到的第一个结果就作为类名。
其中,在创建一个类的时候,Xcode会自动创建对应#import代码,终端只需要遍历查找最后一行以#import开头的下一行,然后自动插入对应的引用头文件代码即可。
本方案在开发中需要引入某一个类时,只需要按下快捷键,就可以自动生成引用头文件代码并插入到目标文件的文件头中,提高了开发效率。
请参阅图4,图4为本申请实施例提供的数据导入方法的另一流程示意图。本申请实施例的数据导入方法的具体流程主要包括步骤301至步骤304,详细说明如下:
301、终端显示当前正在编辑的目标文件的代码。
具体的,在开发过程中,在终端的显示界面显示有当前正在编辑的文件的代码,设当前正在编辑的文件为目标文件。
302、终端响应于对目标文件的编辑页面中快捷插入控件的触发操作,基于所述目标文件中的目标代码获取需要引用的类的类名信息。
本申请实施例中,在目标文件的编辑页面可以设置一快捷插入控件,终端响应于对目标文件的编辑页面中快捷插入控件的触发操作,基于目标文件中的目标代码获取需要引用的类的类名信息。其中,触发操作可以包括点击操作,按压操作等,点击操作又可以包括单击、双击等。
本申请实施例中,终端也可以直接响应于通过外部输入设备输入的快捷键指令,基于目标文件中的目标代码获取需要引用的类的类名信息。比如,通过终端连接的键盘上的预设快捷键上的点击操作,生成快捷键指令,响应于键盘输入的快捷键指令,基于目标文件中的目标代码获取需要引用的类的类名信息。其中,预设快捷键可以是键盘上的某一个单独的按键,也可以是两个或三个按键的组合,可以用户自定义设置。
本申请实施例中,目标代码包括目标文件中当前正在编辑的代码行,或者被选中的代码。若目标代码为目标文件中当前正在编辑的代码行,响应于针对目标文件的头文件代码快捷插入操作,对目标文件中的目标代码进行分割,得到多个代码段;根据多个代码段确定需要引用的类的类名信息。其中,步骤“对目标文件中的目标代码进行分割”具体包括:确定预设分隔符号,基于预设分隔符号对目标文件的目标代码进行分割。比如,若目标代码为目标文件中当前正在编辑的代码行,预设分隔符可以是空格或*,通过空格或*对代码行中的代码进行分割,可以得到至少一个代码段。其中,将分割出的第一个代码段作为需要引用的类的类名信息。
本申请实施例中,若目标代码包括被选中的代码,在步骤“终端响应于对目标文件的编辑页面中快捷插入控件的触发操作,基于所述目标文件中的目标代码获取需要引用的类的类名信息”之前,还包括:响应于针对目标文件的代码选择操作,确定代码选择操作所选中的代码。其中,代码选择操作可以是用户通过鼠标或键盘进行选择操作,比如,用户通过鼠标选中的代码,作为目标代码。
303、终端基于所述类名信息查找所述类所在的文件,根据所述文件生成所述类的引用头文件代码。
在本申请实施例中,在获取到需要引用的类的类名信息之后,基于类名信息查找该类所在的文件,并根据文件生成该类对应的引用头文件代码。
在本申请实施例中,确定目标文件中是否包含类名信息,具体为:从git仓库中获取当前正在编辑的目标文件,确定目标文件中是否包含该类名。若是,则基于类名信息确定类所在的文件的文件名,根据文件名生成类的引用头文件代码。比如,若git仓库中的目标文件中包含了该类,也即包含该类名,则可以根据类名确定类所在文件的文件名,直接生成类的引用头文件代码。一般情况下类名和文件名都是相同的(Xcode默认创建就是一样的),此时若引用到CCModel这个类,则只需要拼接#import"CCModel.h"的应用代码,作为该类对应的引用头文件代码。
若否,即若目标文件中未包含类名信息,则终端扫描目标文件所在的项目,获取项目中类名信息与文件名的映射关系,确定类名信息对应的文件的文件名,根据文件名生成类的引用头文件代码。比如,类名是CCModel,但是该代码的声明在CCFile.h文件中,则创建对应的映射关系{"CCModel":"CCFile.h"},当需要引用CCModel的时候,这个时候该类的引用头文件代码就变为#import"CCFile.h"。
其中,步骤“根据文件名生成类的引用头文件代码”,具体包括:确定指定头文件前缀与指定头文件后缀;基于文件名、指定头文件前缀与指定头文件后缀拼接生成待导入的头文件。比如,指定头文件前缀为#import,指定头文件后缀为.h,文件名为CCModel,则该类对应的引用头文件代码为#import
"CCModel.h",也就是在类名前面拼接上#import和后面拼接上.h。
在本申请实施例中,在基于类名信息确定类所在的文件的文件名时,可以获取目标文件对应的文件缓存信息,文件缓存信息中缓存有类名信息与文件名的映射关系;基于类名信息从文件缓存信息中确定类对应的文件的文件名。比如,在扫描目标文件所在的一整个项目的代码时,建立后类名和文件名的映射关系后,就将上述映射关系存储到文件缓存信息中,可以比面进行多次扫描,在下一次引用某一个类时,可以先直接基于类名从文件缓存信息中查找,提高确定文件名的效率。如果找到就可以拼接引用头文件代码,如果找不到就提示用户类名出错。
304、终端在所述目标文件的文件头中遍历文件头的每一行代码,确定最后一行引用头文件代码;在所述最后一行引用头文件代码的下一行写入所述类的引用头文件代码。
在本申请实施例中,可以通过确定引用头文件代码的指定标识;在目标文件中查找指定标识,通过指定标识确定最后一行引用头文件代码。比如,引用头文件代码的指定标识为#import,则在目标文件中遍历查找最后一行以
#import开头的内容,然后在其下一行插入对应的引用头文件代码即可。可选的,引用头文件代码也可以不一定是要插入到最后一行引用头文件代码的下一行,也可以插入到目标文件的文件头区域中的某一行,其中文件头区域也就是专门输入引用头文件代码的区域,也即以#import开头的代码行。
在本申请实施例中,当类名在行首、或者用户选中类名的时候,用户按下快捷键的时候,先去git仓库中查找当前修改的文件,如果修改的文件中没有包含该类,再从缓存中查找。如果还没有缓存,需要扫描整一个项目的代码,并维护好类名和文件名的映射关系(同时缓存结果,方便下一次使用)。通过的类名找到当前的文件名,拼接好引用头文件的代码,自动插入到当前文件的头部。本方案不需要用户再手动滚动到文件的头部去编辑代码。开发同学不仅可以减少来回滚动文件的时间,还可以集中思路在当前编辑的地方,避免思路被打断,从而有效提高开发效率。同时支持忽略大小写比较,即使用户输入的类名大小写不对,也可以正确的生成引用头文件的代码,进一步提高交互逻辑。
上述所有的技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。
为了更好地实施以上方法,相应的,本申请实施例还提供一种数据导入装置,该数据导入装置具体可以集成在计算机设备中,例如以终端的形式。
参考图5,图5为本申请实施例提供的数据导入装置的结构示意图。该数据导入装置包括显示单元401、获取单元402、生成单元403和导入单元404,如下:
显示单元401,用于显示当前正在编辑的目标文件的代码;
获取单元402,用于响应于针对目标文件的头文件代码快捷插入操作,基于所述目标文件中的目标代码获取需要引用的类的类名信息;
生成单元403,用于基于所述类名信息查找所述类所在的文件,根据所述文件生成所述类的引用头文件代码;
导入单元404,用于在所述目标文件的文件头中导入所述引用头文件代码。
在一个可选的实施例中,所述获取单元402,包括:
响应于对所述目标文件的编辑页面中快捷插入控件的触发操作,基于所述目标文件中的目标代码获取需要引用的类的类名信息;
或者,响应于通过外部输入设备输入的快捷键指令,基于所述目标文件中的目标代码获取需要引用的类的类名信息。
在一个可选的实施例中,所述获取单元402,包括:
响应于针对目标文件的头文件代码快捷插入操作,对所述目标文件中的目标代码进行分割,得到多个代码段;
根据所述多个代码段确定需要引用的类的类名信息。
在一个可选的实施例中,所述获取单元402,包括:
确定预设分隔符号,基于所述预设分隔符号对所述目标文件的目标代码进行分割,得到多个代码段。
在一个可选的实施例中,所述目标代码包括所述目标文件中当前正在编辑的代码行,或者被选中的代码;
若所述目标代码包括被选中的代码,所述获取单元402,还包括:
响应于针对目标文件的代码选择操作,确定所述代码选择操作所选中的代码。
在一个可选的实施例中,所述生成单元403,包括:
确定所述目标文件中是否包含所述类名信息;
若是,则基于所述类名信息确定所述类所在的文件的文件名,根据所述文件名生成所述类的引用头文件代码;
若否,则扫描所述目标文件所在的项目,获取所述项目中类名信息与文件名的映射关系,确定所述类名信息对应的文件的文件名,根据所述文件名生成所述类的引用头文件代码。
在一个可选的实施例中,所述生成单元403,包括:
获取所述目标文件对应的文件缓存信息,所述文件缓存信息中缓存有类名信息与文件名的映射关系;
基于所述类名信息从所述文件缓存信息中确定所述类对应的文件的文件名。
在一个可选的实施例中,所述导入单元404,包括:
在所述目标文件的文件头中遍历文件头的每一行代码,确定最后一行引用头文件代码;
在所述最后一行引用头文件代码的下一行写入所述类的引用头文件代码。
在一个可选的实施例中,所述导入单元404,包括:
确定所述引用头文件代码的指定标识;
在所述目标文件中查找所述指定标识,通过所述指定标识确定最后一行引用头文件代码。
上述所有的技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。
本申请实施例提供的种数据导入装置,当显示单元401显示当前正在编辑的目标文件的代码;之后,当获取单元402响应于针对目标文件的头文件代码快捷插入操作,基于所述目标文件中的目标代码获取需要引用的类的类名信息;接着,当生成单元403基于所述类名信息查找所述类所在的文件,根据所述文件生成所述类的引用头文件代码;最后,导入单元404在所述目标文件的文件头中导入所述引用头文件代码。
相应的,本申请实施例还提供一种终端,该终端可以为智能手机、平板电脑、笔记本电脑、触控屏幕、游戏机、个人计算机(PC,Personal Computer)、个人数字助理(PersonalDigital Assistant,PDA)等计算机设备。如图6所示,图6为本发明实施例提供的终端500的结构示意图。该终端500包括有一个或者一个以上处理核心的处理器501、有一个或一个以上计算机可读存储介质的存储器502及存储在存储器502上并可在处理器上运行的计算机程序。其中,处理器501与存储器502电性连接。本领域技术人员可以理解,图中示出的终端500结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
处理器501是终端500的控制中心,利用各种接口和线路连接整个终端500的各个部分,通过运行或加载存储在存储器502内的软件程序和/或模块,以及调用存储在存储器502内的数据,执行终端500的各种功能和处理数据,从而对终端500进行整体监控。
在本申请实施例中,终端500中的处理器501会按照如下的步骤,将一个或一个以上的应用程序的进程对应的指令加载到存储器502中,并由处理器501来运行存储在存储器502中的应用程序,从而实现各种功能:
显示当前正在编辑的目标文件的代码;响应于针对目标文件的头文件代码快捷插入操作,基于所述目标文件中的目标代码获取需要引用的类的类名信息;基于所述类名信息查找所述类所在的文件,根据所述文件生成所述类的引用头文件代码;在所述目标文件的文件头中导入所述引用头文件代码。
在一个可选的实施例中,所述响应于针对目标文件的头文件代码快捷插入操作,基于所述目标文件中的目标代码获取需要引用的类的类名信息,包括:
响应于对所述目标文件的编辑页面中快捷插入控件的触发操作,基于所述目标文件中的目标代码获取需要引用的类的类名信息;
或者,响应于通过外部输入设备输入的快捷键指令,基于所述目标文件中的目标代码获取需要引用的类的类名信息。
在一个可选的实施例中,响应于针对目标文件的头文件代码快捷插入操作,基于所述目标文件中的目标代码获取需要引用的类的类名信息,包括:
响应于针对目标文件的头文件代码快捷插入操作,对所述目标文件中的目标代码进行分割,得到多个代码段;
根据所述多个代码段确定需要引用的类的类名信息。
在一个可选的实施例中,所述对目标文件的目标代码进行分割,得到多个代码段,包括:
确定预设分隔符号,基于所述预设分隔符号对所述目标文件的目标代码进行分割,得到多个代码段。
在一个可选的实施例中,所述目标代码包括所述目标文件中当前正在编辑的代码行,或者被选中的代码;
若所述目标代码包括被选中的代码,所述响应于针对目标文件的头文件代码快捷插入操作,基于所述目标文件中的目标代码获取需要引用的类的类名信息之前,还包括:
响应于针对目标文件的代码选择操作,确定所述代码选择操作所选中的代码。
在一个可选的实施例中,所述基于所述类名信息查找所述类所在的文件,根据所述文件生成所述类的引用头文件代码,包括:
确定所述目标文件中是否包含所述类名信息;
若是,则基于所述类名信息确定所述类所在的文件的文件名,根据所述文件名生成所述类的引用头文件代码;
若否,则扫描所述目标文件所在的项目,获取所述项目中类名信息与文件名的映射关系,确定所述类名信息对应的文件的文件名,根据所述文件名生成所述类的引用头文件代码。
在一个可选的实施例中,所述基于所述类名信息确定所述类所在的文件的文件名,包括:
获取所述目标文件对应的文件缓存信息,所述文件缓存信息中缓存有类名信息与文件名的映射关系;
基于所述类名信息从所述文件缓存信息中确定所述类对应的文件的文件名。
在一个可选的实施例中,所述在所述目标文件的文件头中导入所述头文件代码,包括:
在所述目标文件的文件头中遍历文件头的每一行代码,确定最后一行引用头文件代码;
在所述最后一行引用头文件代码的下一行写入所述类的引用头文件代码。
在一个可选的实施例中,所述在所述目标文件的文件头中遍历文件头的每一行代码,确定最后一行引用头文件代码,包括:
确定所述引用头文件代码的指定标识;
在所述目标文件中查找所述指定标识,通过所述指定标识确定最后一行引用头文件代码。
本方案可以减少来回滚动文件的时间,有效提高开发效率。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
可选的,如图6所示,终端500还包括:触控显示屏503、射频电路504、音频电路505、输入单元506以及电源507。其中,处理器501分别与触控显示屏503、射频电路504、音频电路505、输入单元506以及电源507电性连接。本领域技术人员可以理解,图6中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
触控显示屏503可用于显示图形用户界面以及接收用户作用于图形用户界面产生的操作指令。触控显示屏503可以包括显示面板和触控面板。其中,显示面板可用于显示由用户输入的信息或提供给用户的信息以及终端的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。可选的,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,Organic Light-Emitting Diode)等形式来配置显示面板。触控面板可用于收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并生成相应的操作指令,且操作指令执行对应程序。可选的,触控面板可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器501,并能接收处理器501发来的命令并加以执行。触控面板可覆盖显示面板,当触控面板检测到在其上或附近的触摸操作后,传送给处理器501以确定触摸事件的类型,随后处理器501根据触摸事件的类型在显示面板上提供相应的视觉输出。在本发明实施例中,可以将触控面板与显示面板集成到触控显示屏503而实现输入和输出功能。但是在某些实施例中,触控面板与触控面板可以作为两个独立的部件来实现输入和输出功能。即触控显示屏503也可以作为输入单元506的一部分实现输入功能。
射频电路504可用于收发射频信号,以通过无线通信与网络设备或其他终端建立无线通讯,与网络设备或其他终端之间收发信号。
音频电路505可以用于通过扬声器、传声器提供用户与终端之间的音频接口。音频电路505可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路505接收后转换为音频数据,再将音频数据输出处理器501处理后,经射频电路504以发送给比如另一终端,或者将音频数据输出至存储器502以便进一步处理。音频电路505还可能包括耳塞插孔,以提供外设耳机与终端的通信。
输入单元506可用于接收输入的数字、字符信息或用户特征信息(例如指纹、虹膜、面部信息等),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
电源507用于给终端500的各个部件供电。可选的,电源507可以通过电源管理系统与处理器501逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源507还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管图6中未示出,终端500还可以包括摄像头、传感器、无线保真模块、蓝牙模块等,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
由上可知,本实施例提供的终端,可以显示当前正在编辑的目标文件的代码;响应于针对目标文件的头文件代码快捷插入操作,基于所述目标文件中的目标代码获取需要引用的类的类名信息;基于所述类名信息查找所述类所在的文件,根据所述文件生成所述类的引用头文件代码;在所述目标文件的文件头中导入所述引用头文件代码。本方案可以减少来回滚动文件的时间,有效提高开发效率。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条计算机程序,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种数据导入方法中的步骤。例如,该计算机程序可以执行如下步骤:
显示当前正在编辑的目标文件的代码;响应于针对目标文件的头文件代码快捷插入操作,基于所述目标文件中的目标代码获取需要引用的类的类名信息;基于所述类名信息查找所述类所在的文件,根据所述文件生成所述类的引用头文件代码;在所述目标文件的文件头中导入所述引用头文件代码。
在一个可选的实施例中,所述响应于针对目标文件的头文件代码快捷插入操作,基于所述目标文件中的目标代码获取需要引用的类的类名信息,包括:
响应于对所述目标文件的编辑页面中快捷插入控件的触发操作,基于所述目标文件中的目标代码获取需要引用的类的类名信息;
或者,响应于通过外部输入设备输入的快捷键指令,基于所述目标文件中的目标代码获取需要引用的类的类名信息。
在一个可选的实施例中,响应于针对目标文件的头文件代码快捷插入操作,基于所述目标文件中的目标代码获取需要引用的类的类名信息,包括:
响应于针对目标文件的头文件代码快捷插入操作,对所述目标文件中的目标代码进行分割,得到多个代码段;
根据所述多个代码段确定需要引用的类的类名信息。
在一个可选的实施例中,所述对目标文件的目标代码进行分割,得到多个代码段,包括:
确定预设分隔符号,基于所述预设分隔符号对所述目标文件的目标代码进行分割,得到多个代码段。
在一个可选的实施例中,所述目标代码包括所述目标文件中当前正在编辑的代码行,或者被选中的代码;
若所述目标代码包括被选中的代码,所述响应于针对目标文件的头文件代码快捷插入操作,基于所述目标文件中的目标代码获取需要引用的类的类名信息之前,还包括:
响应于针对目标文件的代码选择操作,确定所述代码选择操作所选中的代码。
在一个可选的实施例中,所述基于所述类名信息查找所述类所在的文件,根据所述文件生成所述类的引用头文件代码,包括:
确定所述目标文件中是否包含所述类名信息;
若是,则基于所述类名信息确定所述类所在的文件的文件名,根据所述文件名生成所述类的引用头文件代码;
若否,则扫描所述目标文件所在的项目,获取所述项目中类名信息与文件名的映射关系,确定所述类名信息对应的文件的文件名,根据所述文件名生成所述类的引用头文件代码。
在一个可选的实施例中,所述基于所述类名信息确定所述类所在的文件的文件名,包括:
获取所述目标文件对应的文件缓存信息,所述文件缓存信息中缓存有类名信息与文件名的映射关系;
基于所述类名信息从所述文件缓存信息中确定所述类对应的文件的文件名。
在一个可选的实施例中,所述在所述目标文件的文件头中导入所述头文件代码,包括:
在所述目标文件的文件头中遍历文件头的每一行代码,确定最后一行引用头文件代码;
在所述最后一行引用头文件代码的下一行写入所述类的引用头文件代码。
在一个可选的实施例中,所述在所述目标文件的文件头中遍历文件头的每一行代码,确定最后一行引用头文件代码,包括:
确定所述引用头文件代码的指定标识;
在所述目标文件中查找所述指定标识,通过所述指定标识确定最后一行引用头文件代码。
本方案可以减少来回滚动文件的时间,有效提高开发效率。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
以上对本申请实施例所提供的一种数据导入方法、装置、终端及存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (12)
1.一种数据导入方法,其特征在于,包括:
显示当前正在编辑的目标文件的代码;
响应于针对目标文件的头文件代码快捷插入操作,基于所述目标文件中的目标代码获取需要引用的类的类名信息;
基于所述类名信息查找所述类所在的文件,根据所述文件生成所述类的引用头文件代码;
在所述目标文件的文件头中导入所述引用头文件代码。
2.根据权利要求1所述的数据导入方法,其特征在于,所述响应于针对目标文件的头文件代码快捷插入操作,基于所述目标文件中的目标代码获取需要引用的类的类名信息,包括:
响应于对所述目标文件的编辑页面中快捷插入控件的触发操作,基于所述目标文件中的目标代码获取需要引用的类的类名信息;
或者,响应于通过外部输入设备输入的快捷键指令,基于所述目标文件中的目标代码获取需要引用的类的类名信息。
3.根据权利要求1所述的数据导入方法,其特征在于,响应于针对目标文件的头文件代码快捷插入操作,基于所述目标文件中的目标代码获取需要引用的类的类名信息,包括:
响应于针对目标文件的头文件代码快捷插入操作,对所述目标文件中的目标代码进行分割,得到多个代码段;
根据所述多个代码段确定需要引用的类的类名信息。
4.根据权利要求3所述的数据导入方法,其特征在于,所述对目标文件的目标代码进行分割,得到多个代码段,包括:
确定预设分隔符号,基于所述预设分隔符号对所述目标文件的目标代码进行分割,得到多个代码段。
5.根据权利要求1所述的数据导入方法,其特征在于,所述目标代码包括所述目标文件中当前正在编辑的代码行,或者被选中的代码;
若所述目标代码包括被选中的代码,所述响应于针对目标文件的头文件代码快捷插入操作,基于所述目标文件中的目标代码获取需要引用的类的类名信息之前,还包括:
响应于针对目标文件的代码选择操作,确定所述代码选择操作所选中的代码。
6.根据权利要求1所述的数据导入方法,其特征在于,所述基于所述类名信息查找所述类所在的文件,根据所述文件生成所述类的引用头文件代码,包括:
确定所述目标文件中是否包含所述类名信息;
若是,则基于所述类名信息确定所述类所在的文件的文件名,根据所述文件名生成所述类的引用头文件代码;
若否,则扫描所述目标文件所在的项目,获取所述项目中类名信息与文件名的映射关系,确定所述类名信息对应的文件的文件名,根据所述文件名生成所述类的引用头文件代码。
7.根据权利要求6所述的数据导入方法,其特征在于,所述基于所述类名信息确定所述类所在的文件的文件名,包括:
获取所述目标文件对应的文件缓存信息,所述文件缓存信息中缓存有类名信息与文件名的映射关系;
基于所述类名信息从所述文件缓存信息中确定所述类对应的文件的文件名。
8.根据权利要求1所述的数据导入方法,其特征在于,所述在所述目标文件的文件头中导入所述头文件代码,包括:
在所述目标文件的文件头中遍历文件头的每一行代码,确定最后一行引用头文件代码;
在所述最后一行引用头文件代码的下一行写入所述类的引用头文件代码。
9.根据权利要求8所述的数据导入方法,其特征在于,所述在所述目标文件的文件头中遍历文件头的每一行代码,确定最后一行引用头文件代码,包括:
确定所述引用头文件代码的指定标识;
在所述目标文件中查找所述指定标识,通过所述指定标识确定最后一行引用头文件代码。
10.一种数据导入装置,其特征在于,包括:
显示单元,用于显示当前正在编辑的目标文件的代码;
获取单元,用于响应于针对目标文件的头文件代码快捷插入操作,基于所述目标文件中的目标代码获取需要引用的类的类名信息;
生成单元,用于基于所述类名信息查找所述类所在的文件,根据所述文件生成所述类的引用头文件代码;
导入单元,用于在所述目标文件的文件头中导入所述引用头文件代码。
11.一种终端,其特征在于,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时实现如权利要求1-9任一项所述数据导入方法的步骤。
12.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1-9任一项所述数据导入的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210494594.0A CN114895888A (zh) | 2022-05-07 | 2022-05-07 | 一种数据导入方法、装置、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210494594.0A CN114895888A (zh) | 2022-05-07 | 2022-05-07 | 一种数据导入方法、装置、终端及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114895888A true CN114895888A (zh) | 2022-08-12 |
Family
ID=82721788
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210494594.0A Pending CN114895888A (zh) | 2022-05-07 | 2022-05-07 | 一种数据导入方法、装置、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114895888A (zh) |
-
2022
- 2022-05-07 CN CN202210494594.0A patent/CN114895888A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11972205B2 (en) | Method, apparatus and storage medium for loading message into target position in target document | |
CN110278141B (zh) | 一种即时通讯信息的处理方法、装置及存储介质 | |
WO2021239018A1 (zh) | 页面切换方法、装置及电子设备 | |
CN109597548B (zh) | 菜单显示方法、装置、设备及存储介质 | |
CN114615220B (zh) | 一种消息发送控制的方法和装置 | |
WO2022156606A1 (zh) | 信息处理方法、装置及电子设备 | |
CN111813299A (zh) | 信息分享方法、信息分享装置和电子设备 | |
CN112578967B (zh) | 图表信息读取方法及移动终端 | |
CN113836089A (zh) | 一种应用程序显示方法、装置、电子设备和可读存储介质 | |
CN113849092A (zh) | 内容分享方法、装置和电子设备 | |
CN114374663B (zh) | 消息处理方法和消息处理装置 | |
CN114895888A (zh) | 一种数据导入方法、装置、终端及存储介质 | |
CN114417201A (zh) | 消息处理方法、装置、计算机设备及存储介质 | |
CN112764634A (zh) | 内容处理方法及装置 | |
CN110362805B (zh) | 一种内容排版推荐的方法、装置以及终端设备 | |
CN112817514A (zh) | 内容提取方法、装置 | |
CN112748835A (zh) | 终端、服务器、最近任务列表显示方法和应用推荐方法 | |
CN110688344A (zh) | 一种文件扫描方法、装置、计算机可读存储介质及终端 | |
CN113110868B (zh) | 文件合并方法、装置、计算机设备及存储介质 | |
CN115185895A (zh) | 文件搜索方法、装置、存储介质及计算机设备 | |
CN115779411A (zh) | 游戏加速方法、装置、计算机设备及计算机可读存储介质 | |
CN115695062A (zh) | 对象互动方法、装置、电子设备和存储介质 | |
CN114138721A (zh) | 垃圾文件的处理方法、装置、计算机设备及存储介质 | |
CN115794915A (zh) | 一种数据调用方法、装置、计算机设备及存储介质 | |
CN114159797A (zh) | 一种文本处理方法、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |