@@ -49,7 +49,8 @@ import qualified Language.LSP.Server as LSP
4949import Language.LSP.VFS
5050import Prettyprinter.Render.String (renderString )
5151import Text.Regex.TDFA.Text ()
52- import UnliftIO (MonadUnliftIO , liftIO )
52+ import UnliftIO (MonadUnliftIO , liftIO ,
53+ readTVarIO )
5354import UnliftIO.Async (forConcurrently )
5455import UnliftIO.Exception (catchAny )
5556
@@ -251,11 +252,12 @@ extensiblePlugins recorder plugins = mempty { P.pluginHandlers = handlers }
251252 handlers = mconcat $ do
252253 (IdeMethod m :=> IdeHandler fs') <- DMap. assocs handlers'
253254 pure $ requestHandler m $ \ ide params -> do
255+ vfs <- readTVarIO $ vfsVar $ shakeExtras ide
254256 config <- Ide.PluginUtils. getClientConfig
255257 -- Only run plugins that are allowed to run on this request, save the
256258 -- list of disabled plugins incase that's all we have
257- let (fs, dfs) = List. partition (\ (_, desc, _) -> handlesRequest m params desc config == HandlesRequest ) fs'
258- let disabledPluginsReason = (\ (x, desc, _) -> (x, handlesRequest m params desc config)) <$> dfs
259+ let (fs, dfs) = List. partition (\ (_, desc, _) -> handlesRequest vfs m params desc config == HandlesRequest ) fs'
260+ let disabledPluginsReason = (\ (x, desc, _) -> (x, handlesRequest vfs m params desc config)) <$> dfs
259261 -- Clients generally don't display ResponseErrors so instead we log any that we come across
260262 -- However, some clients do display ResponseErrors! See for example the issues:
261263 -- https://github.com/haskell/haskell-language-server/issues/4467
@@ -370,7 +372,7 @@ extensibleNotificationPlugins recorder xs = mempty { P.pluginHandlers = handlers
370372 pure $ notificationHandler m $ \ ide vfs params -> do
371373 config <- Ide.PluginUtils. getClientConfig
372374 -- Only run plugins that are enabled for this request
373- let fs = filter (\ (_, desc, _) -> handlesRequest m params desc config == HandlesRequest ) fs'
375+ let fs = filter (\ (_, desc, _) -> handlesRequest vfs m params desc config == HandlesRequest ) fs'
374376 case nonEmpty fs of
375377 Nothing -> do
376378 logWith recorder Warning (LogNoPluginForMethod $ Some m)
0 commit comments