在做一个项目时,需要分析git上代码有效提交行数,即:添加的行数 - 空行 - 注释行,网上未找到支持多种语言的分析代码,自己写了段代码分享出来。
该代码接收两个参数。filepath变更的文件名称, 文件的变化内容(可以通过git diff {commit_id} 查看)
该段代码特点:
通过filepath的后缀,判断文件里包含的语言
获取该次提交的代码,里面注释和空行的增加数和删除数
支持文件类型,py,sh,java,rb,vue,html,js,xml,sql,css等
如果需要支持更多的语言代码分析,在luanges里加入对应的key即可,single代表单行注释,multi代表多行注释。
def get_commit_diff_comment_rows(filepath,diff):
endfix = filepath.split("/")[-1].split('.')[-1]
diff_rows = diff.split("\n")
if len(diff_rows) < 3:
return {}
luanges={
'py':{
'single':'#',
'multi_start':["'''",'"""'],
'multi_end':["'''",'"""']
},
<