Ask the language server who calls/uses a symbol. Resolves real symbols, follows aliased imports, ignores comments.
通过语言服务器查找符号的所有引用——解析真实符号、跟踪别名导入、跳过注释和字符串。
references only. definition/hover/symbol listing are intentionally omitted (Go: covered by grep + go build; dynamic langs: references is the high-value win).
seek 的 LSP 集成是瘦身版——只做 references。definition/hover/符号列表故意不做。
You must have the language server on PATH:
需将对应 server 放进 PATH:
| Language | 语言 | Server | Server | Install | 安装 |
|---|---|---|---|---|---|
| Go | gopls | go install golang.org/x/tools/gopls@latest | |||
| Python | pyright-langserver | npm i -g pyright | |||
| TS/JS | typescript-language-server | npm i -g typescript-language-server typescript |
Missing server = graceful error message, not a crash.
没装 server 时返回错误信息,不崩溃。
# 1. grep 找到声明在哪 grep "func Kill" internal/bgjob/bgjob.go → bgjob.go:230 # 2. references 拿到所有语义引用 references(file="internal/bgjob/bgjob.go", line=230, symbol="Kill") → 4 reference(s) to Kill: internal/tools/monitor/monitor.go:112:9 | if err := t.mgr.Kill(a.Job); err != nil {
grep is fine for: "where is X defined?", listing symbols, fuzzy search. references is for "who uses it?" — the safety net before changing an exported API.
找"X 定义在哪"、列符号、模糊搜索——grep 就够。references 专门回答"谁用了它"。
Design: PRD feature-lsp.md
设计文档:PRD feature-lsp.md