入门 Zed Industries 2026-09-14 17:42:20 · 0 阅读

第113章 Zed编辑器中的Svelte支持

通过 Svelte 扩展可以获得 Svelte 支持。

额外的主题样式配置

你可以自定义属性中某些语法(如指令和修饰符)的显示样式:

"syntax": {
  // 指令的样式(如 `class:foo` 或 `on:click`),即属性中的 `on` 或 `class` 部分。
  "attribute.function": {
    "color": "#ff0000"
  },
  // 属性末尾修饰符的样式,如 `on:<click|preventDefault|stopPropagation>`
  "attribute.special": {
    "color": "#00ff00"
  }
}

Inlay Hints(内联提示)

当 Zed 中启用了 inlay hints 时,为了让 language server 返回这些提示,Zed 会设置以下初始化选项:

"inlayHints": {
  "parameterNames": {
    "enabled": "all",
    "suppressWhenArgumentMatchesName": false
  },
  "parameterTypes": {
    "enabled": true
  },
  "variableTypes": {
    "enabled": true,
    "suppressWhenTypeMatchesName": false
  },
  "propertyDeclarationTypes": {
    "enabled": true
  },
  "functionLikeReturnTypes": {
    "enabled": true
  },
  "enumMemberValues": {
    "enabled": true
  }
}

如需覆盖这些设置,可以这样配置:

"lsp": {
  "svelte-language-server": {
    "initialization_options": {
      "configuration": {
        "typescript": {
          // ......
        },
        "javascript": {
          // ......
        }
      }
    }
  }
}

更多信息请参阅 TypeScript language server 的 package.json

在 Svelte 中使用 Tailwind CSS Language Server

要在 Svelte 文件中启用 Tailwind CSS language server 的所有功能(自动补全、代码检查等),需要在 settings.json 中添加以下配置,指定语言服务器查找 CSS 类名的位置:

{
  "lsp": {
    "tailwindcss-language-server": {
      "settings": {
        "includeLanguages": {
          "svelte": "html"
        },
        "experimental": {
          "classRegex": [
            "class=\"([^\"]*)\"",
            "class='([^']*)'",
            "class:\\s*([^\\s{]+)",
            "\\{\\s*class:\\s*\"([^\"]*)\"",
            "\\{\\s*class:\\s*'([^']*)'"
          ]
        }
      }
    }
  }
}

配置完成后,Svelte 文件中的 Tailwind CSS 类名将支持自动补全。示例:

<!-- 标准 class 属性 -->
<div class="flex items-center <此处补全>">
  <p class="text-lg font-bold <此处补全>">Hello World</p>
</div>

<!-- class 指令 -->
<button class:active="bg-blue-500 <此处补全>">Click me</button>

<!-- 表达式 -->
<div class={active ? "flex <此处补全>" : "hidden <此处补全>"}>
  Content
</div>

评论 (0)