Rename Language.Haskell.LSP.Test => Language.LSP.Test
[lsp-test.git] / src / Language / Haskell / LSP / Test / Compat.hs
diff --git a/src/Language/Haskell/LSP/Test/Compat.hs b/src/Language/Haskell/LSP/Test/Compat.hs
deleted file mode 100644 (file)
index 12031c3..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-{-# LANGUAGE CPP, OverloadedStrings #-}
--- For some reason ghc warns about not using
--- Control.Monad.IO.Class but it's needed for
--- MonadIO
-{-# OPTIONS_GHC -Wunused-imports #-}
-module Language.Haskell.LSP.Test.Compat where
-
-import Data.Maybe
-import System.IO
-import Language.Haskell.LSP.Types
-
-#if MIN_VERSION_process(1,6,3)
--- We have to hide cleanupProcess for process-1.6.3.0
--- cause it is in the public api for 1.6.3.0 versions
--- shipped with ghc >= 8.6 and < 8.6.4
-import System.Process hiding (getPid, cleanupProcess, withCreateProcess)
-# if MIN_VERSION_process(1,6,4)
-import qualified System.Process (getPid, cleanupProcess, withCreateProcess)
-# else
-import Foreign.C.Error
-import GHC.IO.Exception ( IOErrorType(..), IOException(..) )
-
-import qualified System.Process (getPid)
-import qualified Control.Exception as C
-# endif
-#else
-import Control.Concurrent.MVar
-import Foreign.C.Error
-import GHC.IO.Exception ( IOErrorType(..), IOException(..) )
-import System.Process hiding (withCreateProcess)
-import System.Process.Internals
-
-import qualified Control.Exception as C
-#endif
-
-#ifdef mingw32_HOST_OS
-import qualified System.Win32.Process
-#else
-import qualified System.Posix.Process
-#endif
-
-
-getCurrentProcessID :: IO Int
-#ifdef mingw32_HOST_OS
-getCurrentProcessID = fromIntegral <$> System.Win32.Process.getCurrentProcessId
-#else
-getCurrentProcessID = fromIntegral <$> System.Posix.Process.getProcessID
-#endif
-
-getProcessID :: ProcessHandle -> IO Int
-getProcessID p = fromIntegral . fromJust <$> getProcessID' p
-  where
-#if MIN_VERSION_process(1,6,3)
-  getProcessID' = System.Process.getPid
-#else
-#if MIN_VERSION_process(1,6,0)
-  getProcessID' (ProcessHandle mh _ _) = do
-#else
-  getProcessID' (ProcessHandle mh _) = do
-#endif
-    p_ <- readMVar mh
-    case p_ of
-#ifdef mingw32_HOST_OS
-      OpenHandle h -> do
-        pid <- System.Win32.Process.getProcessId h
-        return $ Just pid
-#else
-      OpenHandle pid -> return $ Just pid
-#endif
-      _ -> return Nothing
-#endif
-
-cleanupProcess
-  :: (Maybe Handle, Maybe Handle, Maybe Handle, ProcessHandle) -> IO ()
-
-withCreateProcess
-  :: CreateProcess
-  -> (Maybe Handle -> Maybe Handle -> Maybe Handle -> ProcessHandle -> IO a)
-  -> IO a
-
-#if MIN_VERSION_process(1,6,4)
-
-cleanupProcess = System.Process.cleanupProcess
-
-withCreateProcess = System.Process.withCreateProcess
-
-#else
-
-cleanupProcess (mb_stdin, mb_stdout, mb_stderr, ph) = do
-    -- We ignore the spurious "permission denied" error in windows:
-    --   see https://github.com/haskell/process/issues/110
-    ignorePermDenied $ terminateProcess ph
-    -- Note, it's important that other threads that might be reading/writing
-    -- these handles also get killed off, since otherwise they might be holding
-    -- the handle lock and prevent us from closing, leading to deadlock.
-    maybe (return ()) (ignoreSigPipe . hClose) mb_stdin
-    maybe (return ()) hClose mb_stdout
-    maybe (return ()) hClose mb_stderr
-
-    return ()
-  where ignoreSigPipe = ignoreIOError ResourceVanished ePIPE
-        ignorePermDenied = ignoreIOError PermissionDenied eACCES
-    
-ignoreIOError :: IOErrorType -> Errno -> IO () -> IO ()
-ignoreIOError ioErrorType errno =
-  C.handle $ \e -> case e of
-                     IOError { ioe_type  = iot
-                             , ioe_errno = Just ioe }
-                       | iot == ioErrorType && Errno ioe == errno -> return ()
-                     _ -> C.throwIO e
-
-withCreateProcess c action =
-  C.bracket (createProcess c) cleanupProcess
-            (\(m_in, m_out, m_err, ph) -> action m_in m_out m_err ph)
-
-#endif
-
-
-lspTestClientInfo :: ClientInfo
-lspTestClientInfo = ClientInfo "lsp-test" (Just CURRENT_PACKAGE_VERSION)