33 lines
1.2 KiB
Markdown
33 lines
1.2 KiB
Markdown
---
|
||
title: "LSP (Language Server Protocol)"
|
||
type: concept
|
||
tags: [protocol, code-intelligence, editor]
|
||
last_updated: 2026-04-20
|
||
---
|
||
|
||
## Definition
|
||
Language Server Protocol(LSP)是微软提出的标准化协议,为编辑器/IDE 提供编程语言特性支持(自动补全、跳转定义、悬停文档等),实现语言功能与编辑器的解耦。
|
||
|
||
## Core Features
|
||
- **文本文档同步**:textDocument/didOpen、textDocument/didChange
|
||
- **代码导航**:textDocument/definition、textDocument/references、textDocument/documentSymbol
|
||
- **代码补全**:textDocument/completion
|
||
- **悬停文档**:textDocument/hover
|
||
- **诊断信息**:textDocument/publishDiagnostics
|
||
|
||
## LSP 3.17 Key Capabilities
|
||
- 能力协商机制(initialize 阶段交换 serverCapabilities)
|
||
- 完整生命周期管理(initialize → initialized → shutdown → exit)
|
||
- Workspace symbols 和 文件 URI 标准化
|
||
|
||
## Language Servers
|
||
- TypeScript: typescript-language-server
|
||
- PHP: intelephense, phpactor
|
||
- Go: gopls
|
||
- Rust: rust-analyzer
|
||
- Python: pyright, pylance
|
||
|
||
## Connections
|
||
- [[graphd]] ← 依赖使用 ← [[LSP (Language Server Protocol)]]
|
||
- [[LSP Client Orchestration]] ← 基于 ← [[LSP (Language Server Protocol)]]
|