find_symbol
Locates code symbols like classes and methods using name patterns to enable precise editing and navigation within codebases.
Instructions
Retrieves information on all symbols/code entities (classes, methods, etc.) based on the given name path pattern.
The returned symbol information can be used for edits or further queries.
Specify depth > 0 to also retrieve children/descendants (e.g., methods of a class).
A name path is a path in the symbol tree within a source file.
For example, the method my_method defined in class MyClass would have the name path MyClass/my_method.
If a symbol is overloaded (e.g., in Java), a 0-based index is appended (e.g. "MyClass/my_method[0]") to
uniquely identify it.
To search for a symbol, you provide a name path pattern that is used to match against name paths. It can be
a simple name (e.g. "method"), which will match any symbol with that name
a relative path like "class/method", which will match any symbol with that name path suffix
an absolute name path "/class/method" (absolute name path), which requires an exact match of the full name path within the source file. Append an index
[i]to match a specific overload only, e.g. "MyClass/my_method[1]". Returns a list of symbols (with locations) matching the name.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name_path_pattern | Yes | The name path matching pattern (see above). | |
| depth | No | Depth up to which descendants shall be retrieved (e.g. use 1 to also retrieve immediate children; for the case where the symbol is a class, this will return its methods). Default 0. | |
| relative_path | No | Optional. Restrict search to this file or directory. If None, searches entire codebase. If a directory is passed, the search will be restricted to the files in that directory. If a file is passed, the search will be restricted to that file. If you have some knowledge about the codebase, you should use this parameter, as it will significantly speed up the search as well as reduce the number of results. | |
| include_body | No | If True, include the symbol's source code. Use judiciously. | |
| include_kinds | No | Optional. List of LSP symbol kind integers to include. (e.g., 5 for Class, 12 for Function). Valid kinds: 1=file, 2=module, 3=namespace, 4=package, 5=class, 6=method, 7=property, 8=field, 9=constructor, 10=enum, 11=interface, 12=function, 13=variable, 14=constant, 15=string, 16=number, 17=boolean, 18=array, 19=object, 20=key, 21=null, 22=enum member, 23=struct, 24=event, 25=operator, 26=type parameter. If not provided, all kinds are included. | |
| exclude_kinds | No | Optional. List of LSP symbol kind integers to exclude. Takes precedence over `include_kinds`. If not provided, no kinds are excluded. | |
| substring_matching | No | If True, use substring matching for the last element of the pattern, such that "Foo/get" would match "Foo/getValue" and "Foo/getData". | |
| max_answer_chars | No | Max characters for the JSON result. If exceeded, no content is returned. -1 means the default value from the config will be used. |