diff --git a/hls-eval-plugin.cabal b/hls-eval-plugin.cabal
--- a/hls-eval-plugin.cabal
+++ b/hls-eval-plugin.cabal
@@ -1,6 +1,6 @@
 cabal-version:      2.4
 name:               hls-eval-plugin
-version:            1.3.0.0
+version:            1.4.0.0
 synopsis:           Eval plugin for Haskell Language Server
 description:
   Please see the README on GitHub at <https://github.com/haskell/haskell-language-server#readme>
@@ -70,10 +70,10 @@
     , ghc
     , ghc-boot-th
     , ghc-paths
-    , ghcide                ^>=1.8
+    , ghcide                ^>=1.9
     , hashable
     , hls-graph
-    , hls-plugin-api        ^>=1.5
+    , hls-plugin-api        ^>=1.6
     , lens
     , lsp
     , lsp-types
@@ -119,7 +119,7 @@
     , filepath
     , hls-eval-plugin
     , hls-plugin-api
-    , hls-test-utils   ^>=1.4
+    , hls-test-utils   ^>=1.5
     , lens
     , lsp-types
     , text
diff --git a/src/Ide/Plugin/Eval/CodeLens.hs b/src/Ide/Plugin/Eval/CodeLens.hs
--- a/src/Ide/Plugin/Eval/CodeLens.hs
+++ b/src/Ide/Plugin/Eval/CodeLens.hs
@@ -32,7 +32,6 @@
 import           Control.Monad                                (guard, join,
                                                                void, when)
 import           Control.Monad.IO.Class                       (MonadIO (liftIO))
-import           Control.Monad.Trans                          (lift)
 import           Control.Monad.Trans.Except                   (ExceptT (..))
 import           Data.Aeson                                   (toJSON)
 import           Data.Char                                    (isSpace)
@@ -102,7 +101,6 @@
 
 import           Development.IDE.Core.FileStore               (setSomethingModified)
 import           Development.IDE.Types.Shake                  (toKey)
-import           Ide.Plugin.Config                            (Config)
 #if MIN_VERSION_ghc(9,2,0)
 import           GHC.Types.SrcLoc                             (UnhelpfulSpanReason (UnhelpfulInteractive))
 #endif
@@ -305,9 +303,6 @@
 #endif
 
                 -- Load the module with its current content (as the saved module might not be up to date)
-                -- BUG: this fails for files that requires preprocessors (e.g. CPP) for ghc < 8.8
-                -- see https://gitlab.haskell.org/ghc/ghc/-/issues/17066
-                -- and https://hackage.haskell.org/package/ghc-8.10.1/docs/GHC.html#v:TargetFile
                 eSetTarget <- gStrictTry $ setTargets [thisModuleTarget]
                 dbg "setTarget" eSetTarget
 
@@ -323,7 +318,7 @@
                         -- Evaluation takes place 'inside' the module
                         setContext [Compat.IIModule modName]
                         Right <$> getSession
-            evalCfg <- lift $ getEvalConfig plId
+            evalCfg <- liftIO $ runAction "eval: config" st $ getEvalConfig plId
 
             -- Get linkables for all modules below us
             -- This can be optimised to only get the linkables for the symbols depended on by
diff --git a/src/Ide/Plugin/Eval/Config.hs b/src/Ide/Plugin/Eval/Config.hs
--- a/src/Ide/Plugin/Eval/Config.hs
+++ b/src/Ide/Plugin/Eval/Config.hs
@@ -7,11 +7,9 @@
   , EvalConfig(..)
   ) where
 
-import           Ide.Plugin.Config     (Config)
+import           Development.IDE
 import           Ide.Plugin.Properties
-import           Ide.PluginUtils       (usePropertyLsp)
 import           Ide.Types             (PluginId)
-import           Language.LSP.Server   (MonadLsp)
 
 -- | The Eval plugin configuration. (see 'properties')
 data EvalConfig = EvalConfig
@@ -30,8 +28,8 @@
   & defineBooleanProperty #exception
     "Enable marking exceptions with `*** Exception:` similarly to doctest and GHCi." False
 
-getEvalConfig :: (MonadLsp Config m) => PluginId -> m EvalConfig
+getEvalConfig :: PluginId -> Action EvalConfig
 getEvalConfig plId =
     EvalConfig
-    <$> usePropertyLsp #diff plId properties
-    <*> usePropertyLsp #exception plId properties
+    <$> usePropertyAction #diff plId properties
+    <*> usePropertyAction #exception plId properties
diff --git a/test/Main.hs b/test/Main.hs
--- a/test/Main.hs
+++ b/test/Main.hs
@@ -29,8 +29,8 @@
 main :: IO ()
 main = defaultTestRunner tests
 
-evalPlugin :: PluginDescriptor IdeState
-evalPlugin = Eval.descriptor mempty "eval"
+evalPlugin :: PluginTestDescriptor Eval.Log
+evalPlugin = mkPluginTestDescriptor Eval.descriptor "eval"
 
 tests :: TestTree
 tests =
@@ -140,13 +140,10 @@
   , goldenWithEval "Can handle eval inside nested comment properly" "TNested" "hs"
   , goldenWithEval "Test on last line insert results correctly" "TLastLine" "hs"
   , testGroup "with preprocessors"
-    [ knownBrokenInEnv [HostOS Windows, GhcVer GHC86]
+    [ knownBrokenInEnv [HostOS Windows]
         "CPP eval on Windows and/or GHC <= 8.6 fails for some reasons" $
-          goldenWithEval "CPP support" "TCPP" "hs"
-    , knownBrokenForGhcVersions [GHC86]
-        "Preprocessor known to fail on GHC <= 8.6" $
-          goldenWithEval "Literate Haskell Bird Style" "TLHS" "lhs"
-    -- , goldenWithEval "Literate Haskell LaTeX Style" "TLHSLateX" "lhs"
+        goldenWithEval "CPP support" "TCPP" "hs"
+    , goldenWithEval "Literate Haskell Bird Style" "TLHS" "lhs"
     ]
   , goldenWithEval "Works with NoImplicitPrelude" "TNoImplicitPrelude" "hs"
   , goldenWithEval "Variable 'it' works" "TIt" "hs"
