# Altr: Smart CLI Refactoring Tool ## Overview Altr is a robust command-line refactoring tool designed to effortlessly enhance your codebase while maintaining your preferred casing styles.
### Try it out on your browser: https://altr-5oz.pages.dev 🦀
## How to Use Execute Altr with the following command: ```bash altr -f ``` ## Example Let's take a look at a practical scenario using a file named `programmer.js`, where we want to rename "programmer" to "rustProgrammer". ```js const programmer = new Programmer(Adam); function getProgrammerName(programmer: Programmer) { return programmer.name; } // Updating the name for the PROGRAMMER function setProgrammerName(name: string) { programmer.name = name; } ``` Executing the command: ```bash altr programmer rustProgrammer -f programmer.js ``` Results in the following updated file: ```js const rustProgrammer = new RustProgrammer(Adam); function getRustProgrammerName(rustProgrammer: RustProgrammer) { return rustProgrammer.name; } // Updating the name for the RUST_PROGRAMMER function setRustProgrammerName(name: string) { rustProgrammer.name = name; } ``` Altr intelligently handles the replacement, considering the casing styles of both the original term and the specified replacement term. For instance, if we run: ```bash altr programmer rust_programmer -f programmer.js ``` The tool adjusts the file accordingly: ```js const rust_programmer = new RustProgrammer(Adam); function getRustProgrammerName(rust_programmer: RustProgrammer) { return rust_programmer.name; } // Updating the name for the RUST_PROGRAMMER function setRustProgrammerName(name: string) { rust_programmer.name = name; } ``` Notice how Altr adapts to the casing requirements of the replacement term. ## IO Support Altr supports taking in input from stdin and passing it to stdout ```bash $ echo "programmer" | altr programmer rust_programmer $ rust_programmer ``` You can also specify the output location ```bash altr programmer rust_programmer -f programmer.js -o rust-programmer.js ``` You can use "-" as path to indicate stdin or stdout as well ## Installation Altr is easily installed using cargo: ```bash cargo install altr ```