View Source on Github

Inherits from

TSHasBlock, TSSymbol, Function, HasBlock, Exportable, Symbol, Callable, Expression, Usable, Editable, Importable, HasName

Attributes

call_sites

list[ FunctionCall ]

Returns all call sites (invocations) of this callable in the codebase.

code_block

The code block that may trigger an exception

comment

Retrieves the comment group associated with the symbol.

decorators

list[ TSDecorator ]

Returns a list of decorators associated with this symbol.

dependencies

list[Union[ Symbol , Import ]]

Returns a list of symbols that this symbol depends on.

docstring

Retrieves the docstring of a function or class.

export

Export | None

Returns the export object that exports this symbol.

exported_name

str | None

Retrieves the exported name of a symbol from its file.

extended

Returns a SymbolGroup of all extended nodes associated with this element.

extended_nodes

list[ Editable ]

Returns the list of nodes associated with this symbol including extended nodes.

extended_source

str

Returns the source text representation of all extended nodes.

file

The file object that this Editable instance belongs to.

file_node_id

NodeId

filepath

str

The file path of the file that this Editable instance belongs to.

full_name

str | None

Returns the full name of the object, including the namespace path.

function_calls

list[ FunctionCall ]

Gets all function calls within the function and its parameters.

function_signature

str

Returns a string representation of the function's signature.

function_type

TSFunctionTypeNames

Gets the type of function from its TreeSitter node.

has_semicolon

bool

Checks whether the current symbol has a semicolon at the end.

inferred_return_type

str | None

Gets the inferred type of the function from the language's native language engine / compiler.

inline_comment

Property that retrieves the inline comment group associated with the symbol.

is_anonymous

bool

Property indicating whether a function is anonymous.

is_arrow

bool

Returns True iff the function is an arrow function.

is_async

bool

Determines if the function is asynchronous.

is_constructor

bool

Determines if the current function is a constructor method.

is_decorated

bool

Checks if the current symbol has a decorator.

is_exported

bool

Indicates if the symbol is exported from its defining file.

is_jsx

bool

Determines if the function is a React component by checking if it returns a JSX element.

is_magic

bool

Returns whether this method is a magic method.

is_method

bool

Returns whether the function is a method of a class.

is_overload

bool

Indicates whether the function is an overloaded function in a multi-function definition.

is_private

bool

Determines if a function is private based on its accessibility modifier.

is_property

bool

Determines if the function is a property.

is_reexported

bool

Determines if the symbol is re-exported from a different file.

jsx_elements

Returns a list of all JSX elements contained within this symbol.

name

str | None

Retrieves the base name of the object without namespace prefixes.

nested_functions

list[ Function ]

Returns a list of nested functions defined within this function's code block.

node_type

Literal[NodeType.SYMBOL]

parameters

Retrieves all parameters of a callable symbol.

parent

parent_class

Class | None

Find the class this node is contained in

parent_function

Function | None

Find the function this node is contained in

parent_statement

Statement | None

Find the statement this node is contained in

resolved_value

Returns the resolved type of an Expression.

return_statements

Returns a list of all return statements within this function's body.

return_type

semicolon_node

Editable | None

Retrieves the semicolon node associated with a TypeScript symbol.

source

str

Returns the source code of the symbol.

symbol_type

ts_node

TSNode

type_parameters

TypeParameters[ Type , TSTypeAlias ] | None

variable_usages

list[ Editable ]

Returns Editables for all TreeSitter node instances of variable usages within this node's

Methods

add_comment

Adds a new comment to the symbol.

View Source on Github

Parameters

comment
str
required

The comment text to be added.

auto_format
bool
default:True

Whether to automatically format the text into a comment style. Defaults to True.

clean_format
bool
default:True

Whether to clean the format of the comment before inserting. Defaults to True.

comment_type
default:TSCommentType.DOUBLE_SLASH

Type of comment to add. Defaults to TSCommentType.DOUBLE_SLASH.

Returns

None

add_decorator

Adds a decorator to a function or method.

View Source on Github

Parameters

new_decorator
str
required

The decorator to add, including the '@' symbol.

skip_if_exists
bool, optional
default:False

If True, skips adding if the decorator exists.

Returns

bool

True if the decorator was added, False if skipped.

add_keyword

Insert a keyword in the appropriate place before this symbol if it doesn’t already exist.

View Source on Github

Parameters

keyword
str
required

The keyword to be inserted. Must be a valid keyword in the language context.

Returns

None

add_statements

Adds statements to the end of a function body.

View Source on Github

Parameters

lines
str
required

The lines of code to be added at the end of the function body.

Returns

None

ancestors

Find all ancestors of the node of the given type. Does not return itself

View Source on Github

Returns

list[ Editable ]

arrow_to_named

Converts an arrow function to a named function in TypeScript/JavaScript.

View Source on Github

Parameters

name
str | None
default:None

The name for the converted function. If None, uses the name of the variable

Returns

None

asyncify

Modifies the function to be asynchronous, if it is not already.

View Source on Github

Returns

None

convert_props_to_interface

Converts React component props to TypeScript interfaces.

View Source on Github

Returns

None

edit

Replace the source of this node with new_src.

View Source on Github

Parameters

new_src
str
required

The new source code to replace the current source with.

fix_indentation
bool
default:False

If True, adjusts the indentation of new_src to match the current text's indentation. Defaults to False.

priority
int
default:0

The priority of this edit. Higher priority edits take precedence. Defaults to 0.

dedupe
bool
default:True

If True, prevents duplicate edits. Defaults to True.

Returns

None

find

Find and return matching nodes or substrings within an Editable instance.

View Source on Github

Parameters

strings_to_match
Union[list[str], str]
required

One or more strings to search for.

exact
bool
default:False

If True, only return nodes whose source exactly matches one of the strings_to_match.

Returns

list[ Editable ]

A list of Editable instances that match the search criteria.

find_string_literals

Returns a list of string literals within this node’s source that match any of the given

View Source on Github

Parameters

strings_to_match
list[str]
required

A list of strings to search for in string literals.

fuzzy_match
bool
default:False

If True, matches substrings within string literals. If False, only matches exact strings. Defaults to False.

Returns

list[ Editable ]

A list of Editable objects representing the matching string literals.

flag

Adds a visual flag comment to the end of this Editable’s source text.

View Source on Github

Returns

CodeFlag[ TSFunction ]

get_component

Returns a specific JSX element from within this symbol’s JSX elements.

View Source on Github

Parameters

component_name
str
required

The name of the JSX component to find.

Returns

The matching JSX element if found, None otherwise.

get_import_string

Generates the appropriate import string for a symbol.

View Source on Github

Parameters

alias
str | None, optional
default:None

The alias to use for the imported symbol. Defaults to None.

module
str | None, optional
default:None

The module to import from. If None, uses the file's import module name.

import_type
ImportType, optional
default:ImportType.UNKNOWN

The type of import to generate (e.g., WILDCARD). Defaults to

is_type_import
bool, optional
default:False

Whether this is a type-only import. Defaults to False.

Returns

str

A formatted import statement string.

get_name

Returns the name node of the object.

View Source on Github

Returns

The name node of the object. Can be a Name node for simple names, a ChainedAttribute for names with namespaces (e.g., a.b), or None if the object has no name.

get_parameter

Gets a specific parameter from the callable’s parameters list by name.

View Source on Github

Parameters

name
str
required

The name of the parameter to retrieve.

Returns

Parameter | None

The parameter with the specified name, or None if no parameter with that name exists or if there are no parameters.

get_parameter_by_index

Returns the parameter at the given index.

View Source on Github

Parameters

index
int
required

The index of the parameter to retrieve.

Returns

Parameter | None

The parameter at the specified index, or None if the parameter list is empty or the index does not exist.

get_parameter_by_type

Retrieves a parameter from the callable by its type.

View Source on Github

Parameters

type
required

The type to search for.

Returns

Parameter | None

The parameter with the specified type, or None if no parameter is found or if the callable has no parameters.

get_variable_usages

Returns Editables for all TreeSitter nodes corresponding to instances of variable usage

View Source on Github

Parameters

var_name
str
required

The variable name to search for.

fuzzy_match
bool
default:False

If True, matches variables where var_name is a substring. If False, requires exact match. Defaults to False.

Returns

list[ Editable ]

List of Editable objects representing variable usage nodes matching the given name.

insert_after

Inserts code after this node.

View Source on Github

Parameters

new_src
str
required

The source code to insert after this node.

fix_indentation
bool, optional
default:False

Whether to adjust the indentation of new_src to match the current node. Defaults to False.

newline
bool, optional
default:True

Whether to add a newline before the new_src. Defaults to True.

priority
int, optional
default:0

Priority of the insertion transaction. Defaults to 0.

dedupe
bool, optional
default:True

Whether to deduplicate identical transactions. Defaults to True.

Returns

None

insert_before

Inserts text before the current symbol node in the Abstract Syntax Tree.

View Source on Github

Parameters

new_src
str
required

The source code text to insert.

fix_indentation
bool
default:False

Whether to adjust the indentation of new_src to match current text. Defaults to False.

newline
bool
default:True

Whether to add a newline after insertion. Defaults to True.

priority
int
default:0

Priority of this edit operation. Higher priority edits are applied first. Defaults to 0.

dedupe
bool
default:True

Whether to remove duplicate insertions. Defaults to True.

extended
bool
default:True

Whether to insert before extended nodes like comments and decorators. Defaults to True.

Returns

None

insert_statements

Inserts lines of code into the function body at the specified index.

View Source on Github

Parameters

lines
str
required

The code lines to insert into the function body.

index
int, optional
default:0

The position in the function body where the lines should be inserted. Defaults to 0.

Returns

None

is_valid_node

Determines if a given tree-sitter node corresponds to a valid function type.

View Source on Github

Parameters

node
TSNode
required

The tree-sitter node to validate.

Returns

bool

True if the node's type is a valid function type, False otherwise.

is_wrapped_in

Check if this node is contained another node of the given class

View Source on Github

Returns

bool

move_to_file

Moves the given symbol to a new file and updates its imports and references.

View Source on Github

Parameters

required

The destination file to move the symbol to.

include_dependencies
bool
default:True

If True, moves all dependencies of the symbol to the new file. If False, adds imports for the dependencies. Defaults to True.

strategy
str
default:"update_all_imports"

The strategy to use for updating imports. Can be either 'add_back_edge' or 'update_all_imports'. Defaults to 'update_all_imports'.

Returns

None

parent_of_type

Find the first ancestor of the node of the given type. Does not return itself

View Source on Github

Returns

Editable | None

prepend_statements

Prepends the provided code to the beginning of the function body.

View Source on Github

Parameters

lines
str
required

The code to be prepended to the function body.

Returns

None

reduce_condition

Reduces an editable to the following condition

View Source on Github

Returns

None

remove

Deletes this Node and its related extended nodes (e.g. decorators, comments).

View Source on Github

Parameters

delete_formatting
bool
default:True

Whether to delete surrounding whitespace and formatting. Defaults to True.

priority
int
default:0

Priority of the removal transaction. Higher priority transactions are executed first. Defaults to 0.

dedupe
bool
default:True

Whether to deduplicate removal transactions at the same location. Defaults to True.

Returns

None

rename

Renames a symbol and updates all its references in the codebase.

View Source on Github

Parameters

new_name
str
required

The new name for the symbol.

priority
int
default:0

Priority of the edit operation. Defaults to 0.

Returns

tuple[NodeId, NodeId]

A tuple containing the file node ID and the new node ID of the renamed symbol.

rename_local_variable

Renames a local variable and all its usages within a function body.

View Source on Github

Parameters

old_var_name
str
required

The current name of the local variable to be renamed.

new_var_name
str
required

The new name to give to the local variable.

fuzzy_match
bool, optional
default:False

If True, matches variable names that contain old_var_name. Defaults to False.

Returns

None

The method modifies the AST in place.

replace

Search and replace occurrences of text within this node’s source and its extended nodes.

View Source on Github

Parameters

old
str
required

The text or pattern to search for.

new
str
required

The text to replace matches with.

count
int, optional
default:-1

Maximum number of replacements to make. Defaults to -1 (replace all).

is_regex
bool, optional
default:False

Whether to treat 'old' as a regex pattern. Defaults to False.

priority
int, optional
default:0

Priority of the replacement operation. Defaults to 0.

Returns

int

The total number of replacements made.

Returns a list of all regex match of regex_pattern, similar to python’s re.search().

View Source on Github

Parameters

regex_pattern
str
required

The regular expression pattern to search for.

include_strings
bool
default:True

When False, excludes the contents of string literals from the search. Defaults to True.

include_comments
bool
default:True

When False, excludes the contents of comments from the search. Defaults to True.

Returns

list[ Editable ]

A list of Editable objects corresponding to the matches found.

set_comment

Sets a comment to the symbol.

View Source on Github

Parameters

comment
str
required

The comment text to be added.

auto_format
bool, optional
default:True

Whether to automatically format the text into a comment syntax.

clean_format
bool, optional
default:True

Whether to clean the format of the comment before inserting.

comment_type
TSCommentType , optional
default:TSCommentType.DOUBLE_SLASH

The style of comment to add.

Returns

None

set_docstring

Sets or updates a docstring for a code element.

View Source on Github

Parameters

docstring
str
required

The docstring text to be added or updated.

auto_format
bool, optional
default:True

Whether to automatically format the text into a docstring format. Defaults to True.

clean_format
bool, optional
default:True

Whether to clean existing formatting from the docstring before inserting. Defaults to True.

leading_star
bool, optional
default:True

Whether to add leading "*" to each line of the comment block. Defaults to True.

force_multiline
bool, optional
default:False

Whether to force single line comments to be multi-line. Defaults to False.

Returns

None

set_inline_comment

Sets an inline comment to the symbol.

View Source on Github

Parameters

comment
str
required

The inline comment text to be added.

auto_format
bool, optional
default:True

Whether to automatically format the text as a comment.

clean_format
bool, optional
default:True

Whether to clean the comment format before inserting.

node
TSNode | None, optional
default:None

The specific node to attach the comment to.

Returns

None

set_name

Sets the name of a code element.

View Source on Github

Parameters

name
str
required

The new name to set for the object.

Returns

None

set_return_type

Sets the return type annotation for the function.

View Source on Github

Parameters

new_return_type
str
required

The new return type annotation to be set. Use an empty string to remove

Returns

None

symbol_usages

Returns a list of symbols that use or import the exportable object.

View Source on Github

Parameters

usage_types
UsageType | None
default:None

The types of usages to search for. Defaults to any.

Returns

list[ Import | Symbol | Export ]

A list of symbols that use or import the exportable object.

usages

Returns a list of usages of the exportable object.

View Source on Github

Parameters

usage_types
UsageType | None
default:None

Specifies which types of usages to include in the results. Default is any usages.

Returns

list[ Usage ]

A sorted list of Usage objects representing where this exportable is used, ordered by source location in reverse.