Mark Karpov
a63ded8397
Simplify the definition of ‘optParserInfo’
2020-12-11 22:06:38 +01:00
Mark Karpov
ff9d64db24
Add ‘--color’ for controlling how diffs are printed
...
Also refactor the printing code and standardize how error messages are
output.
2020-11-15 20:50:38 +01:00
Mark Karpov
93bef509ca
Display diffs in the checking mode
...
Also improve the way the diffs are printed.
2020-11-14 16:44:16 +01:00
Samir Talwar
e95ec9b83b
Avoid modifying correctly-formatted files
...
Currently, when running with `--mode=inplace`, Ormolu always overwrites the
files, even when nothing has changed, updating the modified timestamp of the
file. This encourages Stack to rebuild everything when only one file has
changed.
A quick check to see if the file needs rewriting solves this problem.
I would prefer the API allowed me to only read the file once, but as the
`--mode=check` logic also reads the file twice, I decided this wasn't the
biggest sin for now.
2020-09-06 20:37:55 +02:00
Mark Karpov
e5bbfddfa3
Add ‘-i’ as a shortcut for ‘--mode inplace’
2020-06-26 10:58:38 +02:00
Mark Karpov
5d1612f153
Replace “idempotency” with “idempotence”
2020-04-27 15:16:40 +02:00
Mark Karpov
d579a48f48
Give start/end line variables better names in the help text
2020-04-24 23:10:23 +02:00
Mark Karpov
21dd3775e7
Fix rendering of module headers
2020-04-24 20:21:35 +02:00
Mark Karpov
840acd908b
Allow selection of a region to format
2020-04-24 19:01:30 +02:00
Mark Karpov
53f582a575
Implement experimental support for CPP
2020-04-22 14:47:09 +02:00
Mark Karpov
31f6cfd83f
Compare failing logs with exact expected result
...
This will allow us to test on more code and catch changes in the logs as
they happen.
2020-04-15 15:00:08 +02:00
Mark Karpov
d09429f6ec
Format records with a single data constructor more compactly
2020-04-10 18:02:26 +02:00
Utku Demir
34dc1cba49
Don't give up on first failure when multiple files are given
...
Closes #502 .
2020-01-30 13:43:59 +01:00
Mark Karpov
a9f8926c8d
Format the source of the application as well
2020-01-24 16:42:21 +01:00
Artyom Kazak
b08af17217
Migrate to ‘ghc-lib-parser’
...
This would let us have features from GHC 8.8.1 while still using GHC 8.6.5
from Nixpkgs. Bonus: Ormolu will be compilable with GHCJS.
2019-11-01 18:19:34 +01:00
mrkkrp
10232b9c86
Sort extensions that should be manually enabled
2019-09-02 17:10:08 +02:00
mrkkrp
d74b211f1e
A couple of minor tweaks (command line options parser)
2019-08-28 16:21:43 +02:00
mrkkrp
3a093e65c8
Support formatting multiple files at once
2019-08-16 23:06:05 +02:00
Utku Demir
da0b3b8565
Implement the --check-idempotency flag
2019-08-16 22:21:20 +02:00
mrkkrp
c5b9fa1168
Add an option to tolerate CPP pragmas
2019-07-14 13:14:55 +02:00
waddlaw
e663070623
An option to display “manual” extensions
2019-07-13 21:42:06 +02:00
mrkkrp
c201862f11
Drop ‘yaml’ configuration
2019-07-07 13:53:59 +02:00
Tuncer Ayaz
cad7e40ae5
Allow reading from stdin
2019-07-07 12:25:22 +02:00
Basile Henry
42c91987bf
Use explicit error code in check
mode
2019-06-19 21:28:22 +02:00
mrkkrp
b9c8b64947
Implement more precise comment placement without ‘ghc-exactprint’
...
‘ghc-exactprint’ (or perhaps lexer of GHC itself) does a fairly poor job at
associating comments with elements of AST. In many cases the result is not
what you'd expect. We ran into insuperable problems with that to the effect
that correct comment placement were impossible.
The new approach is to exploit the raw position information provided by the
GHC lexer, that is, spans attached to AST elements and comments. This
allowed us to place comments in output in a very precise and satisfactory
fashion.
2019-05-08 22:03:21 +02:00
mrkkrp
6f169f2969
Include debugging option in ‘Config’
2019-02-28 22:22:10 +01:00
mrkkrp
2f73bae977
Implement CLI for the application
2019-02-28 22:22:10 +01:00
mrkkrp
b2e05d6f65
Throw exception when CPP is enabled (plus some refactoring)
2019-02-28 22:22:10 +01:00
mrkkrp
120b4caefc
Implement handling of comments and printing of module headers
2019-02-21 18:15:27 +01:00
mrkkrp
fcd35a1faa
Implement pretty printing combinators
2019-01-28 19:26:13 +01:00
mrkkrp
02c6a58f27
Implement basic parser for fooling around
2018-12-08 17:34:26 +07:00
mrkkrp
dc6605107a
Initial commit
2018-11-25 20:51:22 +07:00