Sublime Text 的 Svelte 智能提示依赖 LSP + svelte-language-server 驱动,需同时满足:安装 LSP 和 LSP-svelte、全局安装 svelte-language-server、项目根目录存在 svelte.config.js(哪怕为空)、tsconfig.json 中 compilerOptions.types 包含 "svelte" 且配置 "$lib/*" 路径映射,缺一不可。

Sublime Text 本身不提供 Svelte 组件智能提示,必须靠 LSP + svelte-language-server 驱动,且依赖项目级配置生效——装了插件但没提示,90% 是 svelte.config.js 缺失或 tsconfig.json 类型声明不全。
为什么 Ctrl+Space 没反应、on:click 不补全?
这不是插件没装,而是 LSP 服务压根没启动。Svelte for Sublime 只负责着色,on:click、bind:value、组件 props 这类语义级提示必须由语言服务器提供。
-
LSP插件已安装,但未启用对应语言服务器:菜单栏 Preferences → Package Settings → LSP → Settings,确认"clients"下有"svelte"配置块 -
svelte-language-server未全局安装:终端执行npm install -g svelte-language-server(Node.js ≥ 16) - 项目根目录缺少
svelte.config.js:哪怕空文件也得存在,否则服务器直接退出;内容可为module.exports = {}; - 用的是
lang="ts"却没在tsconfig.json里声明"types": ["svelte"],导致$derived、$$Props等全局类型不可见
如何让 $lib 路径跳转和组件名补全生效?
路径解析不是语法层能力,而是类型系统 + 路径映射共同作用的结果。只配 LSP 不够,tsconfig.json 必须参与。
前端设计与 UI/UX 全方位优化专家。覆盖视觉层次、排版系统、色彩理论、响应式布局、交互体验、动画动效、无障碍访问、性能优化八大维度,帮助开发者将普通页面升级为高品质产品级界面。前端设计与 UI/UX 全方位优化专家。覆盖视觉层次、排版系统、色彩理论、响应式布局、交互体验、动画动效、无障碍访问、性能优化八大维度,帮助开发者将普通页面升级为高品质产品级界面。
-
$lib跳转失效,先检查tsconfig.json是否含"compilerOptions": {"baseUrl": ".", "paths": {"$lib/*": ["src/lib/*"]}} - 组件名补全不出现,确认组件文件导出方式:Svelte 5 要求
export default class Component extends SvelteComponent或使用export const component = true标记,纯<script>无 export 的文件不会被识别为可导入组件 - 重启 LSP 服务不能只关窗口:Cmd+Shift+P → 输入
LSP: Restart Servers,选当前项目窗口,否则缓存未清
常见补全失效的隐藏原因
很多问题表面是“没提示”,实际卡在嵌入语法链路断裂或 scope 冲突上。
立即学习“前端免费学习笔记(深入)”;
-
<script setup lang="ts">里类型提示正常,但{#if}块内bind:value不高亮也不补全:说明svelte-directivescope 没被主题支持,换用Material Theme或手动在 color scheme 中添加entity.name.tag.svelte-directive规则 - 输入
<MyCompo后 Tab 补全失败:检查Packages/Svelte/snippets/下是否有component.sublime-snippet,且用户设置中"auto_complete_selector"包含source.svelte - ESLint 校验通过但 LSP 提示缺失:确保
SublimeLinter和LSP不冲突——禁用SublimeLinter-svelte,只留LSP-svelte,后者已内置语义校验
最易被忽略的是 svelte.config.js 的存在性验证和 tsconfig.json 的 types 字段完整性。这两处任一缺失,LSP 就退化为哑服务,所有提示功能形同虚设。

















