1.6 KiB
1.6 KiB
title, type, tags, sources, last_updated
| title | type | tags | sources | last_updated | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| LSIF | concept |
|
|
2026-04-29 |
Definition
LSIF(Language Server Index Format)是一种标准化的预计算语义索引格式,用于存储语言服务器已分析过的代码语义数据(如符号定义、引用、继承关系等),使代码智能工具无需实时运行 LSP 服务器即可提供导航功能。
Core Mechanism
用途
- 离线索引:项目提前构建 LSIF 索引,CI/CD 阶段预先生成
- 冷启动加速:无需等待 LSP 服务器初始化,立即提供代码导航
- 分发预索引数据:发布 npm 包时附带已编译的 LSIF 索引
- 跨工具共享:同一索引可为多个工具(IDE/CLI/API)共用
索引内容
- 符号定义位置
- 符号引用关系
- 文档结构(文件树/大纲)
- Hover 文档内容
- 类型层次信息
与 nav.index.jsonl 的关系
LSIF 是 nav.index.jsonl 格式的导入/导出标准。graphd 支持:
- 导出:将内存中的语义图谱导出为 LSIF 格式
- 导入:将预先构建的 LSIF 索引加载到内存,加速启动
Implementation Notes
LSP/Index Engineer 将 LSIF 视为 nav.index.jsonl 格式的上游标准,通过 LSIF 实现预计算语义数据的导入/导出。
Connections
- LSIF ← is_standard_for ← SemanticCodeGraph
- LSIF ← can_be_imported_by ← GraphDaemon
- LSIF ← is_alternative_to ← IncrementalGraphUpdate
- LSIF ← exports ← nav.index.jsonl