VS Code 插件 - 自动纠正代码中的中英文空格写法 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
huacnlee
V2EX    程序员

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

  •  2
     
  •   huacnlee
    huacnlee 2021-07-01 21:55:02 +08:00 4314 次点击
    这是一个创建于 1567 天前的主题,其中的信息可能已经有所发展或是发生改变。

    基于 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


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

    第 1 条附言    2021-07-02 10:29:35 +08:00

    正在实现检查提示机制,作为一个可选项:

    第 2 条附言    2021-07-28 10:15:17 +08:00

    用于 Lint 检查,可以配置到 CI 里面。

    GitHub Action

    Add to your .github/workflows/ci.yml

    steps: - name: Check source code uses: actions/checkout@main - name: AutoCorrect uses: huacnlee/autocorrect-action@main 

    GitLab CI

    autocorrect: stage: build image: huacnlee/autocorrect:latest script: - autocorrect --lint ./ 

    https://github.com/huacnlee/autocorrect#github-action

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

    请注意:手动加的空格,而不是排版是自动加的空格,是会影响字数统计的。这对源代码上无影响,因为代码通常只统计行数不统计字数。但是对字数敏感的文章,手动加空格会产生严重影响。
    huacnlee
        8
    huacnlee  
    OP
       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
        9
    gs1998  
       2021-07-02 12:35:34 +08:00
    感谢!非常讨厌中英文连在一起的人!
    XIVN1987
        10
    XIVN1987  
       2021-07-02 20:59:45 +08:00
    这 vscode 什么主题?看起来很漂亮
    avenger
        12
    avenger  
       223 天前
    有办法可以把英文标点,自动转为中文吗
    类似把 "" 转成 「」 的方案
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     874 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 21:09 PVG 05:09 LAX 14:09 JFK 17:09
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86