Skip to main content
Codegen provides fast, configurable and safe APIs for moving symbols (functions, classes, variables) between files while automatically handling imports and dependencies. The key API is Symbol.move_to_file(…).

Basic Symbol Movement

Simply call Symbol.move_to_file(…) to move a symbol to a new file.
By default, this will move any dependencies, including imports, to the new file.

Moving Strategies

The Symbol.move_to_file(…) method accepts a strategy parameter, which can be used to control how imports are updated. Your options are:
  • "update_all_imports": Updates all import statements across the codebase (default)
  • "add_back_edge": Adds import and re-export in the original file
"add_back_edge" is useful when moving a symbol that is depended on by other symbols in the original file, and will result in smaller diffs.
"add_back_edge" will result in circular dependencies if the symbol has non-import dependencies in it’s original file.

Moving Symbols in Bulk

Make sure to call Codebase.commit(…) after moving symbols in bulk for performant symbol movement.