代码质量实时提示方法、电子设备、存储介质及程序产品与流程
本发明涉及代码管理,具体涉及一种代码质量实时提示方法、电子设备、存储介质及程序产品。
背景技术:
1、在软件工程中,良好的代码注释能够提升代码可读性和可维护性。目前,对注释比例的检查大多依赖离线静态分析工具(如sonarqube),或集成在持续集成流水线中的检查步骤。然而,现有方法存在明显滞后性:开发者只有在代码提交、构建之后才能看到注释不足的警告。此外,部分集成开发环境(ide)插件虽然可以计算整个文件的注释率,但需要手动触发或仅在文件保存时显示,无法在编码过程中实时、无侵入地给出反馈,容易打断开发者的思维流。
技术实现思路
1、本发明提供了一种代码质量实时提示方法、电子设备、存储介质及程序产品。
2、根据本发明的一个方面,提供了一种代码质量实时提示方法,包括:实时检测当前活动编辑文件的代码变更情况,并记录最近一次代码变更时间;当当前时间与最近一次代码变更时间的差值达到防抖时间阈值时,执行以下步骤:获取当前光标所在的最内层函数或类的完整源代码文本,根据完整源代码文本中的有效代码行数和注释行数,计算注释覆盖率;基于注释覆盖率确定覆盖率等级,并将覆盖率等级映射为对应的视觉提示颜色;确定当前光标所在的最内层函数或类的起始行位置,在代码编辑器的用户界面中,对应于起始行位置渲染具有视觉提示颜色的视觉提示标识,以形成视觉提示区域;响应于针对视觉提示区域的悬停操作,显示包含注释覆盖率的浮动信息。
3、根据本发明的至少一个实施方式的代码质量实时提示方法,实时检测当前活动编辑文件的代码变更情况,并记录最近一次代码变更时间;当当前时间与最近一次代码变更时间的差值达到防抖时间阈值时,包括:通过编辑器事件接口实时监听当前活动编辑文件的代码变更事件;每次接收到新的代码变更事件时,清除已设定的定时器,并重新设定一个时长为防抖时间阈值的定时器,同时将当前系统时间记录为最近一次代码变更时间;若定时器到期前未接收到新的代码变更事件,则判定当前时间与最近一次代码变更时间的差值达到防抖时间阈值。
4、根据本发明的至少一个实施方式的代码质量实时提示方法,根据完整源代码文本中的有效代码行数和注释行数,计算注释覆盖率,包括:将完整源代码文本按行拆分,遍历每一行并去除各行首尾的空白字符;对遍历到的当前行进行行分类:若当前行为空行,或仅包含单一语法符号且无其他内容,则将当前行标记为忽略行;若当前行以单行注释标记起始,或处于块注释标记内部,则将当前行标记为注释行;将除忽略行和注释行之外的其余行标记为有效代码行;统计有效代码行的总数得到有效代码行数,并统计注释行的总数得到注释行数;在有效代码行数与注释行数之和不为零的情况下,根据以下公式计算注释覆盖率:注释覆盖率=注释行数/(有效代码行数+注释行数)×100%。
5、根据本发明的至少一个实施方式的代码质量实时提示方法,基于注释覆盖率确定覆盖率等级包括:获取至少两个覆盖率阈值;将注释覆盖率与各覆盖率阈值进行比较,根据比较结果确定覆盖率等级。
6、根据本发明的至少一个实施方式的代码质量实时提示方法,在代码编辑器的用户界面中,对应于起始行位置渲染具有视觉提示颜色的视觉提示标识,以形成视觉提示区域,包括:在代码编辑器的左侧装订线区域,对应于起始行位置绘制具有视觉提示颜色的细长色带,以作为视觉提示标识。
7、根据本发明的至少一个实施方式的代码质量实时提示方法,获取当前光标所在的最内层函数或类的完整源代码文本,包括:获取当前光标在活动编辑文件中的位置信息;以当前光标的位置信息中的行为基准,分别向上和向下进行代码文本扫描,以寻找最靠近当前光标的函数或类的起始标记和结束标记;若扫描到起始标记和结束标记,则提取位于起始标记与结束标记之间的全部源代码文本,作为最内层函数或类的完整源代码文本;若未扫描到起始标记和结束标记,则判定当前光标处于全局作用域,将当前光标所在的连续非空代码行段作为完整源代码文本,或将整个活动编辑文件作为完整源代码文本。
8、根据本发明的至少一个实施方式的代码质量实时提示方法,浮动信息包括:实时指标数据、改进建议文本和规则参考信息,其中,实时指标数据用于显示注释覆盖率的百分比数值;改进建议文本用于显示针对注释覆盖率等级的建议补充说明文本;规则参考信息用于显示覆盖率阈值与视觉提示颜色之间的映射关系。
9、根据本发明的另一方面,提供了一种电子设备,包括:存储器,所述存储器存储执行指令;以及处理器,所述处理器执行所述存储器存储的执行指令,使得所述处理器执行本发明任一实施方式的代码质量实时提示方法。
10、根据本发明的再一方面,提供了一种可读存储介质,所述可读存储介质中存储有执行指令,所述执行指令被处理器执行时用于实现本发明任一实施方式的代码质量实时提示方法。
11、根据本发明的又一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现本发明任一实施方式的代码质量实时提示方法。
12、本发明可以实现作用域级注释覆盖率实时无侵入提示,避免打断编码思维流。
1.一种代码质量实时提示方法,其特征在于,包括:
2.如权利要求1所述的代码质量实时提示方法,其特征在于,实时检测当前活动编辑文件的代码变更情况,并记录最近一次代码变更时间;当当前时间与最近一次代码变更时间的差值达到防抖时间阈值时,包括:
3.如权利要求1所述的代码质量实时提示方法,其特征在于,根据完整源代码文本中的有效代码行数和注释行数,计算注释覆盖率,包括:
4.如权利要求1所述的代码质量实时提示方法,其特征在于,基于注释覆盖率确定覆盖率等级包括:
5.如权利要求1所述的代码质量实时提示方法,其特征在于,在代码编辑器的用户界面中,对应于起始行位置渲染具有视觉提示颜色的视觉提示标识,以形成视觉提示区域,包括:
6.如权利要求1所述的代码质量实时提示方法,其特征在于,获取当前光标所在的最内层函数或类的完整源代码文本,包括:
7.如权利要求1所述的代码质量实时提示方法,其特征在于,浮动信息包括:实时指标数据、改进建议文本和规则参考信息,其中,实时指标数据用于显示注释覆盖率的百分比数值;改进建议文本用于显示针对注释覆盖率等级的建议补充说明文本;规则参考信息用于显示覆盖率阈值与视觉提示颜色之间的映射关系。
8.一种电子设备,其特征在于,包括:
9.一种可读存储介质,其特征在于,所述可读存储介质中存储有执行指令,所述执行指令被处理器执行时用于实现权利要求1至7中任一项所述的代码质量实时提示方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的代码质量实时提示方法。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com