V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
huacnlee
V2EX  ›  程序员

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

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

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

    11 条回复    2021-07-03 15:58:29 +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 什么主题?看起来很漂亮
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2033 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 00:57 · PVG 08:57 · LAX 16:57 · JFK 19:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.