Deno

Deno 支持可通过 Deno 扩展获得。

Deno 配置

要将 Deno 语言服务器与 TypeScript 和 TSX 文件一起使用,您可能希望禁用默认语言服务器并通过将以下内容添加到您的 settings.json 来启用 deno:

{
  "lsp": {
    "deno": {
      "settings": {
        "deno": {
          "enable": true
        }
      }
    }
  },
  "languages": {
    "JavaScript": {
      "language_servers": [
        "deno",
        "!typescript-language-server",
        "!vtsls",
        "!eslint"
      ],
      "formatter": "language_server"
    },
    "TypeScript": {
      "language_servers": [
        "deno",
        "!typescript-language-server",
        "!vtsls",
        "!eslint"
      ],
      "formatter": "language_server"
    },
    "TSX": {
      "language_servers": [
        "deno",
        "!typescript-language-server",
        "!vtsls",
        "!eslint"
      ],
      "formatter": "language_server"
    }
  }
}

有关更多信息,请参阅 Zed 文档中的配置支持的语言

配置补全

要获取 deno.jsonpackage.json 的补全,您可以将以下内容添加到您的 settings.json:(更多信息请参见 https://zed.rust-lang.net.cn/docs/languages/json)

"lsp": {
    "json-language-server": {
      "settings": {
        "json": {
          "schemas": [
            {
              "fileMatch": [
                "deno.json",
                "deno.jsonc"
              ],
              "url": "https://raw.githubusercontent.com/denoland/deno/refs/heads/main/cli/schemas/config-file.v1.json"
            },
            {
              "fileMatch": [
                "package.json"
              ],
              "url": "http://json.schemastore.org/package"
            }
          ]
        }
      }
    }
  }

DAP 支持

要调试 deno 程序,请将其添加到 .zed/debug.json

[
  {
    "adapter": "JavaScript",
    "label": "Deno",
    "request": "launch",
    "type": "pwa-node",
    "cwd": "$ZED_WORKTREE_ROOT",
    "program": "$ZED_FILE",
    "runtimeExecutable": "deno",
    "runtimeArgs": ["run", "--allow-all", "--inspect-wait"],
    "attachSimplePort": 9229
  }
]

可运行支持

要从 UI 运行 deno 任务(例如测试),请将其添加到 .zed/tasks.json

[
  {
    "label": "deno test",
    "command": "deno test -A --filter '/^$ZED_CUSTOM_DENO_TEST_NAME$/' '$ZED_FILE'",
    "tags": ["js-test"]
  }
]

另请参阅