Skip to content
This repository was archived by the owner on Oct 7, 2020. It is now read-only.

Commit 4a2b618

Browse files
committed
Fix config and add test
1 parent 29d369f commit 4a2b618

File tree

5 files changed

+24
-12
lines changed

5 files changed

+24
-12
lines changed

hie-plugin-api/Haskell/Ide/Engine/Config.hs

+1
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ instance ToJSON Config where
6565
, "liquidOn" .= l
6666
, "completionSnippetsOn" .= c
6767
, "completionSnippetsOn" .= f
68+
, "formatOnImportOn" .= f
6869
]
6970

7071
-- ---------------------------------------------------------------------

src/Haskell/Ide/Engine/Plugin/HsImport.hs

+2-3
Original file line numberDiff line numberDiff line change
@@ -80,11 +80,10 @@ importModule uri modName =
8080
liftIO $ removeFile output
8181
J.WorkspaceEdit mChanges mDocChanges <- liftToGhc $ makeDiffResult input newText fileMap
8282

83-
confFile <- liftIO $ Brittany.getConfFile origInput
84-
-- Format the import with Brittany
85-
8683
if shouldFormat
8784
then do
85+
-- Format the import with Brittany
86+
confFile <- liftIO $ Brittany.getConfFile origInput
8887
newChanges <- forM mChanges $ mapM $ mapM (formatTextEdit confFile)
8988
newDocChanges <- forM mDocChanges $ mapM $ \(J.TextDocumentEdit vDocId tes) -> do
9089
ftes <- forM tes (formatTextEdit confFile)

test/functional/FunctionalCodeActionsSpec.hs

+18-1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import qualified Data.HashMap.Strict as HM
1212
import Data.Maybe
1313
import Data.Monoid ((<>))
1414
import qualified Data.Text as T
15+
import Haskell.Ide.Engine.Config
1516
import Language.Haskell.LSP.Test as Test
1617
import Language.Haskell.LSP.Types
1718
import qualified Language.Haskell.LSP.Types.Lens as L
@@ -96,7 +97,7 @@ spec = describe "code actions" $ do
9697
_:x:_ <- T.lines <$> documentContents doc
9798
liftIO $ x `shouldBe` "foo = putStrLn \"world\""
9899

99-
describe "import suggetsions" $ do
100+
describe "import suggestions" $ do
100101
it "works with 3.8 code action kinds" $ runSession hieCommand fullCaps "test/testdata" $ do
101102
doc <- openDoc "CodeActionImport.hs" "haskell"
102103

@@ -135,6 +136,22 @@ spec = describe "code actions" $ do
135136
let l1:l2:_ = T.lines contents
136137
l1 `shouldBe` "import qualified Data.Maybe"
137138
l2 `shouldBe` "import Control.Monad"
139+
it "respects format config" $ runSession hieCommand fullCaps "test/testdata" $ do
140+
doc <- openDoc "CodeActionImportBrittany.hs" "haskell"
141+
_ <- waitForDiagnosticsSource "ghcmod"
142+
143+
let config = def { formatOnImportOn = False }
144+
sendNotification WorkspaceDidChangeConfiguration (DidChangeConfigurationParams (toJSON config))
145+
146+
actionsOrCommands <- getAllCodeActions doc
147+
let action:_ = map fromAction actionsOrCommands
148+
executeCodeAction action
149+
150+
contents <- getDocumentEdit doc
151+
liftIO $ do
152+
let l1:l2:_ = T.lines contents
153+
l1 `shouldBe` "import qualified Data.Maybe"
154+
l2 `shouldBe` "import Control.Monad"
138155

139156
describe "add package suggestions" $ do
140157
it "adds to .cabal files" $ runSession hieCommand fullCaps "test/testdata/addPackageTest/cabal" $ do

test/functional/FunctionalLiquidSpec.hs

+2-7
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ module FunctionalLiquidSpec where
55
import Control.Lens hiding (List)
66
import Control.Monad.IO.Class
77
import Data.Aeson
8+
import Data.Default
89
import qualified Data.Text as T
910
import Language.Haskell.LSP.Test hiding (message)
1011
import Language.Haskell.LSP.Types as LSP
@@ -80,13 +81,7 @@ spec = describe "liquid haskell diagnostics" $ do
8081
reduceDiag ^. source `shouldBe` Just "hlint"
8182

8283
-- Enable liquid haskell plugin
83-
let config =
84-
Config
85-
{ hlintOn = False
86-
, maxNumberOfProblems = 50
87-
, liquidOn = True
88-
, completionSnippetsOn = True
89-
}
84+
let config = def { liquidOn = True }
9085
sendNotification WorkspaceDidChangeConfiguration (DidChangeConfigurationParams (toJSON config))
9186

9287
-- docItem <- getDocItem file languageId

test/unit/JsonSpec.hs

+1-1
Original file line numberDiff line numberDiff line change
@@ -102,4 +102,4 @@ instance Arbitrary Position where
102102
return $ Position l c
103103

104104
instance Arbitrary Config where
105-
arbitrary = Config <$> arbitrary <*> arbitrary <*> arbitrary <*> arbitrary
105+
arbitrary = Config <$> arbitrary <*> arbitrary <*> arbitrary <*> arbitrary <*> arbitrary

0 commit comments

Comments
 (0)