refactor(lsp): remove duplicate LSP tools already provided by OpenCode

Remove lsp_goto_definition, lsp_find_references, lsp_symbols as they
duplicate OpenCode's built-in LspGotoDefinition, LspFindReferences,
LspDocumentSymbols, and LspWorkspaceSymbols.

Keep oh-my-opencode-specific tools:
- lsp_diagnostics (OpenCode lacks pull diagnostics)
- lsp_servers (server management)
- lsp_prepare_rename / lsp_rename (OpenCode lacks rename)

Clean up associated dead code:
- Client methods: hover, definition, references, symbols, codeAction
- Utils: formatLocation, formatSymbolKind, formatDocumentSymbol, etc.
- Types: Location, LocationLink, SymbolInfo, DocumentSymbol, etc.
- Constants: SYMBOL_KIND_MAP, DEFAULT_MAX_REFERENCES/SYMBOLS

-418 lines removed.
This commit is contained in:
justsisyphus
2026-01-16 02:17:00 +09:00
parent 207a39b17a
commit 48167a6920
7 changed files with 3 additions and 418 deletions
-67
View File
@@ -509,46 +509,6 @@ export class LSPClient {
await new Promise((r) => setTimeout(r, 1000))
}
async hover(filePath: string, line: number, character: number): Promise<unknown> {
const absPath = resolve(filePath)
await this.openFile(absPath)
return this.send("textDocument/hover", {
textDocument: { uri: pathToFileURL(absPath).href },
position: { line: line - 1, character },
})
}
async definition(filePath: string, line: number, character: number): Promise<unknown> {
const absPath = resolve(filePath)
await this.openFile(absPath)
return this.send("textDocument/definition", {
textDocument: { uri: pathToFileURL(absPath).href },
position: { line: line - 1, character },
})
}
async references(filePath: string, line: number, character: number, includeDeclaration = true): Promise<unknown> {
const absPath = resolve(filePath)
await this.openFile(absPath)
return this.send("textDocument/references", {
textDocument: { uri: pathToFileURL(absPath).href },
position: { line: line - 1, character },
context: { includeDeclaration },
})
}
async documentSymbols(filePath: string): Promise<unknown> {
const absPath = resolve(filePath)
await this.openFile(absPath)
return this.send("textDocument/documentSymbol", {
textDocument: { uri: pathToFileURL(absPath).href },
})
}
async workspaceSymbols(query: string): Promise<unknown> {
return this.send("workspace/symbol", { query })
}
async diagnostics(filePath: string): Promise<{ items: Diagnostic[] }> {
const absPath = resolve(filePath)
const uri = pathToFileURL(absPath).href
@@ -587,33 +547,6 @@ export class LSPClient {
})
}
async codeAction(
filePath: string,
startLine: number,
startChar: number,
endLine: number,
endChar: number,
only?: string[]
): Promise<unknown> {
const absPath = resolve(filePath)
await this.openFile(absPath)
return this.send("textDocument/codeAction", {
textDocument: { uri: pathToFileURL(absPath).href },
range: {
start: { line: startLine - 1, character: startChar },
end: { line: endLine - 1, character: endChar },
},
context: {
diagnostics: [],
only,
},
})
}
async codeActionResolve(codeAction: unknown): Promise<unknown> {
return this.send("codeAction/resolve", codeAction)
}
isAlive(): boolean {
return this.proc !== null && !this.processExited && this.proc.exitCode === null
}