Take Cabal default-extensions into account
eschnett opened this issue · comments
I just received this error message from hfmt
:
$ hfmt lib/Category.hs
"Error reformatting lib/Category.hs: Error in stylish-haskell: Language.Haskell.Stylish.Parse.parseModule: could not parse lib/Category.hs: ParseFailed (SrcLoc \"<unknown>.hs\" 19 27) \"DataKinds language extension is not enabled. Please add {-# LANGUAGE DataKinds #-} pragma at the top of your module.\""
I have a .cabal
file in my project that lists a large number of extensions
default-extensions: ApplicativeDo BangPatterns BinaryLiterals ConstraintKinds DataKinds DefaultSignatures DeriveFoldable DeriveFunctor DeriveGeneric DeriveLift DeriveTraversable DerivingStrategies EmptyCase ExistentialQuantification FlexibleContexts FlexibleInstances FunctionalDependencies GADTs GeneralizedNewtypeDeriving InstanceSigs KindSignatures LambdaCase MultiParamTypeClasses MultiWayIf NamedFieldPuns OverloadedLists OverloadedStrings ParallelListComp PatternSynonyms RankNTypes ScopedTypeVariables StandaloneDeriving TupleSections TypeApplications TypeFamilies TypeFamilyDependencies TypeOperators TypeSynonymInstances UnicodeSyntax AllowAmbiguousTypes MonadComprehensions PackageImports PolyKinds TypeInType
It would be convenient if hfmt
was taking these into account.
Agreed that would be convenient. However hfmt
is just a wrapper of some existing libraries, so I depend on them having support for this kind of thing. In this case I believe there is already an open issue about adding support for hpack's default-extensions field to stylish-haskell: haskell/stylish-haskell#138
If that gets solves in stylish-haskell it will also fix hfmt
. I haven't been doing much Haskell lately so I probably won't take the lead on that, but I'm sure stylish-haskell would be open to a contribution!