VS Code 插件 - 自动纠正代码中的中英文空格写法

2021-07-01 21:55:02 +08:00
 huacnlee

基于 Rust 编写的 CLI 工具,用于自动纠正文案,给 CJK (中文、日语、韩语)与英文混写的场景,补充正确的空格,同时尝试以安全的方式自动纠正标点符号等等。

除了纯文本的自动纠正以外,AutoCorrect 基于 Parser 的方式对各种类型源代码文件支持,能自动识别文件名,并准确找到字符串、注释做自动纠正。

基本能支持所有的语言,实现逻辑简单,基于语言的方言做了 Parser,只处理字符串、注释部分,其他的忽略。

AutoCorrect 的方案最早于 2013 年 出现于 Ruby China 的项目,并逐步完善规则细节,当前准确率较高(级少数异常情况),你可以放心用来辅助你完整自动纠正动作。

https://ruby-china.org/topics/20489

本来最早的时候,只是写了库,用来解决 Ruby, Go, Rust 项目里面使用,后面逐渐发现,深入一点实现,可以搞成一个 fmt 工具,自动处理,加上当前 VS Code 插件的能力,可以搞一个保存的时候自动纠正。

VS Code 插件

https://marketplace.visualstudio.com/items?itemName=huacnlee.auto-correct

AutoCorrect 设计的原则是类似 Gofmt 默认开启,在 VS Code 保存的时候会执行格式化。

效果演示

CLI 工具安装

https://github.com/huacnlee/autocorrect


希望这个小工具能帮到你改善项目中的文档、注释、文案,也期望能帮助改善中文开源社区项目的文案细节。

3579 次点击
所在节点    程序员
11 条回复
HankLu
2021-07-01 22:37:12 +08:00
只能空格吗?逗号那些呢?
MajestySolor
2021-07-02 02:09:58 +08:00
挺好的,我个人非常讨厌中英文混在一起不空格的人 😺
lucifer9
2021-07-02 07:08:01 +08:00
代码里面混的少,主要是 md 里面
weeshin
2021-07-02 07:30:26 +08:00
@MajestySolor
特意去查了《中文出版物夹用英文的编辑标准》,里面也没有强制需要在中英文之间加空格
kiritoxf
2021-07-02 09:13:24 +08:00
baurine.vscode-pangu
Rache1
2021-07-02 09:17:03 +08:00
😂 平时回帖,我都要去这样加空格
passerbytiny
2021-07-02 09:40:01 +08:00
规范是,中英文之间输入时不空格,但排版时自动加空格。奈何 Web 发展太快了,规范跟不上,现在 Word 网页版的空格排版空能都不完全,而 HTML 规范以及基于此的 Markdown 等轻量标记语言,一直都没有涉及跨语言的排版。

请注意:手动加的空格,而不是排版是自动加的空格,是会影响字数统计的。这对源代码上无影响,因为代码通常只统计行数不统计字数。但是对字数敏感的文章,手动加空格会产生严重影响。
huacnlee
2021-07-02 10:23:25 +08:00
@passerbytiny

现在我设计这个可以实现 Lint 机制,对可能有问题的部分做出标识,然后给出纠正提示。

正在做,结合当前实现以及 VS Code Extension 的机制可以搞,应该这周末就可以用了。

![]( https://l.ruby-china.com/photo/huacnlee/1f8ad3d3-8b0d-468a-a9fb-042cf9ed5a36.png!large)
gs1998
2021-07-02 12:35:34 +08:00
感谢🙏!非常讨厌中英文连在一起的人!
XIVN1987
2021-07-02 20:59:45 +08:00
这 vscode 什么主题?看起来很漂亮
huacnlee
2021-07-03 15:58:29 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/787002

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX