54 lines
2.0 KiB
Markdown
54 lines
2.0 KiB
Markdown
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
|
|
|