sublime text需安装svelte for sublime插件、手动绑定.svelte文件为svelte语法,并配置tsconfig.json和svelte.config.js以支持ts嵌入及lsp语义功能,三者缺一不可。

Sublime Text 默认打开 .svelte 文件就是纯文本——<script></script> 灰、<style></style> 无颜色、export let 和 $derived 全部不着色。这不是配置漏了,是压根没装对语法包,也没绑定后缀。
装 Svelte for Sublime 插件但右下角还是 Plain Text
插件只提供语法定义,不会自动把 .svelte 后缀关联过去。跳过手动绑定,重装十遍也白搭。
- 打开任意一个
.svelte文件,点击右下角当前语法名(比如 “Plain Text”) - 选 Open all with current extension as… → 找到并点击
Svelte(注意不是 “Svelte Component” 或 “HTML”) - 如果菜单里没出现
Svelte,说明插件没加载成功:按Ctrl+`看控制台有没有报错;常见原因是 Package Control 版本太旧,先升级再重试
<script setup lang="ts"></script> 块仍是灰色
灰色 = Sublime 没把这块交给 TypeScript 解析器,和 LSP 无关,是语法层嵌入断了。
- 确认已安装
Babel或JavaScriptNext - ES6 Syntax插件(仅靠 Svelte 插件无法渲染 JS/TS 内容) - 检查
Preferences → Package Settings → Svelte for Sublime → Settings,确保"typescript_enabled": true - 如果用了
lang="ts",<script setup lang="ts"></script>里必须显式写类型,比如export let count: number;否则语法解析器可能跳过整块
LSP 启用了但 $lib 不跳转、on:click 没提示
LSP 服务启动了,不代表语义就完整。Svelte 的类型推导严重依赖项目级配置,不是插件单方面能解决的。
- 项目根目录必须存在
svelte.config.js,哪怕内容只有module.exports = {};缺这个文件,svelte-language-server直接退出 -
tsconfig.json中compilerOptions.types必须包含"svelte",否则$derived会被标为未定义 -
compilerOptions.baseUrl设为".",且paths中声明:"$lib/*": ["src/lib/*"] - 改完
tsconfig.json后,必须执行LSP: Restart Servers;LSP 不会自动监听配置变更
最常被忽略的是 svelte.config.js 这个空文件——它不是可选配置,而是 svelte-language-server 的启动开关。没它,LSP 就只是后台跑着的一个闲置 Node 进程。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











