必须安装svelte(作者alekseyk90)插件、手动绑定.svelte后缀为svelte语法、搭配lsp-svelte实现跳转补全,三步缺一不可;装错插件名、未绑定后缀或lsp配置缺失均导致plain text。

Svelte 文件在 Sublime Text 里默认是 Plain Text,装完插件不生效不是你手抖,而是三个环节中任一环断了:插件没装对、后缀没绑上、或 svelte-language-server 没被 LSP 正确调用。下面分步说清怎么做、为什么、以及哪里最容易卡住。
装哪个插件?别搜“svelte”乱点
必须安装 Svelte(作者 alekseyk90)这个包,不是 Svelte for Sublime(已停更)、也不是 svelte-language-server(那是 LSP 后端,不能当语法包用)。Package Control 搜索时严格输入 Svelte,确认作者字段是 alekseyk90,安装后 Packages/Svelte/ 目录应存在 Svelte.sublime-syntax 文件。
常见错误:
- 搜 “svelte language” 装了
svelte-language-server独立包 → 它不会提供高亮,只报错ImportError: No module named 'sublime_plugin' - 装了旧版
Svelte for Sublime→ Sublime Text 4 下无法加载,右下角始终显示 Plain Text - 装完没重启命令面板 → 按
Ctrl+Shift+P输入Package Control: List Packages,确认列表里有Svelte
.svelte 文件怎么认出来?手动绑定语法是刚需
插件只放语法定义,不自动关联后缀。打开任意 .svelte 文件,右下角点当前语法名(比如 Plain Text),选 Open all with current extension as… → 找到并点击 Svelte(注意不是 HTML 或 JavaScript)。如果菜单里没有 Svelte,说明插件根本没加载成功,不是绑定问题。
验证方式:
- 点右下角语法名后,若弹出菜单里没
Svelte,按Ctrl+`看控制台是否有error loading syntax或no module named报错 - 临时把文件后缀改成
.html,看<template></template>是否恢复高亮 → 能恢复说明语法层解析正常,只是后缀没绑对 - 绑定后仍部分灰(比如
<script context="module"></script>不高亮),检查Packages/Svelte/Svelte.sublime-syntax是否包含context: module的 scope 规则(新版已支持)
想用跳转/补全?LSP-svelte 不是可选项
Svelte 插件只管颜色,$derived、$lib、on:click 提示这些语义功能必须靠 LSP + LSP-svelte。关键条件缺一不可:
- 已通过 Package Control 安装
LSP(作者 sublimelsp)和LSP-svelte(不是svelte-language-server独立包) - 项目根目录存在
svelte.config.js(哪怕内容为空:module.exports = {};) - 打开
.svelte文件后,执行LSP: Enable Language Server Globally→ 选svelte,再执行LSP: Restart Servers -
tsconfig.json中需含"types": ["svelte"],否则<script lang="ts"></script>区块类型推导失效
常见坑:
- 只装了
LSP没装LSP-svelte→LSP: Enable...菜单里根本找不到 svelte 项 - 项目没
svelte.config.js→svelte-language-server启动即退出,LSP 控制台会打印Failed to load config - 启用了服务器但
$lib不跳转 → 检查tsconfig.json的"paths"是否配置正确,且svelte.config.js中是否启用preprocess
为什么 <script setup lang="ts"></script> 还是灰色?优先查嵌入语法
Sublime 的 Svelte 语法包依赖子语言嵌入机制解析 <script></script> 和 <style></style> 块。如果 lang="ts" 区块没高亮,大概率是 TypeScript 支持没接上:
- 确认已安装
TypeScript插件(作者 ms-vscode),且Packages/TypeScript/TypeScript.sublime-syntax存在 - 打开一个
.ts文件,右下角是否显示TypeScript→ 不显示说明 TS 插件没生效 - 检查
Svelte.sublime-syntax中是否引用了source.tsscope(新版默认已配) - 临时把
.svelte文件后缀改为.ts,看 script 内容是否恢复高亮 → 能恢复说明是 Svelte 层嵌入失败,不是 TS 插件问题
真正麻烦的不是装多少插件,而是每一步都得验证是否落地——右下角语法名、控制台报错、文件路径是否存在,这三个地方盯住了,基本不会卡在“明明装了却没反应”这种状态。











