寻找有效的语法检测方案,适配 VS Code + LaTeX/Jupyter Notebook 工作流

我经常使用 VS Code 编写 LaTeX 和 Jupyter Notebook 文件,以前一直依赖 Grammarly for VS Code 插件来检测语法错误和优化英语写作。然而,今年(2024年)初,Grammarly 官方移除了相关 SDK 和插件支持,这让我在工作流中缺少了一个关键工具。

在尝试寻找替代方案的过程中,我发现了一些解决方法,但它们都存在一定的局限性:

目前尝试过的方案

  1. 使用其他语法检测插件。 比如 LTeX - LanguageTool

    • 优点:直接集成 VS Code,支持 LaTeX 和 Markdown。
    • 缺点:基于规则的检测能力有限,尤其在复杂句子和语义优化上远不如 Grammarly。
  2. 复制粘贴到 Grammarly 网页

    • 优点:Grammarly 的语法检测能力强,支持高级优化。
    • 缺点:流程繁琐,频繁切换窗口非常影响效率。
  3. 用网页版 Jupyter Notebook 配合 Grammarly 浏览器插件

    • 原理:Grammarly 浏览器插件可以检测所有 textarea 中的文字。需要通过工具或插件为 Jupyter Notebook 添加 textarea 标签。
    • 优点:保留 Grammarly 的强大语法检测能力。
    • 缺点:需要额外编写脚本,维护成本高,且仅适用于 Jupyter Notebook,LaTeX 文件仍无法受益。

我的问题

目前来看,这些方法都不是很理想。是否有其他更高效的解决方案,能够:

  • 直接适配 VS Code,支持 LaTeX 和 Jupyter Notebook;
  • 提供像 Grammarly 一样强大的语法检测和建议功能;
  • 流程简单,易于集成到现有工作流中。

我的设备

  • 操作系统:Windows 和 macOS
  • VS Code 版本:最新稳定版
  • LaTeX 编译工具:TeX Live

希望大家能推荐一些工具或方案,或者分享自己的经验,非常感谢!

感觉或许可以使用md先行编写大纲,再通过pandoc之类的工具将将其转换为latex,不过也是绕了一道,并且效果也不敢说多好……

我也蹲蹲看看其他解决方案

经过几天的思考,我写了一个本地 html editor, 只有一个功能, 读取文件,显示到 textarea, 然后用 Grammarly 浏览器插件检测语法错误, 然后修改,保存到本地。

所以 Grammarly 没提为啥取消支持了么?

Grammarly 以前并没有API。 他的一个员工 Rahul Kadyan (见他的博客 Grammarly in Code) 基于一个 reverse engineering 的 package grammarly-api - npm 开发了 VS Code 插件。

后来 这个package 不再开发了,Grammarly 也封锁了相关的接口 ( Grammarly SDK has been deprecated · Issue #411 · znck/grammarly · GitHub), 导致 VS Code 插件失效了。

Grammarly 现在有了新的官方 API, 如果有人愿意重新写一个插件还可以的。