From 9c39aa4205bfc6a3870ba97294bbea7b2c76b66a Mon Sep 17 00:00:00 2001 From: lunaticare Date: Sun, 24 Jul 2022 10:32:42 +0100 Subject: [PATCH] Run pre-commit hooks --- exe/Main.hs | 16 +- exe/Wrapper.hs | 57 +++--- ghcide/bench/lib/Experiments.hs | 29 ++- ghcide/exe/Main.hs | 78 +++---- .../session-loader/Development/IDE/Session.hs | 6 +- .../Development/IDE/Session/VersionCheck.hs | 2 +- ghcide/src/Development/IDE.hs | 6 +- ghcide/src/Development/IDE/Core/Compile.hs | 39 ++-- ghcide/src/Development/IDE/Core/FileStore.hs | 2 +- ghcide/src/Development/IDE/Core/FileUtils.hs | 7 +- .../Development/IDE/Core/IdeConfiguration.hs | 2 +- .../src/Development/IDE/Core/Preprocessor.hs | 2 +- .../Development/IDE/GHC/Compat/Outputable.hs | 9 +- ghcide/src/Development/IDE/GHC/CoreFile.hs | 70 +++---- ghcide/src/Development/IDE/GHC/Dump.hs | 2 +- ghcide/src/Development/IDE/GHC/ExactPrint.hs | 2 +- ghcide/src/Development/IDE/GHC/Orphans.hs | 8 +- ghcide/src/Development/IDE/Monitoring/EKG.hs | 4 +- ghcide/src/Development/IDE/Plugin/Test.hs | 2 +- .../src/Development/IDE/Plugin/TypeLenses.hs | 2 +- ghcide/src/Development/IDE/Types/Action.hs | 2 +- ghcide/src/Development/IDE/Types/Exports.hs | 4 +- .../src/Development/IDE/Types/KnownTargets.hs | 2 +- .../src/Development/IDE/Types/Monitoring.hs | 4 +- ghcide/src/Development/IDE/Types/Shake.hs | 2 +- ghcide/src/Text/Fuzzy/Parallel.hs | 4 +- ghcide/test/exe/FuzzySearch.hs | 36 ++-- ghcide/test/src/Development/IDE/Test.hs | 2 +- .../Development/IDE/Graph/Internal/Action.hs | 4 +- .../IDE/Graph/Internal/Database.hs | 10 +- .../Development/IDE/Graph/Internal/Types.hs | 8 +- hls-graph/test/ActionSpec.hs | 29 +-- hls-graph/test/DatabaseSpec.hs | 29 +-- hls-graph/test/Example.hs | 20 +- hls-graph/test/Main.hs | 6 +- hls-graph/test/RulesSpec.hs | 2 +- hls-plugin-api/src/Ide/Types.hs | 4 +- plugins/default/src/Ide/Plugin/Example.hs | 2 +- plugins/default/src/Ide/Plugin/Example2.hs | 2 +- .../default/src/Ide/Plugin/ExampleCabal.hs | 26 +-- .../src/Ide/Plugin/Literals.hs | 2 +- .../src/Ide/Plugin/Eval/CodeLens.hs | 190 ++++++++++-------- .../src/Ide/Plugin/Eval/Config.hs | 4 +- .../src/Ide/Plugin/Eval/Parse/Comments.hs | 2 +- plugins/hls-eval-plugin/test/Main.hs | 2 +- .../src/Ide/Plugin/ExplicitImports.hs | 2 +- .../src/Ide/Plugin/ModuleName.hs | 3 +- .../src/Development/Benchmark/Rules.hs | 11 +- 48 files changed, 405 insertions(+), 354 deletions(-) diff --git a/exe/Main.hs b/exe/Main.hs index 6257b72a3c..098a427ef9 100644 --- a/exe/Main.hs +++ b/exe/Main.hs @@ -7,20 +7,26 @@ module Main(main) where import Control.Monad.IO.Class (liftIO) import Data.Function ((&)) -import Data.Text (Text) -import qualified Development.IDE.Types.Logger as Logger -import Development.IDE.Types.Logger (Priority (Debug, Info, Error), +import Data.Text (Text) +import Development.IDE.Types.Logger (Doc, + Priority (Debug, Error, Info), WithPriority (WithPriority, priority), cfilter, cmapWithPrio, + defaultLayoutOptions, + layoutPretty, makeDefaultStderrRecorder, - withDefaultRecorder, renderStrict, layoutPretty, defaultLayoutOptions, Doc) + renderStrict, + withDefaultRecorder) +import qualified Development.IDE.Types.Logger as Logger import Ide.Arguments (Arguments (..), GhcideArguments (..), getArguments) import Ide.Main (defaultMain) import qualified Ide.Main as IdeMain import Ide.PluginUtils (pluginDescToIdePlugins) -import Ide.Types (PluginDescriptor (pluginNotificationHandlers), defaultPluginDescriptor, mkPluginNotificationHandler) +import Ide.Types (PluginDescriptor (pluginNotificationHandlers), + defaultPluginDescriptor, + mkPluginNotificationHandler) import Language.LSP.Server as LSP import Language.LSP.Types as LSP import qualified Plugins diff --git a/exe/Wrapper.hs b/exe/Wrapper.hs index 23cc153215..83f10cedb2 100644 --- a/exe/Wrapper.hs +++ b/exe/Wrapper.hs @@ -12,13 +12,13 @@ module Main where import Control.Monad.Extra -import Data.Char (isSpace) +import Data.Char (isSpace) import Data.Default import Data.Foldable import Data.List import Data.Void -import qualified Development.IDE.Session as Session -import qualified HIE.Bios.Environment as HieBios +import qualified Development.IDE.Session as Session +import qualified HIE.Bios.Environment as HieBios import HIE.Bios.Types import Ide.Arguments import Ide.Version @@ -26,36 +26,43 @@ import System.Directory import System.Environment import System.Exit import System.FilePath -import System.IO import System.Info +import System.IO #ifndef mingw32_HOST_OS -import System.Posix.Process (executeFile) -import qualified Data.Map.Strict as Map +import qualified Data.Map.Strict as Map +import System.Posix.Process (executeFile) #else import System.Process #endif -import qualified Data.Text.IO as T -import Control.Monad.Trans.Except (ExceptT, runExceptT, throwE) -import qualified Data.Text as T -import Language.LSP.Server (LspM) -import Control.Monad.IO.Class (MonadIO (liftIO)) -import Control.Monad.IO.Unlift (MonadUnliftIO) -import qualified Language.LSP.Server as LSP -import qualified Development.IDE.Main as Main -import Ide.Plugin.Config (Config) -import Language.LSP.Types (RequestMessage, ResponseError, MessageActionItem (MessageActionItem), Method(Initialize), MessageType (MtError), SMethod (SWindowShowMessageRequest, SExit), ShowMessageRequestParams (ShowMessageRequestParams)) -import Development.IDE.Types.Logger ( makeDefaultStderrRecorder, - cmapWithPrio, - Pretty(pretty), - Logger(Logger), - Priority(Error, Debug, Info, Warning), - Recorder(logger_), - WithPriority(WithPriority) ) +import Control.Concurrent (tryPutMVar) +import Control.Monad.IO.Class (MonadIO (liftIO)) +import Control.Monad.IO.Unlift (MonadUnliftIO) +import Control.Monad.Trans.Except (ExceptT, runExceptT, + throwE) import Data.Maybe -import GHC.Stack.Types (emptyCallStack) -import Control.Concurrent (tryPutMVar) +import qualified Data.Text as T +import qualified Data.Text.IO as T import Development.IDE.LSP.LanguageServer (runLanguageServer) +import qualified Development.IDE.Main as Main +import Development.IDE.Types.Logger (Logger (Logger), + Pretty (pretty), + Priority (Debug, Error, Info, Warning), + Recorder (logger_), + WithPriority (WithPriority), + cmapWithPrio, + makeDefaultStderrRecorder) +import GHC.Stack.Types (emptyCallStack) import HIE.Bios.Internal.Log +import Ide.Plugin.Config (Config) +import Language.LSP.Server (LspM) +import qualified Language.LSP.Server as LSP +import Language.LSP.Types (MessageActionItem (MessageActionItem), + MessageType (MtError), + Method (Initialize), + RequestMessage, + ResponseError, + SMethod (SExit, SWindowShowMessageRequest), + ShowMessageRequestParams (ShowMessageRequestParams)) -- --------------------------------------------------------------------- diff --git a/ghcide/bench/lib/Experiments.hs b/ghcide/bench/lib/Experiments.hs index 159f0addb9..df58577e6c 100644 --- a/ghcide/bench/lib/Experiments.hs +++ b/ghcide/bench/lib/Experiments.hs @@ -37,9 +37,8 @@ import Development.IDE.Test (getBuildEdgesCount, getBuildKeysBuilt, getBuildKeysChanged, getBuildKeysVisited, - getStoredKeys, getRebuildsCount, - ) + getStoredKeys) import Development.IDE.Test.Diagnostic import Development.Shake (CmdOption (Cwd, FileStdout), cmd_) @@ -428,20 +427,20 @@ runBenchmarksFun dir allBenchmarks = do } data BenchRun = BenchRun - { startup :: !Seconds, - runSetup :: !Seconds, - runExperiment :: !Seconds, - userWaits :: !Seconds, - delayedWork :: !Seconds, - firstResponse :: !Seconds, + { startup :: !Seconds, + runSetup :: !Seconds, + runExperiment :: !Seconds, + userWaits :: !Seconds, + delayedWork :: !Seconds, + firstResponse :: !Seconds, firstResponseDelayed :: !Seconds, - rulesBuilt :: !Int, - rulesChanged :: !Int, - rulesVisited :: !Int, - rulesTotal :: !Int, - edgesTotal :: !Int, - rebuildsTotal :: !Int, - success :: !Bool + rulesBuilt :: !Int, + rulesChanged :: !Int, + rulesVisited :: !Int, + rulesTotal :: !Int, + edgesTotal :: !Int, + rebuildsTotal :: !Int, + success :: !Bool } badRun :: BenchRun diff --git a/ghcide/exe/Main.hs b/ghcide/exe/Main.hs index 538367c3bd..ec5fe8518a 100644 --- a/ghcide/exe/Main.hs +++ b/ghcide/exe/Main.hs @@ -5,44 +5,50 @@ module Main(main) where -import Arguments (Arguments (..), - getArguments) -import Control.Monad.Extra (unless) -import Control.Monad.IO.Class (liftIO) -import Data.Default (def) -import Data.Function ((&)) -import Data.Version (showVersion) -import Development.GitRev (gitHash) -import Development.IDE (action) -import Development.IDE.Core.OfInterest (kick) -import Development.IDE.Core.Rules (mainRule) -import qualified Development.IDE.Core.Rules as Rules -import Development.IDE.Core.Tracing (withTelemetryLogger) -import qualified Development.IDE.Main as IDEMain +import Arguments (Arguments (..), + getArguments) +import Control.Monad.Extra (unless) +import Control.Monad.IO.Class (liftIO) +import Data.Default (def) +import Data.Function ((&)) +import Data.Version (showVersion) +import Development.GitRev (gitHash) +import Development.IDE (action) +import Development.IDE.Core.OfInterest (kick) +import Development.IDE.Core.Rules (mainRule) +import qualified Development.IDE.Core.Rules as Rules +import Development.IDE.Core.Tracing (withTelemetryLogger) +import qualified Development.IDE.Main as IDEMain +import qualified Development.IDE.Monitoring.EKG as EKG import qualified Development.IDE.Monitoring.OpenTelemetry as OpenTelemetry -import qualified Development.IDE.Monitoring.EKG as EKG -import qualified Development.IDE.Plugin.HLS.GhcIde as GhcIde -import Development.IDE.Types.Logger (Logger (Logger), - LoggingColumn (DataColumn, PriorityColumn), - Pretty (pretty), - Priority (Debug, Info, Error), - WithPriority (WithPriority, priority), - cfilter, cmapWithPrio, - makeDefaultStderrRecorder, layoutPretty, renderStrict, defaultLayoutOptions) -import qualified Development.IDE.Types.Logger as Logger +import qualified Development.IDE.Plugin.HLS.GhcIde as GhcIde +import Development.IDE.Types.Logger (Logger (Logger), + LoggingColumn (DataColumn, PriorityColumn), + Pretty (pretty), + Priority (Debug, Error, Info), + WithPriority (WithPriority, priority), + cfilter, + cmapWithPrio, + defaultLayoutOptions, + layoutPretty, + makeDefaultStderrRecorder, + renderStrict) +import qualified Development.IDE.Types.Logger as Logger import Development.IDE.Types.Options -import GHC.Stack (emptyCallStack) -import Language.LSP.Server as LSP -import Language.LSP.Types as LSP -import Ide.Plugin.Config (Config (checkParents, checkProject)) -import Ide.PluginUtils (pluginDescToIdePlugins) -import Ide.Types (PluginDescriptor (pluginNotificationHandlers), defaultPluginDescriptor, mkPluginNotificationHandler) -import Paths_ghcide (version) -import qualified System.Directory.Extra as IO -import System.Environment (getExecutablePath) -import System.Exit (exitSuccess) -import System.IO (hPutStrLn, stderr) -import System.Info (compilerVersion) +import GHC.Stack (emptyCallStack) +import Ide.Plugin.Config (Config (checkParents, checkProject)) +import Ide.PluginUtils (pluginDescToIdePlugins) +import Ide.Types (PluginDescriptor (pluginNotificationHandlers), + defaultPluginDescriptor, + mkPluginNotificationHandler) +import Language.LSP.Server as LSP +import Language.LSP.Types as LSP +import Paths_ghcide (version) +import qualified System.Directory.Extra as IO +import System.Environment (getExecutablePath) +import System.Exit (exitSuccess) +import System.Info (compilerVersion) +import System.IO (hPutStrLn, stderr) data Log = LogIDEMain IDEMain.Log diff --git a/ghcide/session-loader/Development/IDE/Session.hs b/ghcide/session-loader/Development/IDE/Session.hs index 44ba1c0728..4a3e932025 100644 --- a/ghcide/session-loader/Development/IDE/Session.hs +++ b/ghcide/session-loader/Development/IDE/Session.hs @@ -36,8 +36,8 @@ import qualified Data.ByteString.Char8 as B import Data.Default import Data.Either.Extra import Data.Function -import qualified Data.HashMap.Strict as HM import Data.Hashable +import qualified Data.HashMap.Strict as HM import Data.IORef import Data.List import qualified Data.Map.Strict as Map @@ -87,6 +87,7 @@ import Data.Void import Control.Concurrent.STM.Stats (atomically, modifyTVar', readTVar, writeTVar) import Control.Concurrent.STM.TQueue +import Control.Monad.IO.Unlift (MonadUnliftIO) import Data.Foldable (for_) import Data.HashMap.Strict (HashMap) import Data.HashSet (HashSet) @@ -97,9 +98,8 @@ import Development.IDE.Types.Shake (WithHieDb) import HieDb.Create import HieDb.Types import HieDb.Utils -import System.Random (RandomGen) import qualified System.Random as Random -import Control.Monad.IO.Unlift (MonadUnliftIO) +import System.Random (RandomGen) data Log = LogSettingInitialDynFlags diff --git a/ghcide/session-loader/Development/IDE/Session/VersionCheck.hs b/ghcide/session-loader/Development/IDE/Session/VersionCheck.hs index a5fbda891c..80399846c3 100644 --- a/ghcide/session-loader/Development/IDE/Session/VersionCheck.hs +++ b/ghcide/session-loader/Development/IDE/Session/VersionCheck.hs @@ -5,7 +5,7 @@ -- See https://github.com/haskell/ghcide/pull/697 module Development.IDE.Session.VersionCheck (ghcVersionChecker) where -import GHC.Check +import GHC.Check -- Only use this for checking against the compile time GHC libDir! -- Use getRuntimeGhcLibDir from hie-bios instead for everything else -- otherwise binaries will not be distributable since paths will be baked into them diff --git a/ghcide/src/Development/IDE.hs b/ghcide/src/Development/IDE.hs index f4e998944a..6cc2989fd1 100644 --- a/ghcide/src/Development/IDE.hs +++ b/ghcide/src/Development/IDE.hs @@ -16,15 +16,16 @@ import Development.IDE.Core.FileStore as X (getFileContents) import Development.IDE.Core.IdeConfiguration as X (IdeConfiguration (..), isWorkspaceFile) import Development.IDE.Core.OfInterest as X (getFilesOfInterestUntracked) -import Development.IDE.Core.RuleTypes as X import Development.IDE.Core.Rules as X (getClientConfigAction, getParsedModule) +import Development.IDE.Core.RuleTypes as X import Development.IDE.Core.Service as X (runAction) import Development.IDE.Core.Shake as X (FastResult (..), IdeAction (..), IdeRule, IdeState, RuleBody (..), ShakeExtras, + VFSModified (..), actionLogger, define, defineEarlyCutoff, @@ -40,8 +41,7 @@ import Development.IDE.Core.Shake as X (FastResult (..), useWithStaleFast, useWithStaleFast', useWithStale_, - use_, uses, uses_, - VFSModified(..)) + use_, uses, uses_) import Development.IDE.GHC.Compat as X (GhcVersion (..), ghcVersion) import Development.IDE.GHC.Error as X diff --git a/ghcide/src/Development/IDE/Core/Compile.hs b/ghcide/src/Development/IDE/Core/Compile.hs index 7496b3d5fa..2430ec719a 100644 --- a/ghcide/src/Development/IDE/Core/Compile.hs +++ b/ghcide/src/Development/IDE/Core/Compile.hs @@ -38,14 +38,15 @@ module Development.IDE.Core.Compile import Control.Concurrent.Extra import Control.Concurrent.STM.Stats hiding (orElse) -import Control.DeepSeq (force, liftRnf, rnf, rwhnf, NFData(..)) +import Control.DeepSeq (NFData (..), force, liftRnf, + rnf, rwhnf) import Control.Exception (evaluate) import Control.Exception.Safe import Control.Lens hiding (List, (<.>)) import Control.Monad.Except import Control.Monad.Extra import Control.Monad.Trans.Except -import qualified Control.Monad.Trans.State.Strict as S +import qualified Control.Monad.Trans.State.Strict as S import Data.Aeson (toJSON) import Data.Bifunctor (first, second) import Data.Binary @@ -53,12 +54,12 @@ import qualified Data.ByteString as BS import Data.Coerce import qualified Data.DList as DL import Data.Functor -import Data.Generics.Schemes -import Data.Generics.Aliases +import Data.Generics.Aliases +import Data.Generics.Schemes import qualified Data.HashMap.Strict as HashMap -import Data.IORef import Data.IntMap (IntMap) import qualified Data.IntMap.Strict as IntMap +import Data.IORef import Data.List.Extra import Data.Map (Map) import qualified Data.Map.Strict as Map @@ -79,6 +80,7 @@ import Development.IDE.GHC.Compat hiding (loadInterface, import qualified Development.IDE.GHC.Compat as Compat import qualified Development.IDE.GHC.Compat as GHC import qualified Development.IDE.GHC.Compat.Util as Util +import Development.IDE.GHC.CoreFile import Development.IDE.GHC.Error import Development.IDE.GHC.Orphans () import Development.IDE.GHC.Util @@ -86,12 +88,10 @@ import Development.IDE.GHC.Warnings import Development.IDE.Types.Diagnostics import Development.IDE.Types.Location import Development.IDE.Types.Options -import Development.IDE.GHC.CoreFile import GHC (ForeignHValue, GetDocsFailure (..), - parsedSource, - GhcException(..) - ) + GhcException (..), + parsedSource) import qualified GHC.LanguageExtensions as LangExt import GHC.Serialized import HieDb @@ -111,25 +111,26 @@ import ErrUtils import GHC.Tc.Gen.Splice #if MIN_VERSION_ghc(9,2,1) -import GHC.Types.HpcInfo import GHC.Types.ForeignStubs +import GHC.Types.HpcInfo import GHC.Types.TypeEnv #else import GHC.Driver.Types #endif #else -import TcSplice import HscTypes +import TcSplice #endif #if MIN_VERSION_ghc(9,2,0) import GHC (Anchor (anchor), EpaComment (EpaComment), EpaCommentTok (EpaBlockComment, EpaLineComment), - epAnnComments, + ModuleGraph, epAnnComments, + mgLookupModule, + mgModSummaries, priorComments) -import GHC (ModuleGraph, mgLookupModule, mgModSummaries) import qualified GHC as G import GHC.Hs (LEpaComment) import qualified GHC.Types.Error as Error @@ -163,7 +164,7 @@ computePackageDeps env pkg = do data TypecheckHelpers = TypecheckHelpers { getLinkablesToKeep :: !(IO (ModuleEnv UTCTime)) - , getLinkables :: !([NormalizedFilePath] -> IO [LinkableResult]) + , getLinkables :: !([NormalizedFilePath] -> IO [LinkableResult]) } typecheckModule :: IdeDefer @@ -486,7 +487,7 @@ mkHiFileResultCompile se session' tcm simplified_guts = catchErrs $ do in setIdOccInfo v' noOccInfo else v isOtherUnfolding (OtherCon _) = True - isOtherUnfolding _ = False + isOtherUnfolding _ = False when (not $ null diffs) $ @@ -1229,7 +1230,7 @@ data RecompilationInfo m data IdeLinkable = GhcLinkable !Linkable | CoreLinkable !UTCTime !CoreFile instance NFData IdeLinkable where - rnf (GhcLinkable lb) = rnf lb + rnf (GhcLinkable lb) = rnf lb rnf (CoreLinkable time _) = rnf time ml_core_file :: ModLocation -> FilePath @@ -1258,7 +1259,7 @@ loadInterface session ms linkableNeeded RecompilationInfo{..} = do mb_dest_version <- case mb_old_version of Just ver -> pure $ Just ver - Nothing -> get_file_version (toNormalizedFilePath' iface_file) + Nothing -> get_file_version (toNormalizedFilePath' iface_file) -- The source is modified if it is newer than the destination (iface file) -- A more precise check for the core file is performed later @@ -1290,7 +1291,7 @@ loadInterface session ms linkableNeeded RecompilationInfo{..} = do maybe_recomp <- checkLinkableDependencies get_linkable_hashes (hsc_mod_graph sessionWithMsDynFlags) (hirRuntimeModules old_hir) case maybe_recomp of Just msg -> do_regenerate msg - Nothing -> return ([], Just old_hir) + Nothing -> return ([], Just old_hir) -- Otherwise use the value from disk, provided the core file is up to date if required _ -> do details <- liftIO $ mkDetailsFromIface sessionWithMsDynFlags iface @@ -1393,7 +1394,7 @@ coreFileToLinkable linkableType session ms iface details core_file t = do tyCons = typeEnvTyCons (md_types details) let cgi_guts = CgGuts this_mod tyCons (implicit_binds ++ core_binds) NoStubs [] [] (emptyHpcInfo False) Nothing [] (warns, lb) <- case linkableType of - BCOLinkable -> generateByteCode (CoreFileTime t) session ms cgi_guts + BCOLinkable -> generateByteCode (CoreFileTime t) session ms cgi_guts ObjectLinkable -> generateObjectCode session ms cgi_guts pure (warns, HomeModInfo iface details . Just <$> lb) diff --git a/ghcide/src/Development/IDE/Core/FileStore.hs b/ghcide/src/Development/IDE/Core/FileStore.hs index 849167988d..697df7c3fd 100644 --- a/ghcide/src/Development/IDE/Core/FileStore.hs +++ b/ghcide/src/Development/IDE/Core/FileStore.hs @@ -32,9 +32,9 @@ import qualified Data.Rope.UTF16 as Rope import qualified Data.Text as T import Data.Time import Data.Time.Clock.POSIX +import Development.IDE.Core.FileUtils import Development.IDE.Core.RuleTypes import Development.IDE.Core.Shake hiding (Log) -import Development.IDE.Core.FileUtils import Development.IDE.GHC.Orphans () import Development.IDE.Graph import Development.IDE.Import.DependencyInformation diff --git a/ghcide/src/Development/IDE/Core/FileUtils.hs b/ghcide/src/Development/IDE/Core/FileUtils.hs index 1cbfa0ee0b..4725ed83bd 100644 --- a/ghcide/src/Development/IDE/Core/FileUtils.hs +++ b/ghcide/src/Development/IDE/Core/FileUtils.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE CPP #-} +{-# LANGUAGE CPP #-} module Development.IDE.Core.FileUtils( getModTime, @@ -7,10 +7,9 @@ module Development.IDE.Core.FileUtils( import Data.Time.Clock.POSIX #ifdef mingw32_HOST_OS -import qualified System.Directory as Dir +import qualified System.Directory as Dir #else -import System.Posix.Files (getFileStatus, - modificationTimeHiRes) +import System.Posix.Files (getFileStatus, modificationTimeHiRes) #endif -- Dir.getModificationTime is surprisingly slow since it performs diff --git a/ghcide/src/Development/IDE/Core/IdeConfiguration.hs b/ghcide/src/Development/IDE/Core/IdeConfiguration.hs index b91301215f..c3b5323548 100644 --- a/ghcide/src/Development/IDE/Core/IdeConfiguration.hs +++ b/ghcide/src/Development/IDE/Core/IdeConfiguration.hs @@ -16,8 +16,8 @@ import Control.Concurrent.Strict import Control.Monad import Control.Monad.IO.Class import Data.Aeson.Types (Value) -import Data.HashSet (HashSet, singleton) import Data.Hashable (Hashed, hashed, unhashed) +import Data.HashSet (HashSet, singleton) import Data.Text (Text, isPrefixOf) import Development.IDE.Core.Shake import Development.IDE.Graph diff --git a/ghcide/src/Development/IDE/Core/Preprocessor.hs b/ghcide/src/Development/IDE/Core/Preprocessor.hs index 29fe43296e..678471c9c1 100644 --- a/ghcide/src/Development/IDE/Core/Preprocessor.hs +++ b/ghcide/src/Development/IDE/Core/Preprocessor.hs @@ -5,9 +5,9 @@ module Development.IDE.Core.Preprocessor ( preprocessor ) where -import Development.IDE.GHC.CPP import Development.IDE.GHC.Compat import qualified Development.IDE.GHC.Compat.Util as Util +import Development.IDE.GHC.CPP import Development.IDE.GHC.Orphans () import Control.DeepSeq (NFData (rnf)) diff --git a/ghcide/src/Development/IDE/GHC/Compat/Outputable.hs b/ghcide/src/Development/IDE/GHC/Compat/Outputable.hs index 8abff2c6ea..88bd76934e 100644 --- a/ghcide/src/Development/IDE/GHC/Compat/Outputable.hs +++ b/ghcide/src/Development/IDE/GHC/Compat/Outputable.hs @@ -44,7 +44,8 @@ import GHC.Types.SourceError import GHC.Types.SrcLoc import GHC.Unit.State import GHC.Utils.Error hiding (mkWarnMsg) -import GHC.Utils.Outputable as Out hiding (defaultUserStyle) +import GHC.Utils.Outputable as Out hiding + (defaultUserStyle) import qualified GHC.Utils.Outputable as Out import GHC.Utils.Panic #elif MIN_VERSION_ghc(9,0,0) @@ -54,7 +55,8 @@ import GHC.Types.Name.Reader (GlobalRdrEnv) import GHC.Types.SrcLoc import GHC.Utils.Error as Err hiding (mkWarnMsg) import qualified GHC.Utils.Error as Err -import GHC.Utils.Outputable as Out hiding (defaultUserStyle) +import GHC.Utils.Outputable as Out hiding + (defaultUserStyle) import qualified GHC.Utils.Outputable as Out #else import Development.IDE.GHC.Compat.Core (GlobalRdrEnv) @@ -62,7 +64,8 @@ import DynFlags import ErrUtils hiding (mkWarnMsg) import qualified ErrUtils as Err import HscTypes -import Outputable as Out hiding (defaultUserStyle) +import Outputable as Out hiding + (defaultUserStyle) import qualified Outputable as Out import SrcLoc #endif diff --git a/ghcide/src/Development/IDE/GHC/CoreFile.hs b/ghcide/src/Development/IDE/GHC/CoreFile.hs index 5f0cbd981c..dde331c6ce 100644 --- a/ghcide/src/Development/IDE/GHC/CoreFile.hs +++ b/ghcide/src/Development/IDE/GHC/CoreFile.hs @@ -1,6 +1,6 @@ -{-# LANGUAGE CPP #-} -{-# LANGUAGE RecordWildCards #-} +{-# LANGUAGE CPP #-} {-# LANGUAGE FlexibleInstances #-} +{-# LANGUAGE RecordWildCards #-} -- | CoreFiles let us serialize Core to a file in order to later recover it -- without reparsing or retypechecking @@ -12,45 +12,45 @@ module Development.IDE.GHC.CoreFile , writeBinCoreFile , getImplicitBinds) where -import GHC.Fingerprint -import Data.IORef -import Data.Foldable -import Data.List (isPrefixOf) -import Control.Monad.IO.Class -import Control.Monad -import Data.Maybe +import Control.Monad +import Control.Monad.IO.Class +import Data.Foldable +import Data.IORef +import Data.List (isPrefixOf) +import Data.Maybe +import GHC.Fingerprint -import Development.IDE.GHC.Compat +import Development.IDE.GHC.Compat #if MIN_VERSION_ghc(9,0,0) -import GHC.Utils.Binary -import GHC.Core -import GHC.CoreToIface -import GHC.IfaceToCore -import GHC.Iface.Env -import GHC.Iface.Binary -import GHC.Types.Id.Make -import GHC.Iface.Recomp.Binary ( fingerprintBinMem ) +import GHC.Core +import GHC.CoreToIface +import GHC.Iface.Binary +import GHC.Iface.Env +import GHC.Iface.Recomp.Binary (fingerprintBinMem) +import GHC.IfaceToCore +import GHC.Types.Id.Make +import GHC.Utils.Binary #if MIN_VERSION_ghc(9,2,0) -import GHC.Types.TypeEnv +import GHC.Types.TypeEnv #else -import GHC.Driver.Types +import GHC.Driver.Types #endif #elif MIN_VERSION_ghc(8,6,0) -import Binary -import CoreSyn -import ToIface -import TcIface -import IfaceEnv -import BinIface -import HscTypes -import IdInfo -import Var -import Unique -import MkId -import BinFingerprint ( fingerprintBinMem ) +import Binary +import BinFingerprint (fingerprintBinMem) +import BinIface +import CoreSyn +import HscTypes +import IdInfo +import IfaceEnv +import MkId +import TcIface +import ToIface +import Unique +import Var #endif import qualified Development.IDE.GHC.Compat.Util as Util @@ -61,7 +61,7 @@ initBinMemSize = 1024 * 1024 data CoreFile = CoreFile - { cf_bindings :: [TopIfaceBinding IfaceId] + { cf_bindings :: [TopIfaceBinding IfaceId] -- ^ The actual core file bindings, deserialized lazily , cf_iface_hash :: !Fingerprint } @@ -143,7 +143,7 @@ isNotImplictBind bind = any (not . isImplicitId) $ bindBindings bind bindBindings :: CoreBind -> [Var] bindBindings (NonRec b _) = [b] -bindBindings (Rec bnds) = map fst bnds +bindBindings (Rec bnds) = map fst bnds getImplicitBinds :: TyCon -> [CoreBind] getImplicitBinds tc = cls_binds ++ getTyConImplicitBinds tc @@ -219,7 +219,7 @@ tcIfaceId = fmap getIfaceId . tcIfaceDecl False <=< unmangle_decl_name | otherwise = pure ifid -- invariant: 'IfaceId' is always a 'IfaceId' constructor getIfaceId (AnId id) = id - getIfaceId _ = error "tcIfaceId: got non Id" + getIfaceId _ = error "tcIfaceId: got non Id" tc_iface_bindings :: TopIfaceBinding Id -> IfL CoreBind tc_iface_bindings (TopIfaceNonRec v e) = do diff --git a/ghcide/src/Development/IDE/GHC/Dump.hs b/ghcide/src/Development/IDE/GHC/Dump.hs index 40bd97b54c..a81d6e1215 100644 --- a/ghcide/src/Development/IDE/GHC/Dump.hs +++ b/ghcide/src/Development/IDE/GHC/Dump.hs @@ -10,8 +10,8 @@ import HsDumpAst #if MIN_VERSION_ghc(9,2,1) import qualified Data.ByteString as B import Development.IDE.GHC.Compat.Util -import GHC.Hs import Generics.SYB (ext1Q, ext2Q, extQ) +import GHC.Hs #endif #if MIN_VERSION_ghc(9,0,1) import GHC.Plugins diff --git a/ghcide/src/Development/IDE/GHC/ExactPrint.hs b/ghcide/src/Development/IDE/GHC/ExactPrint.hs index a2257250b4..f7a67d75bc 100644 --- a/ghcide/src/Development/IDE/GHC/ExactPrint.hs +++ b/ghcide/src/Development/IDE/GHC/ExactPrint.hs @@ -79,9 +79,9 @@ import Development.IDE.Types.Logger (Pretty (pretty), Recorder, WithPriority, cmapWithPrio) -import qualified GHC.Generics as GHC import Generics.SYB import Generics.SYB.GHC +import qualified GHC.Generics as GHC import Ide.PluginUtils import Language.Haskell.GHC.ExactPrint.Parsers import Language.LSP.Types diff --git a/ghcide/src/Development/IDE/GHC/Orphans.hs b/ghcide/src/Development/IDE/GHC/Orphans.hs index 3dfaaedf80..9ec6bfb5b8 100644 --- a/ghcide/src/Development/IDE/GHC/Orphans.hs +++ b/ghcide/src/Development/IDE/GHC/Orphans.hs @@ -41,9 +41,9 @@ import Data.Hashable import Data.String (IsString (fromString)) import Data.Text (unpack) #if MIN_VERSION_ghc(9,0,0) -import GHC.ByteCode.Types +import GHC.ByteCode.Types #else -import ByteCodeTypes +import ByteCodeTypes #endif -- Orphan instances for types from the GHC API. @@ -57,8 +57,8 @@ instance NFData SafeHaskellMode where rnf = rwhnf instance Show Linkable where show = unpack . printOutputable instance NFData Linkable where rnf (LM a b c) = rnf a `seq` rnf b `seq` rnf c instance NFData Unlinked where - rnf (DotO f) = rnf f - rnf (DotA f) = rnf f + rnf (DotO f) = rnf f + rnf (DotA f) = rnf f rnf (DotDLL f) = rnf f rnf (BCOs a b) = seqCompiledByteCode a `seq` liftRnf rwhnf b instance Show PackageFlag where show = unpack . printOutputable diff --git a/ghcide/src/Development/IDE/Monitoring/EKG.hs b/ghcide/src/Development/IDE/Monitoring/EKG.hs index 84bc85935a..2999285442 100644 --- a/ghcide/src/Development/IDE/Monitoring/EKG.hs +++ b/ghcide/src/Development/IDE/Monitoring/EKG.hs @@ -1,16 +1,16 @@ {-# LANGUAGE CPP #-} module Development.IDE.Monitoring.EKG(monitoring) where -import Development.IDE.Types.Monitoring (Monitoring (..)) import Development.IDE.Types.Logger (Logger) +import Development.IDE.Types.Monitoring (Monitoring (..)) #ifdef MONITORING_EKG import Control.Concurrent (killThread) import Control.Concurrent.Async (async, waitCatch) import Control.Monad (forM_) import Data.Text (pack) import Development.IDE.Types.Logger (logInfo) -import qualified System.Remote.Monitoring.Wai as Monitoring import qualified System.Metrics as Monitoring +import qualified System.Remote.Monitoring.Wai as Monitoring -- | Monitoring using EKG monitoring :: Logger -> Int -> IO Monitoring diff --git a/ghcide/src/Development/IDE/Plugin/Test.hs b/ghcide/src/Development/IDE/Plugin/Test.hs index 86df7807c2..9932e1dc3a 100644 --- a/ghcide/src/Development/IDE/Plugin/Test.hs +++ b/ghcide/src/Development/IDE/Plugin/Test.hs @@ -25,10 +25,10 @@ import Data.Maybe (isJust) import Data.String import Data.Text (Text, pack) import Development.IDE.Core.OfInterest (getFilesOfInterest) +import Development.IDE.Core.Rules import Development.IDE.Core.RuleTypes import Development.IDE.Core.Service import Development.IDE.Core.Shake -import Development.IDE.Core.Rules import Development.IDE.GHC.Compat import Development.IDE.Graph (Action) import qualified Development.IDE.Graph as Graph diff --git a/ghcide/src/Development/IDE/Plugin/TypeLenses.hs b/ghcide/src/Development/IDE/Plugin/TypeLenses.hs index ecfdd35449..847e44827c 100644 --- a/ghcide/src/Development/IDE/Plugin/TypeLenses.hs +++ b/ghcide/src/Development/IDE/Plugin/TypeLenses.hs @@ -29,9 +29,9 @@ import Development.IDE (GhcSession (..), RuleResult, Rules, define, srcSpanToRange) import Development.IDE.Core.Compile (TcModuleResult (..)) +import Development.IDE.Core.Rules (IdeState, runAction) import Development.IDE.Core.RuleTypes (GetBindings (GetBindings), TypeCheck (TypeCheck)) -import Development.IDE.Core.Rules (IdeState, runAction) import Development.IDE.Core.Service (getDiagnostics) import Development.IDE.Core.Shake (getHiddenDiagnostics, use) import qualified Development.IDE.Core.Shake as Shake diff --git a/ghcide/src/Development/IDE/Types/Action.hs b/ghcide/src/Development/IDE/Types/Action.hs index b0fef98274..4507f39825 100644 --- a/ghcide/src/Development/IDE/Types/Action.hs +++ b/ghcide/src/Development/IDE/Types/Action.hs @@ -11,9 +11,9 @@ module Development.IDE.Types.Action where import Control.Concurrent.STM +import Data.Hashable (Hashable (..)) import Data.HashSet (HashSet) import qualified Data.HashSet as Set -import Data.Hashable (Hashable (..)) import Data.Unique (Unique) import Development.IDE.Graph (Action) import Development.IDE.Types.Logger diff --git a/ghcide/src/Development/IDE/Types/Exports.hs b/ghcide/src/Development/IDE/Types/Exports.hs index faef7d9001..8d75c12f1d 100644 --- a/ghcide/src/Development/IDE/Types/Exports.hs +++ b/ghcide/src/Development/IDE/Types/Exports.hs @@ -17,12 +17,12 @@ module Development.IDE.Types.Exports import Control.DeepSeq (NFData (..)) import Control.Monad import Data.Bifunctor (Bifunctor (second)) +import Data.Hashable (Hashable) import Data.HashMap.Strict (HashMap, elems) import qualified Data.HashMap.Strict as Map import Data.HashSet (HashSet) import qualified Data.HashSet as Set -import Data.Hashable (Hashable) -import Data.List (isSuffixOf, foldl') +import Data.List (foldl', isSuffixOf) import Data.Text (Text, pack) import Development.IDE.GHC.Compat import Development.IDE.GHC.Orphans () diff --git a/ghcide/src/Development/IDE/Types/KnownTargets.hs b/ghcide/src/Development/IDE/Types/KnownTargets.hs index 7ec2e493a5..7f49ced08d 100644 --- a/ghcide/src/Development/IDE/Types/KnownTargets.hs +++ b/ghcide/src/Development/IDE/Types/KnownTargets.hs @@ -3,11 +3,11 @@ module Development.IDE.Types.KnownTargets (KnownTargets, Target(..), toKnownFiles) where import Control.DeepSeq +import Data.Hashable import Data.HashMap.Strict import qualified Data.HashMap.Strict as HMap import Data.HashSet import qualified Data.HashSet as HSet -import Data.Hashable import Development.IDE.GHC.Compat (ModuleName) import Development.IDE.GHC.Orphans () import Development.IDE.Types.Location diff --git a/ghcide/src/Development/IDE/Types/Monitoring.hs b/ghcide/src/Development/IDE/Types/Monitoring.hs index 256381e60a..41e92ed7dd 100644 --- a/ghcide/src/Development/IDE/Types/Monitoring.hs +++ b/ghcide/src/Development/IDE/Types/Monitoring.hs @@ -3,7 +3,7 @@ module Development.IDE.Types.Monitoring ) where import Data.Int -import Data.Text (Text) +import Data.Text (Text) -- | An abstraction for runtime monitoring inspired by the 'ekg' package data Monitoring = Monitoring { @@ -11,7 +11,7 @@ data Monitoring = Monitoring { registerGauge :: Text -> IO Int64 -> IO (), -- | Register a non-negative, monotonically increasing, integer-valued metric. registerCounter :: Text -> IO Int64 -> IO (), - start :: IO (IO ()) -- ^ Start the monitoring system, returning an action which will stop the system. + start :: IO (IO ()) -- ^ Start the monitoring system, returning an action which will stop the system. } instance Semigroup Monitoring where diff --git a/ghcide/src/Development/IDE/Types/Shake.hs b/ghcide/src/Development/IDE/Types/Shake.hs index 905a386cda..43298d8a7e 100644 --- a/ghcide/src/Development/IDE/Types/Shake.hs +++ b/ghcide/src/Development/IDE/Types/Shake.hs @@ -25,6 +25,7 @@ import Data.Hashable import Data.Typeable (cast) import Data.Vector (Vector) import Development.IDE.Core.PositionMapping +import Development.IDE.Core.RuleTypes (FileVersion) import Development.IDE.Graph (Key (..), RuleResult) import qualified Development.IDE.Graph as Shake import Development.IDE.Types.Diagnostics @@ -37,7 +38,6 @@ import Type.Reflection (SomeTypeRep (SomeTypeRep) typeOf, typeRep, typeRepTyCon) import Unsafe.Coerce (unsafeCoerce) -import Development.IDE.Core.RuleTypes (FileVersion) -- | Intended to represent HieDb calls wrapped with (currently) retry -- functionality diff --git a/ghcide/src/Text/Fuzzy/Parallel.hs b/ghcide/src/Text/Fuzzy/Parallel.hs index 1fc6a4e679..6d822e7538 100644 --- a/ghcide/src/Text/Fuzzy/Parallel.hs +++ b/ghcide/src/Text/Fuzzy/Parallel.hs @@ -7,12 +7,12 @@ module Text.Fuzzy.Parallel Scored(..) ) where -import Control.Parallel.Strategies (rseq, using, parList, evalList) +import Control.Parallel.Strategies (evalList, parList, rseq, using) import Data.Bits ((.|.)) import Data.Maybe (fromMaybe, mapMaybe) import qualified Data.Text as T -import qualified Data.Text.Internal as T import qualified Data.Text.Array as TA +import qualified Data.Text.Internal as T import Prelude hiding (filter) data Scored a = Scored {score :: !Int, original:: !a} diff --git a/ghcide/test/exe/FuzzySearch.hs b/ghcide/test/exe/FuzzySearch.hs index f9794270ae..8d2f196b52 100644 --- a/ghcide/test/exe/FuzzySearch.hs +++ b/ghcide/test/exe/FuzzySearch.hs @@ -1,23 +1,23 @@ module FuzzySearch (tests) where -import Control.Monad (guard) -import Data.Char (toLower) -import Data.Maybe (catMaybes) -import qualified Data.Monoid.Textual as T -import Data.Text (Text, inits, pack) -import qualified Data.Text as Text -import System.Directory (doesFileExist) -import System.IO.Unsafe (unsafePerformIO) -import System.Info.Extra (isWindows) -import Test.QuickCheck -import Test.Tasty -import Test.Tasty.ExpectedFailure -import Test.Tasty.HUnit -import Test.Tasty.QuickCheck (testProperty) -import Text.Fuzzy (Fuzzy (..)) -import qualified Text.Fuzzy as Fuzzy -import Text.Fuzzy.Parallel -import Prelude hiding (filter) +import Control.Monad (guard) +import Data.Char (toLower) +import Data.Maybe (catMaybes) +import qualified Data.Monoid.Textual as T +import Data.Text (Text, inits, pack) +import qualified Data.Text as Text +import Prelude hiding (filter) +import System.Directory (doesFileExist) +import System.Info.Extra (isWindows) +import System.IO.Unsafe (unsafePerformIO) +import Test.QuickCheck +import Test.Tasty +import Test.Tasty.ExpectedFailure +import Test.Tasty.HUnit +import Test.Tasty.QuickCheck (testProperty) +import qualified Text.Fuzzy as Fuzzy +import Text.Fuzzy (Fuzzy (..)) +import Text.Fuzzy.Parallel tests :: TestTree tests = diff --git a/ghcide/test/src/Development/IDE/Test.hs b/ghcide/test/src/Development/IDE/Test.hs index 87ee301ec9..b4385043be 100644 --- a/ghcide/test/src/Development/IDE/Test.hs +++ b/ghcide/test/src/Development/IDE/Test.hs @@ -63,9 +63,9 @@ import Language.LSP.Types hiding SemanticTokensEdit (_start)) import Language.LSP.Types.Lens as Lsp import System.Directory (canonicalizePath) +import System.FilePath (equalFilePath) import System.Time.Extra import Test.Tasty.HUnit -import System.FilePath (equalFilePath) requireDiagnosticM :: (Foldable f, Show (f Diagnostic), HasCallStack) diff --git a/hls-graph/src/Development/IDE/Graph/Internal/Action.hs b/hls-graph/src/Development/IDE/Graph/Internal/Action.hs index 854ba903c5..708a414ae5 100644 --- a/hls-graph/src/Development/IDE/Graph/Internal/Action.hs +++ b/hls-graph/src/Development/IDE/Graph/Internal/Action.hs @@ -24,9 +24,9 @@ import Control.Exception import Control.Monad.IO.Class import Control.Monad.Trans.Class import Control.Monad.Trans.Reader -import Data.IORef +import Data.Foldable (toList) import Data.Functor.Identity -import Data.Foldable (toList) +import Data.IORef import Development.IDE.Graph.Classes import Development.IDE.Graph.Internal.Database import Development.IDE.Graph.Internal.Rules (RuleResult) diff --git a/hls-graph/src/Development/IDE/Graph/Internal/Database.hs b/hls-graph/src/Development/IDE/Graph/Internal/Database.hs index 308bbde232..f936687ebb 100644 --- a/hls-graph/src/Development/IDE/Graph/Internal/Database.hs +++ b/hls-graph/src/Development/IDE/Graph/Internal/Database.hs @@ -7,8 +7,8 @@ {-# LANGUAGE RankNTypes #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE ScopedTypeVariables #-} +{-# LANGUAGE TupleSections #-} {-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE TupleSections #-} module Development.IDE.Graph.Internal.Database (newDatabase, incDatabase, build, getDirtySet, getKeysAndVisitAge) where @@ -36,15 +36,15 @@ import Data.List.NonEmpty (unzip) import Data.Maybe import Data.Traversable (for) import Data.Tuple.Extra -import Debug.Trace (traceM) +import Debug.Trace (traceM) import Development.IDE.Graph.Classes import Development.IDE.Graph.Internal.Rules import Development.IDE.Graph.Internal.Types import qualified Focus import qualified ListT import qualified StmContainers.Map as SMap -import System.Time.Extra (duration, sleep) import System.IO.Unsafe +import System.Time.Extra (duration, sleep) newDatabase :: Dynamic -> TheRules -> IO Database @@ -89,7 +89,7 @@ build db stack keys = do built <- runAIO $ do built <- builder db stack (fmap Key keys) case built of - Left clean -> return clean + Left clean -> return clean Right dirty -> liftIO dirty let (ids, vs) = unzip built pure (ids, fmap (asV . resultValue) vs) @@ -325,7 +325,7 @@ data Wait | Spawn {justWait :: !(IO ())} fmapWait :: (IO () -> IO ()) -> Wait -> Wait -fmapWait f (Wait io) = Wait (f io) +fmapWait f (Wait io) = Wait (f io) fmapWait f (Spawn io) = Spawn (f io) waitOrSpawn :: Wait -> IO (Either (IO ()) (Async ())) diff --git a/hls-graph/src/Development/IDE/Graph/Internal/Types.hs b/hls-graph/src/Development/IDE/Graph/Internal/Types.hs index 449aba1112..56d2d48ac5 100644 --- a/hls-graph/src/Development/IDE/Graph/Internal/Types.hs +++ b/hls-graph/src/Development/IDE/Graph/Internal/Types.hs @@ -27,18 +27,18 @@ import qualified Data.ByteString as BS import Data.Dynamic import qualified Data.HashMap.Strict as Map import Data.HashSet (HashSet, member) +import qualified Data.HashSet as Set import Data.IORef +import Data.List (intercalate) import Data.Maybe import Data.Typeable import Development.IDE.Graph.Classes import GHC.Generics (Generic) import qualified ListT -import StmContainers.Map (Map) import qualified StmContainers.Map as SMap +import StmContainers.Map (Map) import System.Time.Extra (Seconds) -import qualified Data.HashSet as Set -import Data.List (intercalate) -import UnliftIO (MonadUnliftIO) +import UnliftIO (MonadUnliftIO) unwrapDynamic :: forall a . Typeable a => Dynamic -> a diff --git a/hls-graph/test/ActionSpec.hs b/hls-graph/test/ActionSpec.hs index 972786dcc2..d79e6edb40 100644 --- a/hls-graph/test/ActionSpec.hs +++ b/hls-graph/test/ActionSpec.hs @@ -1,21 +1,22 @@ -{-# LANGUAGE OverloadedStrings #-} -{-# LANGUAGE RecordWildCards #-} -{-# LANGUAGE TypeApplications #-} +{-# LANGUAGE OverloadedStrings #-} +{-# LANGUAGE RecordWildCards #-} {-# LANGUAGE ScopedTypeVariables #-} +{-# LANGUAGE TypeApplications #-} module ActionSpec where -import Control.Concurrent.STM -import Development.IDE.Graph (shakeOptions) -import Development.IDE.Graph.Database (shakeNewDatabase, shakeRunDatabase) -import Development.IDE.Graph.Internal.Action (apply1) -import Development.IDE.Graph.Internal.Types -import Development.IDE.Graph.Rule -import qualified Data.HashSet as HashSet -import Example -import qualified StmContainers.Map as STM -import Test.Hspec -import System.Time.Extra (timeout) +import Control.Concurrent.STM +import qualified Data.HashSet as HashSet +import Development.IDE.Graph (shakeOptions) +import Development.IDE.Graph.Database (shakeNewDatabase, + shakeRunDatabase) +import Development.IDE.Graph.Internal.Action (apply1) +import Development.IDE.Graph.Internal.Types +import Development.IDE.Graph.Rule +import Example +import qualified StmContainers.Map as STM +import System.Time.Extra (timeout) +import Test.Hspec spec :: Spec spec = do diff --git a/hls-graph/test/DatabaseSpec.hs b/hls-graph/test/DatabaseSpec.hs index 7ab812e612..0189a92b9a 100644 --- a/hls-graph/test/DatabaseSpec.hs +++ b/hls-graph/test/DatabaseSpec.hs @@ -1,20 +1,21 @@ -{-# LANGUAGE OverloadedLists #-} -{-# LANGUAGE OverloadedStrings #-} -{-# LANGUAGE RecordWildCards #-} -{-# LANGUAGE TypeApplications #-} +{-# LANGUAGE OverloadedLists #-} +{-# LANGUAGE OverloadedStrings #-} +{-# LANGUAGE RecordWildCards #-} {-# LANGUAGE ScopedTypeVariables #-} +{-# LANGUAGE TypeApplications #-} module DatabaseSpec where -import Control.Concurrent.STM -import Development.IDE.Graph (shakeOptions) -import Development.IDE.Graph.Database (shakeNewDatabase, shakeRunDatabase) -import Development.IDE.Graph.Internal.Action (apply1) -import Development.IDE.Graph.Internal.Types -import Development.IDE.Graph.Rule -import Example -import qualified StmContainers.Map as STM -import Test.Hspec -import System.Time.Extra (timeout) +import Control.Concurrent.STM +import Development.IDE.Graph (shakeOptions) +import Development.IDE.Graph.Database (shakeNewDatabase, + shakeRunDatabase) +import Development.IDE.Graph.Internal.Action (apply1) +import Development.IDE.Graph.Internal.Types +import Development.IDE.Graph.Rule +import Example +import qualified StmContainers.Map as STM +import System.Time.Extra (timeout) +import Test.Hspec spec :: Spec spec = do diff --git a/hls-graph/test/Example.hs b/hls-graph/test/Example.hs index 3903cbe32c..18807bd1c1 100644 --- a/hls-graph/test/Example.hs +++ b/hls-graph/test/Example.hs @@ -1,16 +1,16 @@ -{-# LANGUAGE OverloadedStrings #-} -{-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE DeriveGeneric #-} -{-# LANGUAGE DeriveAnyClass #-} +{-# LANGUAGE DeriveAnyClass #-} +{-# LANGUAGE DeriveGeneric #-} +{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE ScopedTypeVariables #-} -{-# LANGUAGE TypeApplications #-} +{-# LANGUAGE TypeApplications #-} +{-# LANGUAGE TypeFamilies #-} module Example where -import Development.IDE.Graph -import Development.IDE.Graph.Rule -import Development.IDE.Graph.Classes -import GHC.Generics -import Type.Reflection (typeRep) +import Development.IDE.Graph +import Development.IDE.Graph.Classes +import Development.IDE.Graph.Rule +import GHC.Generics +import Type.Reflection (typeRep) data Rule a = Rule deriving (Eq, Generic, Hashable, NFData) diff --git a/hls-graph/test/Main.hs b/hls-graph/test/Main.hs index 452f6208ae..553982775f 100644 --- a/hls-graph/test/Main.hs +++ b/hls-graph/test/Main.hs @@ -1,7 +1,7 @@ import qualified Spec -import Test.Tasty -import Test.Tasty.Hspec -import Test.Tasty.Ingredients.Rerun (defaultMainWithRerun) +import Test.Tasty +import Test.Tasty.Hspec +import Test.Tasty.Ingredients.Rerun (defaultMainWithRerun) main :: IO () main = testSpecs Spec.spec >>= defaultMainWithRerun . testGroup "tactics" diff --git a/hls-graph/test/RulesSpec.hs b/hls-graph/test/RulesSpec.hs index cdea145aa5..bb9253fb26 100644 --- a/hls-graph/test/RulesSpec.hs +++ b/hls-graph/test/RulesSpec.hs @@ -1,6 +1,6 @@ module RulesSpec where -import Test.Hspec +import Test.Hspec spec :: Spec spec = do diff --git a/hls-plugin-api/src/Ide/Types.hs b/hls-plugin-api/src/Ide/Types.hs index 7d60fd281d..a9f2bb3050 100644 --- a/hls-plugin-api/src/Ide/Types.hs +++ b/hls-plugin-api/src/Ide/Types.hs @@ -9,6 +9,7 @@ {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} +{-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE PolyKinds #-} @@ -17,7 +18,6 @@ {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE UndecidableInstances #-} {-# LANGUAGE ViewPatterns #-} -{-# LANGUAGE MultiParamTypeClasses #-} module Ide.Types where @@ -31,10 +31,10 @@ import System.Posix.Signals #endif import Control.Lens ((^.)) import Data.Aeson hiding (defaultOptions) -import qualified Data.DList as DList import qualified Data.Default import Data.Dependent.Map (DMap) import qualified Data.Dependent.Map as DMap +import qualified Data.DList as DList import Data.GADT.Compare import Data.List.NonEmpty (NonEmpty (..), toList) import qualified Data.Map as Map diff --git a/plugins/default/src/Ide/Plugin/Example.hs b/plugins/default/src/Ide/Plugin/Example.hs index 0416cbe8d1..33bf8720fa 100644 --- a/plugins/default/src/Ide/Plugin/Example.hs +++ b/plugins/default/src/Ide/Plugin/Example.hs @@ -22,8 +22,8 @@ import Control.Monad.IO.Class import Control.Monad.Trans.Maybe import Data.Aeson import Data.Functor -import qualified Data.HashMap.Strict as Map import Data.Hashable +import qualified Data.HashMap.Strict as Map import qualified Data.Text as T import Data.Typeable import Development.IDE as D diff --git a/plugins/default/src/Ide/Plugin/Example2.hs b/plugins/default/src/Ide/Plugin/Example2.hs index 6595ce58a6..8ba3a69b68 100644 --- a/plugins/default/src/Ide/Plugin/Example2.hs +++ b/plugins/default/src/Ide/Plugin/Example2.hs @@ -22,8 +22,8 @@ import Control.Monad.IO.Class import Control.Monad.Trans.Maybe import Data.Aeson import Data.Functor -import qualified Data.HashMap.Strict as Map import Data.Hashable +import qualified Data.HashMap.Strict as Map import qualified Data.Text as T import Data.Typeable import Development.IDE as D diff --git a/plugins/default/src/Ide/Plugin/ExampleCabal.hs b/plugins/default/src/Ide/Plugin/ExampleCabal.hs index 74f7982393..39a64f220a 100644 --- a/plugins/default/src/Ide/Plugin/ExampleCabal.hs +++ b/plugins/default/src/Ide/Plugin/ExampleCabal.hs @@ -1,21 +1,21 @@ -{-# LANGUAGE DeriveAnyClass #-} -{-# LANGUAGE DeriveGeneric #-} -{-# LANGUAGE FlexibleContexts #-} -{-# LANGUAGE FlexibleInstances #-} -{-# LANGUAGE LambdaCase #-} -{-# LANGUAGE OverloadedStrings #-} -{-# LANGUAGE RecordWildCards #-} -{-# LANGUAGE TupleSections #-} -{-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE ViewPatterns #-} +{-# LANGUAGE DeriveAnyClass #-} +{-# LANGUAGE DeriveGeneric #-} +{-# LANGUAGE FlexibleContexts #-} +{-# LANGUAGE FlexibleInstances #-} +{-# LANGUAGE LambdaCase #-} +{-# LANGUAGE OverloadedStrings #-} +{-# LANGUAGE RecordWildCards #-} +{-# LANGUAGE TupleSections #-} +{-# LANGUAGE TypeFamilies #-} +{-# LANGUAGE ViewPatterns #-} module Ide.Plugin.ExampleCabal where import Control.Monad.IO.Class import Data.Aeson -import qualified Data.HashMap.Strict as Map -import qualified Data.Text as T -import Development.IDE as D hiding (pluginHandlers) +import qualified Data.HashMap.Strict as Map +import qualified Data.Text as T +import Development.IDE as D hiding (pluginHandlers) import GHC.Generics import Ide.PluginUtils import Ide.Types diff --git a/plugins/hls-alternate-number-format-plugin/src/Ide/Plugin/Literals.hs b/plugins/hls-alternate-number-format-plugin/src/Ide/Plugin/Literals.hs index 41fe0967e8..980d25685a 100644 --- a/plugins/hls-alternate-number-format-plugin/src/Ide/Plugin/Literals.hs +++ b/plugins/hls-alternate-number-format-plugin/src/Ide/Plugin/Literals.hs @@ -16,9 +16,9 @@ import Data.Text (Text) import qualified Data.Text as T import Development.IDE.GHC.Compat hiding (getSrcSpan) import Development.IDE.Graph.Classes (NFData (rnf)) -import qualified GHC.Generics as GHC import Generics.SYB (Data, Typeable, everything, extQ) +import qualified GHC.Generics as GHC -- data type to capture what type of literal we are dealing with -- provides location and possibly source text (for OverLits) as well as it's value diff --git a/plugins/hls-eval-plugin/src/Ide/Plugin/Eval/CodeLens.hs b/plugins/hls-eval-plugin/src/Ide/Plugin/Eval/CodeLens.hs index 4f265bbce2..2ed90bab48 100644 --- a/plugins/hls-eval-plugin/src/Ide/Plugin/Eval/CodeLens.hs +++ b/plugins/hls-eval-plugin/src/Ide/Plugin/Eval/CodeLens.hs @@ -23,101 +23,127 @@ module Ide.Plugin.Eval.CodeLens ( evalCommand, ) where -import Control.Applicative (Alternative ((<|>))) -import Control.Arrow (second, (>>>)) -import Control.Exception (try) -import qualified Control.Exception as E -import Control.Lens (_1, _3, ix, (%~), (<&>), (^.)) -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) +import Control.Applicative (Alternative ((<|>))) +import Control.Arrow (second, (>>>)) +import Control.Exception (try) +import qualified Control.Exception as E +import Control.Lens (_1, _3, ix, (%~), + (<&>), (^.)) +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) import Data.Default -import qualified Data.HashMap.Strict as HashMap -import Data.List (dropWhileEnd, find, - intercalate, intersperse) -import Data.Maybe (catMaybes, fromMaybe) -import Data.String (IsString) -import Data.Text (Text) -import qualified Data.Text as T -import Data.Time (getCurrentTime) -import Data.Typeable (Typeable) -import Development.IDE (GetModSummary (..), - GetDependencyInformation (..), - GetLinkable (..), - GhcSessionIO (..), IdeState, - ModSummaryResult (..), - NeedsCompilation (NeedsCompilation), - VFSModified (..), evalGhcEnv, - hscEnvWithImportPaths, - printOutputable, runAction, - linkableHomeMod, - textToStringBuffer, - toNormalizedFilePath', - uriToFilePath', useNoFile_, - useWithStale_, use_, uses_) -import Development.IDE.Core.Rules (GhcSessionDepsConfig (..), - ghcSessionDepsDefinition) -import Development.IDE.Import.DependencyInformation ( reachableModules ) -import Development.IDE.GHC.Compat hiding (typeKind, unitState) -import qualified Development.IDE.GHC.Compat as Compat -import qualified Development.IDE.GHC.Compat as SrcLoc -import Development.IDE.GHC.Compat.Util (GhcException, - OverridingBool (..)) +import qualified Data.HashMap.Strict as HashMap +import Data.List (dropWhileEnd, + find, + intercalate, + intersperse) +import Data.Maybe (catMaybes, + fromMaybe) +import Data.String (IsString) +import Data.Text (Text) +import qualified Data.Text as T +import Data.Time (getCurrentTime) +import Data.Typeable (Typeable) +import Development.IDE (GetDependencyInformation (..), + GetLinkable (..), + GetModSummary (..), + GhcSessionIO (..), + IdeState, + ModSummaryResult (..), + NeedsCompilation (NeedsCompilation), + VFSModified (..), + evalGhcEnv, + hscEnvWithImportPaths, + linkableHomeMod, + printOutputable, + runAction, + textToStringBuffer, + toNormalizedFilePath', + uriToFilePath', + useNoFile_, + useWithStale_, + use_, uses_) +import Development.IDE.Core.Rules (GhcSessionDepsConfig (..), + ghcSessionDepsDefinition) +import Development.IDE.GHC.Compat hiding (typeKind, + unitState) +import qualified Development.IDE.GHC.Compat as Compat +import qualified Development.IDE.GHC.Compat as SrcLoc +import Development.IDE.GHC.Compat.Util (GhcException, + OverridingBool (..)) +import Development.IDE.Import.DependencyInformation (reachableModules) import Development.IDE.Types.Options -import GHC (ClsInst, - ExecOptions (execLineNumber, execSourceFile), - FamInst, GhcMonad, - LoadHowMuch (LoadAllTargets), - NamedThing (getName), - defaultFixity, execOptions, - exprType, getInfo, - getInteractiveDynFlags, - isImport, isStmt, load, - parseName, pprFamInst, - pprInstance, setTargets, - typeKind) +import GHC (ClsInst, + ExecOptions (execLineNumber, execSourceFile), + FamInst, + GhcMonad, + LoadHowMuch (LoadAllTargets), + NamedThing (getName), + defaultFixity, + execOptions, + exprType, + getInfo, + getInteractiveDynFlags, + isImport, isStmt, + load, parseName, + pprFamInst, + pprInstance, + setTargets, + typeKind) #if MIN_VERSION_ghc(9,2,0) -import GHC (Fixity) +import GHC (Fixity) #endif -import qualified GHC.LanguageExtensions.Type as LangExt (Extension (..)) +import qualified GHC.LanguageExtensions.Type as LangExt (Extension (..)) -import Development.IDE.Core.FileStore (setSomethingModified) -import Development.IDE.Types.Shake (toKey) -import Ide.Plugin.Config (Config) +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)) +import GHC.Types.SrcLoc (UnhelpfulSpanReason (UnhelpfulInteractive)) #endif -import Ide.Plugin.Eval.Code (Statement, asStatements, - evalSetup, myExecStmt, - propSetup, resultRange, - testCheck, testRanges) -import Ide.Plugin.Eval.Config (EvalConfig (..), - getEvalConfig) -import Ide.Plugin.Eval.GHC (addImport, addPackages, - hasPackage, showDynFlags) -import Ide.Plugin.Eval.Parse.Comments (commentsToSections) -import Ide.Plugin.Eval.Parse.Option (parseSetFlags) -import Ide.Plugin.Eval.Rules (queueForEvaluation) +import Ide.Plugin.Eval.Code (Statement, + asStatements, + evalSetup, + myExecStmt, + propSetup, + resultRange, + testCheck, + testRanges) +import Ide.Plugin.Eval.Config (EvalConfig (..), + getEvalConfig) +import Ide.Plugin.Eval.GHC (addImport, + addPackages, + hasPackage, + showDynFlags) +import Ide.Plugin.Eval.Parse.Comments (commentsToSections) +import Ide.Plugin.Eval.Parse.Option (parseSetFlags) +import Ide.Plugin.Eval.Rules (queueForEvaluation) import Ide.Plugin.Eval.Types -import Ide.Plugin.Eval.Util (gStrictTry, isLiterate, - logWith, response', timed) -import Ide.PluginUtils (handleMaybe, handleMaybeM, - pluginResponse) +import Ide.Plugin.Eval.Util (gStrictTry, + isLiterate, + logWith, + response', timed) +import Ide.PluginUtils (handleMaybe, + handleMaybeM, + pluginResponse) import Ide.Types import Language.LSP.Server -import Language.LSP.Types hiding - (SemanticTokenAbsolute (length, line), - SemanticTokenRelative (length)) -import Language.LSP.Types.Lens (end, line) -import Language.LSP.VFS (virtualFileText) +import Language.LSP.Types hiding + (SemanticTokenAbsolute (length, line), + SemanticTokenRelative (length)) +import Language.LSP.Types.Lens (end, line) +import Language.LSP.VFS (virtualFileText) #if MIN_VERSION_ghc(9,2,0) #elif MIN_VERSION_ghc(9,0,0) -import GHC.Driver.Session (unitDatabases, unitState) -import GHC.Types.SrcLoc (UnhelpfulSpanReason (UnhelpfulInteractive)) +import GHC.Driver.Session (unitDatabases, + unitState) +import GHC.Types.SrcLoc (UnhelpfulSpanReason (UnhelpfulInteractive)) #else import DynFlags #endif diff --git a/plugins/hls-eval-plugin/src/Ide/Plugin/Eval/Config.hs b/plugins/hls-eval-plugin/src/Ide/Plugin/Eval/Config.hs index ca7b0cca9b..8ff948ba77 100644 --- a/plugins/hls-eval-plugin/src/Ide/Plugin/Eval/Config.hs +++ b/plugins/hls-eval-plugin/src/Ide/Plugin/Eval/Config.hs @@ -15,8 +15,8 @@ import Language.LSP.Server (MonadLsp) -- | The Eval plugin configuration. (see 'properties') data EvalConfig = EvalConfig - { eval_cfg_diff :: Bool - , eval_cfg_exception :: Bool + { eval_cfg_diff :: Bool + , eval_cfg_exception :: Bool } deriving (Eq, Ord, Show) diff --git a/plugins/hls-eval-plugin/src/Ide/Plugin/Eval/Parse/Comments.hs b/plugins/hls-eval-plugin/src/Ide/Plugin/Eval/Parse/Comments.hs index c937d631f3..f3479fa42c 100644 --- a/plugins/hls-eval-plugin/src/Ide/Plugin/Eval/Parse/Comments.hs +++ b/plugins/hls-eval-plugin/src/Ide/Plugin/Eval/Parse/Comments.hs @@ -41,8 +41,8 @@ import Ide.Plugin.Eval.Types import Language.LSP.Types (UInt) import Language.LSP.Types.Lens (character, end, line, start) -import Text.Megaparsec import qualified Text.Megaparsec as P +import Text.Megaparsec import Text.Megaparsec.Char (alphaNumChar, char, eol, hspace, letterChar) diff --git a/plugins/hls-eval-plugin/test/Main.hs b/plugins/hls-eval-plugin/test/Main.hs index a505a2486d..a16e405706 100644 --- a/plugins/hls-eval-plugin/test/Main.hs +++ b/plugins/hls-eval-plugin/test/Main.hs @@ -12,7 +12,7 @@ import Control.Lens (_Just, folded, preview, toListOf, view, (^..)) import Data.Aeson (Value (Object), fromJSON, object, toJSON, (.=)) -import Data.Aeson.Types (Result (Success), Pair) +import Data.Aeson.Types (Pair, Result (Success)) import Data.List (isInfixOf) import Data.List.Extra (nubOrdOn) import qualified Data.Map as Map diff --git a/plugins/hls-explicit-imports-plugin/src/Ide/Plugin/ExplicitImports.hs b/plugins/hls-explicit-imports-plugin/src/Ide/Plugin/ExplicitImports.hs index 09743f7e0c..9c96678d5a 100644 --- a/plugins/hls-explicit-imports-plugin/src/Ide/Plugin/ExplicitImports.hs +++ b/plugins/hls-explicit-imports-plugin/src/Ide/Plugin/ExplicitImports.hs @@ -28,8 +28,8 @@ import Data.IORef (readIORef) import qualified Data.Map.Strict as Map import Data.Maybe (catMaybes, fromMaybe, isJust) -import qualified Data.Text as T import Data.String (fromString) +import qualified Data.Text as T import Development.IDE hiding (pluginHandlers, pluginRules) import Development.IDE.Core.PositionMapping diff --git a/plugins/hls-module-name-plugin/src/Ide/Plugin/ModuleName.hs b/plugins/hls-module-name-plugin/src/Ide/Plugin/ModuleName.hs index 9e91b6348d..55685778f4 100644 --- a/plugins/hls-module-name-plugin/src/Ide/Plugin/ModuleName.hs +++ b/plugins/hls-module-name-plugin/src/Ide/Plugin/ModuleName.hs @@ -35,8 +35,9 @@ import Development.IDE (GetParsedModule (GetParsedModule), uriToFilePath', use, use_) import Development.IDE.GHC.Compat (GenLocated (L), getSessionDynFlags, hsmodName, importPaths, locA, + moduleNameString, pattern RealSrcSpan, - pm_parsed_source, unLoc, moduleNameString) + pm_parsed_source, unLoc) import Ide.Types import Language.LSP.Server import Language.LSP.Types hiding diff --git a/shake-bench/src/Development/Benchmark/Rules.hs b/shake-bench/src/Development/Benchmark/Rules.hs index d6fc885d1c..a68507e604 100644 --- a/shake-bench/src/Development/Benchmark/Rules.hs +++ b/shake-bench/src/Development/Benchmark/Rules.hs @@ -67,14 +67,15 @@ module Development.Benchmark.Rules ) where import Control.Applicative -import Control.Lens ((^.), view, preview) +import Control.Lens (preview, view, (^.)) import Control.Monad import qualified Control.Monad.State as S import Data.Aeson (FromJSON (..), ToJSON (..), Value (..), object, (.!=), (.:?), (.=)) -import Data.Aeson.Lens (_Object, AsJSON (_JSON), _String) +import Data.Aeson.Lens (AsJSON (_JSON), + _Object, _String) import Data.Char (isDigit) import Data.List (find, isInfixOf, stripPrefix, @@ -562,9 +563,9 @@ instance Read Frame where -- | A file path containing the output of -S for a given run data RunLog = RunLog - { runVersion :: !String, - runFrames :: ![Frame], - runSuccess :: !Bool, + { runVersion :: !String, + runFrames :: ![Frame], + runSuccess :: !Bool, runFirstReponse :: !(Maybe Seconds) }