一种代码辅助信息的获取方法及装置制造方法及图纸

技术编号:33922609 阅读:11 留言:0更新日期:2022-06-25 21:15
本申请提供了一种代码辅助信息的获取方法及装置,该方法包括:获取用户当前选中的目标代码的代码信息;基于代码信息,确定目标代码在虚拟文件中的虚拟行号,虚拟文件是通过对目标文件进行文件虚拟化后得到的文件,目标文件的文件格式包括多种;基于虚拟行号,在与目标代码的定义类型对应的目标抽象语法树上获取目标代码对应的目标辅助信息,目标抽象语法树是通过对多个虚拟文件进行解析得到的;输出目标辅助信息。通过采用上述代码辅助信息的获取方法及装置,解决了在获取代码辅助信息时,python文件与ipynb文件之间无法相互引用的问题。题。题。

【技术实现步骤摘要】
一种代码辅助信息的获取方法及装置


[0001]本申请涉及计算机
,具体而言,涉及一种代码辅助信息的获取方法及装置。

技术介绍

[0002]随着软件行业的快速发展和软件需求的日益增长,如何快速编写出规范稳定的代码成为所有研发人员面对的难题。快速的编写代码不但有利于迅速满足用户需求、缩短研发周期,还能降低研发成本。为了提高编写代码的速度通常采用代码辅助工具来辅助开发人员编写代码,对可能使用的单词给予提示,跳转到定义,对重构代码进行提示。
[0003]然而,对于ipynb文件来说,现有的代码辅助工具仅能支持单个ipynb文件内部的定义跳转及重构提示,多个ipynb文件之间无法相互引用,python文件与ipynb文件之间也无法相互引用。

技术实现思路

[0004]有鉴于此,本申请的目的在于提供一种代码辅助信息的获取方法及装置,解决了多个ipynb文件之间无法相互引用以及python文件与ipynb文件之间无法相互引用的问题。
[0005]第一方面,本申请实施例提供了一种代码辅助信息的获取方法,包括:
[0006]获取用户当前选中的目标代码的代码信息;
[0007]基于代码信息,确定目标代码在虚拟文件中的虚拟行号,虚拟文件是通过对目标文件进行文件虚拟化后得到的文件,目标文件的文件格式包括多种;
[0008]基于虚拟行号,在与目标代码的定义类型对应的目标抽象语法树上获取目标代码对应的目标辅助信息,目标抽象语法树是通过对多个虚拟文件进行解析得到的;
[0009]输出目标辅助信息。
[0010]可选地,代码信息包括单元格标识以及目标代码所在的行号;基于代码信息,确定目标代码在虚拟文件中的虚拟行号,包括:确定目标代码所在文件是否为ipynb文件;若是ipynb文件,则获取与单元格标识对应代码单元格的单元格初始行号;基于单元格初始行号以及目标代码所在的行号,确定目标代码在虚拟文件中的虚拟行号。
[0011]可选地,通过以下方式对目标文件进行文件虚拟化:确定目标文件是否为python文件或者ipynb文件;若是python文件,则直接获取目标文件的虚拟文件;若是ipynb文件,则获取目标文件中的多个代码单元格,将多个代码单元格按顺序拼接在一起获取目标文件的虚拟文件。
[0012]可选地,将多个代码单元格按顺序拼接在一起获取目标文件的虚拟文件,包括:针对每个代码单元格,设置单元格初始行号以及单元格索引;针对每个代码单元格内的每行代码,利用该代码单元格的单元格初始行号以及该行代码的代码行号,确定该行代码的虚拟行号;按照虚拟行号从小到大的顺序将多个代码单元格内的代码排列在一起,获取目标文件的虚拟文件。
[0013]可选地,针对每个代码单元格,设置单元格初始行号以及单元格索引,包括:将第一参数的参数值以及第二参数的参数值设置为0;按照代码单元格在目标文件中的顺序,选取第一个代码单元格作为目标代码单元格;确定目标代码单元格是否已设置拼接信息;若未设置拼接信息,则利用第一参数的参数值设置目标代码单元格的单元格初始行号的取值,利用第二参数的参数值设置目标代码单元格的单元格索引的取值,并将目标代码单元格标记为已设置拼接信息;选取下一个代码单元格作为目标代码单元格,返回执行确定目标代码单元格是否已设置拼接信息的步骤。
[0014]可选地,利用第一参数的参数值设置目标代码单元格的单元格初始行号的取值,包括:将第一参数的参数值作为目标代码单元格的单元格初始行号的取值;获取目标代码单元格的代码行数,利用代码行数与第一参数的参数值相加的结果更新第一参数的参数值。
[0015]可选地,利用第二参数的参数值设置目标代码单元格的单元格索引的取值,包括:将第二参数的参数值作为目标代码单元格的单元格索引的取值;利用第二参数的参数值加一的结果更新第二参数的参数值。
[0016]可选地,目标辅助信息包括虚拟行号;输出目标辅助信息,包括:将多个代码单元格按照单元格索引从小到大的顺序进行排列;选取排在第一位的代码单元格作为目标代码单元格;确定目标代码单元格的单元格初始行号是否大于虚拟行号;若大于虚拟行号,则将目标代码单元格的前一个代码单元格的单元格初始行号作为目标单元格初始行号;将虚拟行号与目标单元格初始行号之差作为目标行号;输出目标行号以及目标代码单元格的前一个代码单元格的单元格标识。
[0017]可选地,确定目标代码单元格的单元格初始行号是否大于虚拟行号之后,还包括:若不大于虚拟行号,则将目标代码单元格的下一个代码单元格作为目标代码单元格;返回执行确定目标代码单元格的单元格初始行号是否大于虚拟行号的步骤。
[0018]第二方面,本申请实施例还提供了一种代码辅助信息的获取装置,所述装置包括:
[0019]获取模块,用于获取用户当前选中的目标代码的代码信息;
[0020]计算模块,用于基于代码信息,确定目标代码在虚拟文件中的虚拟行号,虚拟文件是通过对目标文件进行文件虚拟化后得到的文件,目标文件的文件格式包括多种;
[0021]确定模块,用于基于虚拟行号,在与目标代码的定义类型对应的目标抽象语法树上获取目标代码对应的目标辅助信息,目标抽象语法树是通过对多个虚拟文件进行解析得到的;
[0022]输出模块,用于输出目标辅助信息。
[0023]本申请实施例带来了以下有益效果:
[0024]本申请实施例提供的一种代码辅助信息的获取方法及装置,能够根据目标代码的代码信息从目标抽象语法树上获取目标代码对应的目标辅助信息,而目标抽象语法树是通过对多个不同文件格式的目标文件对应的虚拟文件进行解析得到的,使得目标抽象语法树包括多个不同文件格式的目标文件中的代码,即能够从不同格式的文件中获取目标代码对应的目标辅助信息,与现有技术中的代码辅助信息的获取方法相比,解决了多个ipynb文件之间无法相互引用以及python文件与ipynb文件之间无法相互引用的问题。
[0025]为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合
所附附图,作详细说明如下。
附图说明
[0026]为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0027]图1示出了本申请实施例所提供的代码辅助信息的获取方法的流程图;
[0028]图2示出了本申请实施例所提供的代码辅助工程的构建过程的示意图;
[0029]图3示出了本申请实施例所提供的文件虚拟化处理过程的示意图;
[0030]图4示出了本申请实施例所提供的代码辅助信息的获取装置的结构示意图。
具体实施方式
[0031]为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种代码辅助信息的获取方法,其特征在于,包括:获取用户当前选中的目标代码的代码信息;基于所述代码信息,确定所述目标代码在虚拟文件中的虚拟行号,所述虚拟文件是通过对目标文件进行文件虚拟化后得到的文件,所述目标文件的文件格式包括多种;基于所述虚拟行号,在与所述目标代码的定义类型对应的目标抽象语法树上获取所述目标代码对应的目标辅助信息,所述目标抽象语法树是通过对多个虚拟文件进行解析得到的;输出所述目标辅助信息。2.根据权利要求1所述的方法,其特征在于,所述代码信息包括单元格标识以及目标代码所在的行号;所述基于所述代码信息,确定所述目标代码在虚拟文件中的虚拟行号,包括:确定所述目标代码所在文件是否为ipynb文件;若是ipynb文件,则获取与所述单元格标识对应代码单元格的单元格初始行号;基于所述单元格初始行号以及目标代码所在的行号,确定所述目标代码在虚拟文件中的虚拟行号。3.根据权利要求1所述的方法,其特征在于,通过以下方式对目标文件进行文件虚拟化:确定所述目标文件是否为python文件或者ipynb文件;若是python文件,则直接获取所述目标文件的虚拟文件;若是ipynb文件,则获取所述目标文件中的多个代码单元格,将多个代码单元格按顺序拼接在一起获取所述目标文件的虚拟文件。4.根据权利要求3所述的方法,其特征在于,所述将多个代码单元格按顺序拼接在一起获取所述目标文件的虚拟文件,包括:针对每个代码单元格,设置单元格初始行号以及单元格索引;针对每个代码单元格内的每行代码,利用该代码单元格的单元格初始行号以及该行代码的代码行号,确定该行代码的虚拟行号;按照虚拟行号从小到大的顺序将多个代码单元格内的代码排列在一起,获取所述目标文件的虚拟文件。5.根据权利要求4所述的方法,其特征在于,所述针对每个代码单元格,设置单元格初始行号以及单元格索引,包括:将第一参数的参数值以及第二参数的参数值均设置为0;按照代码单元格在目标文件中的顺序,选取第一个代码单元格作为目标代码单元格;确定所述目标代码单元格是否已设置拼接信息;若未设置拼接信息,则利用第一参数的参数值设置目标代码单元格的单元格初始行号的取值,利用第二参数的参数值设置目标代码单元格的单元格索引的取值,并将所述...

【专利技术属性】
技术研发人员:刘喆卢亿雷
申请(专利权)人:北京白海科技有限公司
类型:发明
国别省市:

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

1