diff --git a/hls-fourmolu-plugin.cabal b/hls-fourmolu-plugin.cabal
--- a/hls-fourmolu-plugin.cabal
+++ b/hls-fourmolu-plugin.cabal
@@ -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
diff --git a/src/Ide/Plugin/Fourmolu.hs b/src/Ide/Plugin/Fourmolu.hs
--- a/src/Ide/Plugin/Fourmolu.hs
+++ b/src/Ide/Plugin/Fourmolu.hs
@@ -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
diff --git a/test/Main.hs b/test/Main.hs
--- a/test/Main.hs
+++ b/test/Main.hs
@@ -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"
diff --git a/test/testdata/Fourmolu3.formatted.hs b/test/testdata/Fourmolu3.formatted.hs
new file mode 100644
--- /dev/null
+++ b/test/testdata/Fourmolu3.formatted.hs
@@ -0,0 +1,7 @@
+b :: Bool
+b =
+    id $
+        id $
+            case True && True of
+                True -> True
+                False -> False
diff --git a/test/testdata/Fourmolu3.hs b/test/testdata/Fourmolu3.hs
new file mode 100644
--- /dev/null
+++ b/test/testdata/Fourmolu3.hs
@@ -0,0 +1,6 @@
+b :: Bool
+b =
+    id $ id $
+        case True && True of
+            True -> True
+            False -> False
