From 2a1cc37826b5bfb340aade191960a317c858d29a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Hr=C4=8Dek?= Date: Thu, 18 Jan 2024 14:17:46 +0100 Subject: [PATCH 1/4] Fix -Wall and -Wunused-packages in eval plugin --- plugins/hls-eval-plugin/hls-eval-plugin.cabal | 18 ++++++------------ plugins/hls-eval-plugin/test/Main.hs | 18 ++++++++---------- 2 files changed, 14 insertions(+), 22 deletions(-) diff --git a/plugins/hls-eval-plugin/hls-eval-plugin.cabal b/plugins/hls-eval-plugin/hls-eval-plugin.cabal index 6b35b38365..12ad569c26 100644 --- a/plugins/hls-eval-plugin/hls-eval-plugin.cabal +++ b/plugins/hls-eval-plugin/hls-eval-plugin.cabal @@ -36,7 +36,12 @@ source-repository head type: git location: https://github.com/haskell/haskell-language-server +common warnings + ghc-options: + -Wall -Wunused-packages -Wno-name-shadowing -fno-ignore-asserts + library + import: warnings exposed-modules: Ide.Plugin.Eval Ide.Plugin.Eval.Types @@ -57,18 +62,14 @@ library , base >=4.12 && <5 , bytestring , containers - , data-default , deepseq , Diff ^>=0.4.0 - , directory , dlist , extra , filepath , ghc , ghc-boot-th - , ghc-paths , ghcide == 2.6.0.0 - , hashable , hls-graph , hls-plugin-api == 2.6.0.0 , lens @@ -77,18 +78,11 @@ library , megaparsec >=9.0 , mtl , parser-combinators >=1.2 - , pretty-simple - , QuickCheck - , safe-exceptions , text - , time , transformers , unliftio , unordered-containers - ghc-options: - -Wall -Wno-name-shadowing -Wno-unticked-promoted-constructors -fno-ignore-asserts - if flag(pedantic) ghc-options: -Werror @@ -98,6 +92,7 @@ library TypeOperators test-suite tests + import: warnings type: exitcode-stdio-1.0 default-language: Haskell2010 hs-source-dirs: test @@ -107,7 +102,6 @@ test-suite tests , aeson , base , containers - , directory , extra , filepath , hls-eval-plugin diff --git a/plugins/hls-eval-plugin/test/Main.hs b/plugins/hls-eval-plugin/test/Main.hs index 18f718633b..b8a6551ac4 100644 --- a/plugins/hls-eval-plugin/test/Main.hs +++ b/plugins/hls-eval-plugin/test/Main.hs @@ -9,9 +9,9 @@ module Main ) where import Control.Lens (_Just, folded, preview, - toListOf, view, (^..)) + view, (^..), (^.)) import Data.Aeson (Value (Object), fromJSON, - object, toJSON, (.=)) + object, (.=)) import Data.Aeson.Types (Pair, Result (Success)) import Data.List (isInfixOf) import Data.List.Extra (nubOrdOn) @@ -23,10 +23,7 @@ import qualified Ide.Plugin.Config as Plugin import qualified Ide.Plugin.Eval as Eval import Ide.Plugin.Eval.Types (EvalParams (..), Section (..), testOutput) -import Ide.Types (IdePlugins (IdePlugins)) -import Language.LSP.Protocol.Lens (arguments, command, range, - title) -import Language.LSP.Protocol.Message hiding (error) +import Language.LSP.Protocol.Lens (command, range, title) import System.FilePath ((<.>), ()) import Test.Hls import qualified Test.Hls.FileSystem as FS @@ -215,16 +212,17 @@ tests = , testCase "Interfaces are reused after Eval" $ do runSessionWithServerInTmpDir def evalPlugin (mkFs $ FS.directProjectMulti ["TLocalImport.hs", "Util.hs"]) $ do doc <- openDoc "TLocalImport.hs" "haskell" - waitForTypecheck doc + _ <- waitForTypecheck doc lenses <- getCodeLenses doc - let ~cmds@[cmd] = lenses^..folded.command._Just - liftIO $ cmds^..folded.title @?= ["Evaluate..."] + cmd <- liftIO $ case lenses^..folded.command._Just of + [cmd] -> (cmd^.title @?= "Evaluate...") >> pure cmd + cmds -> assertFailure $ "Expected a single command, got " <> show (length cmds) executeCmd cmd -- trigger a rebuild and check that dependency interfaces are not rebuilt changeDoc doc [] - waitForTypecheck doc + _ <- waitForTypecheck doc Right keys <- getLastBuildKeys let ifaceKeys = filter ("GetModIface" `T.isPrefixOf`) keys liftIO $ ifaceKeys @?= [] From 08cd5315342b348c95cf6d52f8a91ca532662f45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Hr=C4=8Dek?= Date: Thu, 18 Jan 2024 14:36:23 +0100 Subject: [PATCH 2/4] Ah, so that's why -Wno-unticked-promoted-constructors --- plugins/hls-eval-plugin/hls-eval-plugin.cabal | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/hls-eval-plugin/hls-eval-plugin.cabal b/plugins/hls-eval-plugin/hls-eval-plugin.cabal index 12ad569c26..bb75818286 100644 --- a/plugins/hls-eval-plugin/hls-eval-plugin.cabal +++ b/plugins/hls-eval-plugin/hls-eval-plugin.cabal @@ -38,7 +38,7 @@ source-repository head common warnings ghc-options: - -Wall -Wunused-packages -Wno-name-shadowing -fno-ignore-asserts + -Wall -Wunused-packages -Wno-name-shadowing -Wno-unticked-promoted-constructors -fno-ignore-asserts library import: warnings From 5e0c36d77ac71ef7767adb0fb3c8ee6ed5649620 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Hr=C4=8Dek?= Date: Thu, 18 Jan 2024 14:44:26 +0100 Subject: [PATCH 3/4] stylish-haskell --- plugins/hls-eval-plugin/test/Main.hs | 34 ++++++++++++++-------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/plugins/hls-eval-plugin/test/Main.hs b/plugins/hls-eval-plugin/test/Main.hs index b8a6551ac4..b213d8223f 100644 --- a/plugins/hls-eval-plugin/test/Main.hs +++ b/plugins/hls-eval-plugin/test/Main.hs @@ -8,25 +8,25 @@ module Main ( main ) where -import Control.Lens (_Just, folded, preview, - view, (^..), (^.)) -import Data.Aeson (Value (Object), fromJSON, - object, (.=)) -import Data.Aeson.Types (Pair, Result (Success)) -import Data.List (isInfixOf) -import Data.List.Extra (nubOrdOn) -import qualified Data.Map as Map +import Control.Lens (_Just, folded, preview, view, (^.), + (^..)) +import Data.Aeson (Value (Object), fromJSON, object, + (.=)) +import Data.Aeson.Types (Pair, Result (Success)) +import Data.List (isInfixOf) +import Data.List.Extra (nubOrdOn) +import qualified Data.Map as Map import Data.Row -import qualified Data.Text as T -import Ide.Plugin.Config (Config) -import qualified Ide.Plugin.Config as Plugin -import qualified Ide.Plugin.Eval as Eval -import Ide.Plugin.Eval.Types (EvalParams (..), Section (..), - testOutput) -import Language.LSP.Protocol.Lens (command, range, title) -import System.FilePath ((<.>), ()) +import qualified Data.Text as T +import Ide.Plugin.Config (Config) +import qualified Ide.Plugin.Config as Plugin +import qualified Ide.Plugin.Eval as Eval +import Ide.Plugin.Eval.Types (EvalParams (..), Section (..), + testOutput) +import Language.LSP.Protocol.Lens (command, range, title) +import System.FilePath ((<.>), ()) import Test.Hls -import qualified Test.Hls.FileSystem as FS +import qualified Test.Hls.FileSystem as FS main :: IO () main = defaultTestRunner tests From aec91ca7001c8feab180268138418bd6fe874d5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Hr=C4=8Dek?= Date: Thu, 18 Jan 2024 16:46:57 +0100 Subject: [PATCH 4/4] Fix pre-commit check --- plugins/hls-class-plugin/src/Ide/Plugin/Class/Types.hs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/hls-class-plugin/src/Ide/Plugin/Class/Types.hs b/plugins/hls-class-plugin/src/Ide/Plugin/Class/Types.hs index a3f0110544..cebd3a6193 100644 --- a/plugins/hls-class-plugin/src/Ide/Plugin/Class/Types.hs +++ b/plugins/hls-class-plugin/src/Ide/Plugin/Class/Types.hs @@ -1,3 +1,4 @@ +{-# LANGUAGE CPP #-} {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE FlexibleContexts #-} @@ -5,7 +6,6 @@ {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE ViewPatterns #-} -{-# LANGUAGE CPP #-} module Ide.Plugin.Class.Types where