#testing #adapter #lsp #language-server #diagnostics #command #extension

bin+lib testing-language-server

测试的 LSP 服务器

8 个版本

0.1.0 2024 年 5 月 23 日
0.0.9 2024 年 8 月 15 日
0.0.3 2024 年 6 月 22 日
0.0.1 2024 年 5 月 23 日

211文本编辑器

Download history 198/week @ 2024-05-20 2/week @ 2024-05-27 207/week @ 2024-06-17 34/week @ 2024-06-24 80/week @ 2024-07-29 148/week @ 2024-08-05 351/week @ 2024-08-12

每月下载量 579
testing-ls-adapter 中使用

MIT 许可证

66KB
1K SLoC

Rust 867 SLoC // 0.0% comments Go 199 SLoC // 0.1% comments TypeScript 35 SLoC // 0.1% comments JavaScript 14 SLoC

testing-language-server

通用 LSP 服务器,可与测试集成。该语言服务器以可移植性和可扩展性为特点。

动机

这个 LSP 服务器深受以下工具的影响

这些工具非常实用且强大。然而,它们依赖于执行环境,如 VSCode 和 NeoVim,而可移植性方面对我来说不太方便。因此,我设计了这个 testing-language-server 以及其针对每个测试工具的专用适配器,作为依赖每个编辑器的中间层。

这种设计使得在任何编辑器中查看测试的诊断变得容易。依赖于环境的特性,如 neotest 和 VSCode 内置的测试工具,也可以通过使用 testing-language-server 以最少的代码来实现。

功能

  • 实时测试诊断
  • 更高效的诊断检查
  • 适配器安装命令
  • VSCode 扩展
  • Coc.nvim 扩展
  • NeoVim 内置 LSP 插件

配置

语言服务器配置

"languageserver": {
  "testing": {
    "command": "<server path>/testing-language-server",
    "trace.server": "verbose",
    "filetypes": [
      "rust",
      "javascript"
    ],
    "initializationOptions": {
      "initializationOptions": {
        "adapterCommand": {
          "cargo test": [
            {
              "path": "<adapter path>/testing-ls-adapter",
              "extra_args": ["--test-kind=cargo-test"],
              "include_pattern": ["**/*.rs"],
              "exclude_pattern": ["**/target/**"]
            }
          ],
          "jest": [
            {
              "path": "<adapter path>/testing-ls-adapter",
              "extra_args": ["--test-kind=jest"],
              "include_patterns": ["/**/*.js"],
              "exclude_patterns": ["/node_modules/**/*"]
            }
          ]
        }
      }
    }
  }
}

适配器

  • cargo test
  • jest
  • 其他

编写自定义适配器

⚠ 适配器 CLI 的规范尚未稳定。

参见 spec.rs.

clap crate 使得指定变得容易,但原则上,你可以以任何你喜欢的方式创建适配器,无论你使用哪种编程语言。

依赖

~9–22MB
~274K SLoC