module Test.Hls.Command ( hlsExeCommand , hlsLspCommand , hlsWrapperLspCommand , hlsWrapperExeCommand ) where import Data.Maybe (fromMaybe) import System.Environment (lookupEnv) import System.IO.Unsafe (unsafePerformIO) -- | The command to execute the version of hls for the current compiler. -- -- Both @stack test@ and @cabal new-test@ setup the environment so @hls@ is -- on PATH. Cabal seems to respond to @build-tool-depends@ specifically while -- stack just puts all project executables on PATH. hlsExeCommand :: String {-# NOINLINE hlsExeCommand #-} hlsExeCommand = unsafePerformIO $ do testExe <- fromMaybe "haskell-language-server" <$> lookupEnv "HLS_TEST_EXE" pure testExe hlsLspCommand :: String hlsLspCommand = hlsExeCommand ++ " --lsp --test -d -j4" hlsWrapperLspCommand :: String hlsWrapperLspCommand = hlsWrapperExeCommand ++ " --lsp --test -d -j4" hlsWrapperExeCommand :: String {-# NOINLINE hlsWrapperExeCommand #-} hlsWrapperExeCommand = unsafePerformIO $ do testExe <- fromMaybe "haskell-language-server-wrapper" <$> lookupEnv "HLS_WRAPPER_TEST_EXE" pure testExe