Add symbol info tool (#27742)

Does various readonly LSP operations: get definition, get declaration,
get implementation, get type definition, and find all references.

<img width="635" alt="Screenshot 2025-03-30 at 1 24 11 AM"
src="https://github.com/user-attachments/assets/87eae2b0-9791-4e7f-b91f-79dfc2b746cc"
/>

Release Notes:

- N/A
This commit is contained in:
Richard Feldman 2025-03-31 00:23:03 -04:00 committed by GitHub
parent e42406f9d5
commit 078b241223
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 322 additions and 1 deletions

View file

@ -16,6 +16,7 @@ mod path_search_tool;
mod read_file_tool;
mod regex_search_tool;
mod replace;
mod symbol_info_tool;
mod thinking_tool;
use std::sync::Arc;
@ -41,6 +42,7 @@ use crate::open_tool::OpenTool;
use crate::path_search_tool::PathSearchTool;
use crate::read_file_tool::ReadFileTool;
use crate::regex_search_tool::RegexSearchTool;
use crate::symbol_info_tool::SymbolInfoTool;
use crate::thinking_tool::ThinkingTool;
pub fn init(http_client: Arc<HttpClientWithUrl>, cx: &mut App) {
@ -55,6 +57,7 @@ pub fn init(http_client: Arc<HttpClientWithUrl>, cx: &mut App) {
registry.register_tool(CopyPathTool);
registry.register_tool(DeletePathTool);
registry.register_tool(FindReplaceFileTool);
registry.register_tool(SymbolInfoTool);
registry.register_tool(MovePathTool);
registry.register_tool(DiagnosticsTool);
registry.register_tool(EditFilesTool);