hls-fourmolu-plugin 2.4.0.0 → 2.5.0.0
raw patch · 5 files changed
+35/−19 lines, 5 filesdep ~ghcidedep ~hls-plugin-apidep ~hls-test-utilsPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: ghcide, hls-plugin-api, hls-test-utils
API changes (from Hackage documentation)
Files
- hls-fourmolu-plugin.cabal +4/−4
- src/Ide/Plugin/Fourmolu.hs +14/−14
- test/Main.hs +4/−1
- test/testdata/Fourmolu3.formatted.hs +7/−0
- test/testdata/Fourmolu3.hs +6/−0
hls-fourmolu-plugin.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.4 name: hls-fourmolu-plugin-version: 2.4.0.0+version: 2.5.0.0 synopsis: Integration with the Fourmolu code formatter description: Please see the README on GitHub at <https://github.com/haskell/haskell-language-server#readme>@@ -37,8 +37,8 @@ , filepath , ghc , ghc-boot-th- , ghcide == 2.4.0.0- , hls-plugin-api == 2.4.0.0+ , ghcide == 2.5.0.0+ , hls-plugin-api == 2.5.0.0 , lens , lsp , mtl@@ -77,5 +77,5 @@ , filepath , hls-fourmolu-plugin , hls-plugin-api- , hls-test-utils == 2.4.0.0+ , hls-test-utils == 2.5.0.0 , lsp-test
src/Ide/Plugin/Fourmolu.hs view
@@ -1,13 +1,12 @@-{-# LANGUAGE CPP #-}-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE DisambiguateRecordFields #-}-{-# LANGUAGE LambdaCase #-}-{-# LANGUAGE NamedFieldPuns #-}-{-# LANGUAGE OverloadedLabels #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE TypeApplications #-}-{-# LANGUAGE TypeOperators #-}+{-# LANGUAGE CPP #-}+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedLabels #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeApplications #-}+{-# LANGUAGE TypeOperators #-} module Ide.Plugin.Fourmolu ( descriptor,@@ -15,15 +14,13 @@ LogEvent, ) where -import Control.Exception (IOException, handle, try)+import Control.Exception import Control.Lens ((^.)) import Control.Monad (guard) import Control.Monad.Error.Class (MonadError (throwError))-import Control.Monad.Trans.Except (ExceptT (..), mapExceptT,- runExceptT)- import Control.Monad.IO.Class (MonadIO (liftIO)) import Control.Monad.Trans.Class (MonadTrans (lift))+import Control.Monad.Trans.Except (ExceptT (..), runExceptT) import Data.Bifunctor (bimap) import Data.List (intercalate) import Data.Maybe (catMaybes)@@ -96,6 +93,9 @@ errorMessage = "Failed to load " <> T.pack f <> ": " <> T.pack (show err) let config =+#if MIN_VERSION_fourmolu(0,13,0)+ refineConfig ModuleSource Nothing Nothing Nothing+#endif defaultConfig { cfgDynOptions = map DynOption fileOpts , cfgFixityOverrides = cfgFileFixities
test/Main.hs view
@@ -4,6 +4,7 @@ ) where import Data.Aeson+import qualified Data.Aeson.KeyMap as KM import Data.Functor import Ide.Plugin.Config import qualified Ide.Plugin.Fourmolu as Fourmolu@@ -28,12 +29,14 @@ formatDoc doc (FormattingOptions 4 True Nothing Nothing Nothing) , goldenWithFourmolu cli "formats imports correctly" "Fourmolu2" "formatted" $ \doc -> do formatDoc doc (FormattingOptions 4 True Nothing Nothing Nothing)+ , goldenWithFourmolu cli "uses correct operator fixities" "Fourmolu3" "formatted" $ \doc -> do+ formatDoc doc (FormattingOptions 4 True Nothing Nothing Nothing) ] goldenWithFourmolu :: Bool -> TestName -> FilePath -> FilePath -> (TextDocumentIdentifier -> Session ()) -> TestTree goldenWithFourmolu cli title path desc = goldenWithHaskellDocFormatter def fourmoluPlugin "fourmolu" conf title testDataDir path desc "hs" where- conf = def{plcConfig = (\(Object obj) -> obj) $ object ["external" .= cli]}+ conf = def{plcConfig = KM.fromList ["external" .= cli]} testDataDir :: FilePath testDataDir = "test" </> "testdata"
+ test/testdata/Fourmolu3.formatted.hs view
@@ -0,0 +1,7 @@+b :: Bool+b =+ id $+ id $+ case True && True of+ True -> True+ False -> False
+ test/testdata/Fourmolu3.hs view
@@ -0,0 +1,6 @@+b :: Bool+b =+ id $ id $+ case True && True of+ True -> True+ False -> False