A curated list of automated code change tools and projects. Search and replace, mass refactoring, codemods, and more
- comby - a tool for searching and changing code structure. It's aware of syntax elements such as code blocks, strings and comments.
- facebookarchive/codemod (archived) - a tool/library to assist you with large-scale codebase refactors that can be partially automated but still require human oversight and occasional intervention. Regex syntax. The are many language or framework-specific tools based off codemod, see rajasegar/awesome-codemods.
- facebookincubator/fastmod a fast partial replacement for codemod, focused on the interactive mode.
- yelp/undebt (archived) - a tool that lets you define complex find-and-replace rules using standard, straightforward Python that can be applied quickly to an entire code base with a simple command.
- astutil - common utilities to work with golang's AST
- uber-go/gopatch - a tool to match and transform Go code. It is meant to aid in refactoring and restyling.
- rf -
experimental
refactoring tool for go
- openrewrite/rewrite - Semantic code search and transformation for Java.
- facebook/jscodeshift - a JavaScript codemod toolkit.
- google/pasta - a library to refactor python code through AST manipulation.
- facebookincubator/Bowler - AST-level refactoring for python, guarantees that the resulting code compiles and runs.
- python-rope/rope - a python refactoring library
- Instagram/LibCST - a concrete syntax-tree parser for python
- google/rerast - a search/replace tool for Rust code using rules.
- scalacenter/scalafix - a refactoring and linting tool for Scala
- IntelliJ - has a lot of helpful refactoring functionalities
- Eclipse - the Eclipse JDT provides AST manipulation tools
- Sourcegraph Batch Changes - apply and track code changes across many repositories and code hosts
- gruntwork-io/git-xargs - a command-line tool (CLI) for making updates across multiple Github repositories with a single command
- Skyscanner/turbolift - a simple tool to help apply changes across many GitHub repositories simultaneously
- gabor-boros/hammurabi - an extensible CLI tool responsible for enforcing user-defined rules on code