[发明专利]代码评审中的代码跳转方法、装置、设备和介质有效
申请号: | 202010038881.1 | 申请日: | 2020-01-14 |
公开(公告)号: | CN111274127B | 公开(公告)日: | 2023-04-07 |
发明(设计)人: | 施展;刘志伟;白伟;李涛 | 申请(专利权)人: | 北京百度网讯科技有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 孟金喆 |
地址: | 100085 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 代码 评审 中的 跳转 方法 装置 设备 介质 | ||
1.一种代码评审中的代码跳转方法,其特征在于,包括:
解析待评审代码的变更代码文件,获取其中存在跳转的至少一个代码元素的代码元素信息,并将所述代码元素信息存储在数据库,其中,所述代码元素信息至少包括代码元素的位置信息、语法信息和签名信息;
显示所述变更代码文件,并对所述至少一个代码元素进行标注;
响应于针对所述标注的代码元素中任意目标代码元素的跳转请求,根据所述目标代码元素的签名信息从所述数据库中查询所述目标代码元素对应的跳转代码元素及其在所述变更代码文件中的位置信息;
根据所述跳转代码元素的位置信息进行跳转,显示所述跳转代码元素所在的页面。
2.根据权利要求1所述的方法,其特征在于,在所述解析待评审代码的变更代码文件之前,所述方法还包括:
根据当前代码评审请求中的评审标识信息,创建当前代码评审目录,从代码库中下载待评审代码至所述当前代码评审目录,并获取所述待评审代码的变更代码文件;
相应的,所述解析待评审代码的变更代码文件,包括:
在所述当前代码评审目录下,解析所述待评审代码的变更代码文件。
3.根据权利要求2所述的方法,其特征在于,在所述当前代码评审目录下,将首次获取的变更代码文件作为基准代码;
相应的,所述方法还包括:
如果在所述当前代码评审请求下存在不同版本的评审请求,则在所述当前代码评审目录下,创建不同版本的评审目录,每个版本的评审目录中的变更代码文件是通过拷贝所述基准代码而来,并且不同版本的评审目录的数量不超过预设阈值。
4.根据权利要求1所述的方法,其特征在于,所述解析待评审代码的变更代码文件,获取其中存在跳转的至少一个代码元素的代码元素信息,包括:
利用代码解析器解析待评审代码的变更代码文件,获取所述变更代码文件的抽象语法树;
对所述抽象语法树进行分析,获取其中各代码元素的代码元素信息;
根据预设的跳转规则和各代码元素的语法信息,从各代码元素中获取存在跳转的至少一个代码元素及其代码元素信息。
5.根据权利要求1所述的方法,其特征在于,在所述解析待评审代码的变更代码文件之前,所述方法还包括:
获取所述变更代码文件所使用的外部依赖类,并下载依赖包;
遍历所述变更代码文件,按照预设的过滤规则对所述变更代码文件进行过滤;
根据所述依赖包和经过滤的变更代码文件进行解析。
6.根据权利要求1所述的方法,其特征在于,所述语法信息中至少包括代码元素类型,所述代码元素类型包括引用和定义。
7.根据权利要求6所述的方法,其特征在于,所述跳转请求是基于对查看引用按钮或查看定义按钮的触发操作而生成;
其中,所述查看引用按钮和查看定义按钮是根据目标代码元素的代码元素类型而生成。
8.根据权利要求6所述的方法,其特征在于,所述根据所述目标代码元素的签名信息从所述数据库中获取所述目标代码元素对应的跳转代码元素及其在所述变更代码文件中的位置信息,包括:
根据所述数据库中的代码元素信息,查询与所述目标代码元素的签名信息相同,并且代码元素类型是引用或定义的代码元素,作为所述目标代码元素对应的跳转代码元素;
获取所述跳转代码元素在所述变更代码文件中的位置信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京百度网讯科技有限公司,未经北京百度网讯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010038881.1/1.html,转载请声明来源钻瓜专利网。