would-reformat - automatic reformatting for emacs without being annoying # Motivation # Installation - Change to the directory where you want to use **would-reformat**: `$ cd ~/devel/my-project` - From that directory, call the script `install.sh` in the directory where you have **would-reformat** checked out: `you@host:~/devel/my-project $ ~/src/would-reformat/install.sh` This will do the following: - create the directory `~/devel/my-project/bin` if it does not exist - create `~/devel/my-project/bin/_reformat-common.sh`, `~/devel/my-project/bin/do-reformat.sh`, and `~/devel/my-project/bin/would-reformat.sh` as symlinks to files with the same names in `~/src/would-reformat`. - create `~/devel/my-project/.dir-locals.el` as a symlink to the file with the same name in `~/src/would-reformat`. This should work from a checkout wherever you happen to have it. It doesn't need to be in `~/src`. However, if you remove the checkout, then the symlinks will break, so don't do that. If you rename the checkout, the symlinks will break. The directory `bin` with respect to `my-project` however is hardcoded (enhancements here are welcome). The script `install.sh` favors conservatism over cleverness: for example, if it finds the file `~/devel/my-project/bin/do-reformat.sh` then it checks whether it is a symlink to `~/src/would-reformat/do-reformat.sh`. If it is not, then it just prints a warning rather than attempting to correct the situation. # Troubleshooting ## Running prettier is slow The scripts by default call `npx prettier` with some arguments. If you call these scripts from a directory where there's a `node_modules/` directory with prettier and plugins, if necessary, installed, then `npx` should be fast enough. The solution, therefore, seems to be to say `yarn add --dev prettier` (or `npm install --dev prettier`) in the right place. (This seems to work for me, but it is admittedly still uncomfortably cargoculty. There should be a more solid basis for this answer.) # Development