diff --git a/plugins/hls-stan-plugin/src/Ide/Plugin/Stan.hs b/plugins/hls-stan-plugin/src/Ide/Plugin/Stan.hs index f45a604a67..63e4de376d 100644 --- a/plugins/hls-stan-plugin/src/Ide/Plugin/Stan.hs +++ b/plugins/hls-stan-plugin/src/Ide/Plugin/Stan.hs @@ -32,6 +32,7 @@ import GHC.Generics (Generic) import Ide.Plugin.Config import Ide.Types (PluginDescriptor (..), PluginId, configHasDiagnostics, + configInitialGenericConfig, defaultConfigDescriptor, defaultPluginDescriptor, pluginEnabledConfig) @@ -46,11 +47,17 @@ import Stan.Observation (Observation (..)) descriptor :: Recorder (WithPriority Log) -> PluginId -> PluginDescriptor IdeState descriptor recorder plId = (defaultPluginDescriptor plId desc) { pluginRules = rules recorder plId - , pluginConfigDescriptor = defaultConfigDescriptor + , pluginConfigDescriptor = defConfigDescriptor { configHasDiagnostics = True + -- We disable this plugin by default because users have been complaining about + -- the diagnostics, see https://github.com/haskell/haskell-language-server/issues/3916 + , configInitialGenericConfig = (configInitialGenericConfig defConfigDescriptor) + { plcGlobalOn = False + } } } where + defConfigDescriptor = defaultConfigDescriptor desc = "Provides stan diagnostics. Built with stan-" <> VERSION_stan newtype Log = LogShake Shake.Log deriving (Show) diff --git a/plugins/hls-stan-plugin/test/Main.hs b/plugins/hls-stan-plugin/test/Main.hs index 6c27e399d3..81d23ec928 100644 --- a/plugins/hls-stan-plugin/test/Main.hs +++ b/plugins/hls-stan-plugin/test/Main.hs @@ -10,6 +10,7 @@ import Data.Text (Text) import qualified Data.Text as T import qualified Data.Text.IO as T import qualified Ide.Plugin.Stan as Stan +import Ide.Types import qualified Language.LSP.Protocol.Lens as L import System.FilePath import Test.Hls @@ -39,7 +40,20 @@ testDir :: FilePath testDir = "test/testdata" stanPlugin :: PluginTestDescriptor Stan.Log -stanPlugin = mkPluginTestDescriptor Stan.descriptor "stan" +stanPlugin = mkPluginTestDescriptor enabledStanDescriptor "stan" + where + -- We have to explicitly enable the plugin as it is disabled by default as + -- per request: https://github.com/haskell/haskell-language-server/issues/3916 + -- + enabledStanDescriptor recorder plId = + let stanPluginDescriptor = Stan.descriptor recorder plId + in stanPluginDescriptor + { pluginConfigDescriptor = (pluginConfigDescriptor stanPluginDescriptor) + { configInitialGenericConfig = (configInitialGenericConfig (pluginConfigDescriptor stanPluginDescriptor)) + { plcGlobalOn = True + } + } + } runStanSession :: FilePath -> Session a -> IO a runStanSession subdir =