LSP Code Navigation

🔍 Python 代码语义导航专家

基于 Pyright 的持久化 LSP 守护进程,提供 Go-to-Definition、Find References、Hover 类型提示、符号搜索等代码导航功能,替代 grep 快速理解代码库结构。

收藏
5.3k
安装
1.3k
版本
1.1.0
CLS 安全扫描中
预计需要 3 分钟...

使用说明

核心用法

lsp 是一个基于 Language Server Protocol 的代码导航工具,通过持久化的 Pyright 守护进程提供 IDE 级代码分析能力。用户通过 lsp-query CLI 与后台 Daemon 交互,支持定义跳转、引用查找、类型悬停、文档符号、工作区符号搜索、诊断检查、代码补全、签名帮助和重命名预览等完整 LSP 功能。

典型工作流程:设置 LSP_WORKSPACE 指向项目根目录后,使用 lsp-query symbols 概览文件结构,通过 workspace-symbols 定位未知位置的符号,用 definition/references 追踪代码依赖,以 hover 快速获取类型签名,最后 diagnostics 前置检查类型错误。

显著优点

1. 性能优化:后台 Daemon 冷启动 1-2 秒,热查询响应约 200ms,自动 5 分钟空闲超时释放资源
2. 无缝集成:单一自包含 Python 脚本(~700 行),无需复杂 IDE 配置,纯 CLI 工作流

3. 语义精准:基于 Pyright 的静态分析,比文本搜索(grep)更准确处理符号边界和作用域

4. 全功能覆盖:完整实现 LSP 核心能力,从代码导航到重构预览一应俱全

潜在局限

1. Python 专属:底层依赖 Pyright,对非 Python 代码库无效
2. 环境敏感:诊断结果依赖当前 Python 环境的包安装状态,跨环境可能出现误报

3. 单服务器限制:仅支持单一 workspace,切换项目需重启 Daemon

4. 索引开销:大型代码库首次加载符号索引存在延迟

适合人群

  • 在终端/远程服务器环境下工作的 Python 开发者
  • 需要快速理解陌生代码库结构的工程师
  • 偏好轻量工具链、拒绝重型 IDE 的极简主义用户
  • 进行代码审查或重构前的影响范围分析场景

常规风险

  • 进程残留:极端情况下 Daemon 可能未能正常退出,需手动 lsp-query shutdown 清理
  • 状态过期:分支切换或大规模文件变更后,Daemon 缓存可能过时,建议重启
  • Socket 冲突:自定义 LSP_SOCK 路径时需注意权限和冲突问题
  • 隐私暴露:工作区符号索引会遍历所有文件,敏感代码片段可能被纳入内存索引

LSP Code Navigation 内容

手动下载zip · 2.8 kB
SKILL.mdtext/markdown
请选择文件