@@ -7,6 +7,7 @@ import Control.Monad.Extra
77import Data.Default
88import Data.Foldable
99import Data.List
10+ import Data.Void
1011import qualified Development.IDE.Session as Session
1112import qualified HIE.Bios.Environment as HieBios
1213import HIE.Bios.Types
@@ -42,6 +43,9 @@ main = do
4243 VersionMode PrintNumericVersion ->
4344 putStrLn haskellLanguageServerNumericVersion
4445
46+ BiosMode PrintCradleType ->
47+ print =<< findProjectCradle
48+
4549 _ -> launchHaskellLanguageServer args
4650
4751launchHaskellLanguageServer :: Arguments -> IO ()
@@ -51,18 +55,11 @@ launchHaskellLanguageServer parsedArgs = do
5155 _ -> pure ()
5256
5357 d <- getCurrentDirectory
58+
59+ -- search for the project cradle type
60+ cradle <- findProjectCradle
5461
55- let initialFp = (d </> " a" )
56- -- Get the cabal directory from the cradle
57- hieYaml <- Session. findCradle def initialFp
58-
59- -- Some log messages
60- case hieYaml of
61- Just yaml -> hPutStrLn stderr $ " Found \" " ++ yaml ++ " \" for \" " ++ initialFp ++ " \" "
62- Nothing -> hPutStrLn stderr " No 'hie.yaml' found. Try to discover the project type!"
63-
64- cradle <- Session. loadCradle def hieYaml d
65-
62+ -- Get the root directory from the cradle
6663 setCurrentDirectory $ cradleRootDir cradle
6764
6865 case parsedArgs of
@@ -135,3 +132,17 @@ getRuntimeGhcVersion' cradle = do
135132 Nothing ->
136133 die $ " Cradle requires " ++ exe ++ " but couldn't find it" ++ " \n "
137134 ++ show cradle
135+
136+ findProjectCradle :: IO (Cradle Void )
137+ findProjectCradle = do
138+ d <- getCurrentDirectory
139+
140+ let initialFp = (d </> " a" )
141+ hieYaml <- Session. findCradle def initialFp
142+
143+ -- Some log messages
144+ case hieYaml of
145+ Just yaml -> hPutStrLn stderr $ " Found \" " ++ yaml ++ " \" for \" " ++ initialFp ++ " \" "
146+ Nothing -> hPutStrLn stderr " No 'hie.yaml' found. Try to discover the project type!"
147+
148+ Session. loadCradle def hieYaml d
0 commit comments