LSP workspaceSymbol operation needs a query parameter
Summary
The LSP tool's workspaceSymbol operation currently has no way to pass a search query. The workspace/symbol LSP method requires a query string parameter, but the tool schema only exposes operation, filePath, line, and character — resulting in an empty string "" being sent as the query every time.
Current behavior
When invoking workspaceSymbol, sourcekit-lsp receives an empty query and returns an empty array:
workspace/symbol
"query" : ""
→ []
Confirmed via OS Log:
Received request: workspace/symbol { "query" : "<private e3b0c44298fc1c14>" }
Succeeded (took 0.29ms) → []
(e3b0c44298fc1c14 is the SHA-256 prefix of an empty string)
Expected behavior
The LSP tool schema should include an optional query parameter (used only for workspaceSymbol), so users can search for symbols across the workspace:
operation: "workspaceSymbol"
query: "TeamChatList"
→ returns matching symbols (classes, protocols, functions, etc.)
Context
All other 8 LSP operations work correctly with the current filePath/line/character parameters:
| Operation | Status |
|---|---|
| documentSymbol | ✅ |
| goToDefinition | ✅ |
| goToImplementation | ✅ |
| hover | ✅ |
| findReferences | ✅ |
| prepareCallHierarchy | ✅ |
| incomingCalls | ✅ |
| outgoingCalls | ✅ |
| workspaceSymbol | ❌ (empty query) |
Environment
- Claude Code CLI
- sourcekit-lsp (Xcode 26.2, build 17C52)
- macOS with
xcode-build-serverBSP integration
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗