linec
linec copied to clipboard
Suggestion: count line of comment
提个建议啊,你的 code 里面是不是包含了所有非空行的部分? 是否能再对这一部分进行拆分,统计注释的行数。
这里是别人的一个统计程序,但是UI确实不好看,而且种类没有你的全。
主要是注释不太好统计,因为语言不同,需要不通的解析器去解析吧。
其实一个解析器就可以,然后每种语言都需要配置一下,可以参考下 vscode,comment 通常分为单行注释和多行注释,只要分别处理下就可以。
https://github.com/microsoft/vscode/blob/5578eadf868dfa0674d976b141a7ca3674a101da/extensions/javascript/javascript-language-configuration.json#L2-L5
https://github.com/microsoft/vscode/blob/master/extensions/python/language-configuration.json#L2-L5
https://github.com/microsoft/vscode/blob/master/extensions/go/language-configuration.json#L2-L5
确实可以,如果不考虑边界情况的话,逐行解析,blockComment 开头结尾匹配,就是需要维护那个大 的语言 json 。这两天我抽空试试看,或者你有空也可以尝试一下。😃
我不会 js
/(ㄒoㄒ)/~~
哈哈哈,那没事,我这两天试一下吧。
你可以看看词法解析器这种东西,这样更复杂的东西也可以做了,比如 https://github.com/jimbojw/jslex 或 https://github.com/royswastik/lexical-analyzer
以及,如果强行逐行解析的话,要注意这种 hello = "this is // stirng"
这种里面没有注释
现在只能做个大概的通用的,不同的语言解析不一样呀。单行的做个trim直接匹配开头就行了。
已经支持 comments 了
1.4.1 确实实现了 comments,但我貌似发现了2个bug
- code 数据里面包含了 blank
- 我在 Windows 上新增1个空行(换行符为LF),但blank和code结果都+2
- 新增一行代码,blank +1, code+2
现在考虑的基础版本有点问题,回头我用 LL(1)重写一下。