File
Represents a generic file. Could represent a source file or a non-code file such as a markdown file or image file.
View source on GitHub
Inherits from
Attributes
content
Returns the content of the file as a UTF-8 encoded string.
directory
Returns the directory that contains this file.
extended
Returns a SymbolGroup of all extended nodes associated with this element.
extended_source
Returns the source text representation of all extended nodes.
extension
Returns the file extension.
file
A property that returns the file object for non-source files.
file_path
The relative file path as a string.
filepath
Retrieves the file path of the file that this Editable instance belongs to.
function_calls
Returns a list of all function calls contained within this expression.
is_binary
Indicates whether the file contains binary data.
name
The name of the file.
owners
Returns the CODEOWNERS of the file.
parent
The parent node of this Editable instance.
parent_class
Find the class this node is contained in
parent_function
Find the function this node is contained in
parent_statement
Find the statement this node is contained in
path
The absolute path of the file as a Path object.
source
Text representation of the Editable instance.
start_byte
Returns the starting byte position of a file in its content.
variable_usages
Returns Editables for all TreeSitter node instances of variable usages within this node's
Methods
ancestors
Find all ancestors of the node of the given type. Does not return itself
View source on GitHub
Returns
edit
Replace the source of this file with new_src.
View source on GitHub
Parameters
new_srcrequiredThe new source text to replace the current text with.
fix_indentationdefault: FalseIf True, adjusts the indentation of new_src to match the current
prioritydefault: 0The priority of the edit transaction. Higher priority edits are
dedupedefault: TrueIf True, deduplicates identical transactions. Defaults to True.
Returns
find
Find and return matching nodes or substrings within an Editable instance.
View source on GitHub
Parameters
strings_to_matchrequiredOne or more strings to search for.
exactdefault: FalseIf True, only return nodes whose source exactly matches one of the strings_to_match.
Returns
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_matchrequiredA list of strings to search for in string literals.
fuzzy_matchdefault: FalseIf True, matches substrings within string literals. If False, only matches exact strings. Defaults to False.
Returns
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
get_variable_usages
Returns Editables for all TreeSitter nodes corresponding to instances of variable usage
View source on GitHub
Parameters
var_namerequiredThe variable name to search for.
fuzzy_matchdefault: FalseIf True, matches variables where var_name is a substring. If False, requires exact match. Defaults to False.
Returns
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_srcrequiredThe source code to insert after this node.
fix_indentationdefault: FalseWhether to adjust the indentation of new_src to match the current node. Defaults to False.
newlinedefault: TrueWhether to add a newline before the new_src. Defaults to True.
prioritydefault: 0Priority of the insertion transaction. Defaults to 0.
dedupedefault: TrueWhether to deduplicate identical transactions. Defaults to True.
Returns
insert_before
Inserts text before this node's source with optional indentation and newline handling.
View source on GitHub
Parameters
new_srcrequiredThe text to insert before this node.
fix_indentationdefault: FalseWhether to fix the indentation of new_src to match the current node. Defaults to False.
newlinedefault: TrueWhether to add a newline after new_src. Defaults to True.
prioritydefault: 0Transaction priority for managing multiple edits. Defaults to 0.
dedupedefault: TrueWhether to deduplicate identical transactions. Defaults to True.
Returns
is_child_of
Checks if this node is a descendant of the given editable instance in the AST.
View source on GitHub
Returns
is_wrapped_in
Check if this node is contained another node of the given class
View source on GitHub
Returns
parent_of_type
Find the first ancestor of the node of the given type. Does not return itself
View source on GitHub
Returns
parent_of_types
Find the first ancestor of the node of the given type. Does not return itself
View source on GitHub
Returns
parse
Parses the file representation into the graph.
View source on GitHub
Parameters
ctxrequiredThe codebase context that the file belongs to.
Returns
reduce_condition
Reduces an editable to the following condition
View source on GitHub
Returns
remove
Removes the file from the file system and graph.
View source on GitHub
Returns
rename
Renames the file to the specified name, preserving the file extension.
View source on GitHub
Parameters
new_namerequiredThe new name for the file. If the new name includes the file extension, it will be used as-is.
Returns
replace
Replace occurrences of text in the file.
View source on GitHub
Parameters
oldrequiredThe text to be replaced.
newrequiredThe text to replace with.
countdefault: -1Maximum number of replacements to make. -1 means replace all occurrences.
is_regexdefault: FalseIf True, treat 'old' as a regular expression pattern.
prioritydefault: 0The priority of the edit transaction. Higher priority edits are
Returns
List of affected Editable objects. For non-source files, always returns an empty list since they don't have Editable sub-components.
search
Returns a list of all regex match of regex_pattern, similar to python's re.search().
View source on GitHub
Parameters
regex_patternrequiredThe regular expression pattern to search for.
include_stringsdefault: TrueWhen False, excludes the contents of string literals from the search. Defaults to True.
include_commentsdefault: TrueWhen False, excludes the contents of comments from the search. Defaults to True.
Returns
A list of Editable objects corresponding to the matches found.
update_filepath
Updates the file path and inbound imports of a file.
View source on GitHub
Parameters
new_filepathrequiredThe new file path to rename the file to.