@@ -41,6 +41,7 @@ import Data.Aeson (Value (Null), toJSON)
41
41
import qualified Data.Aeson as A
42
42
import Data.ByteString.Lazy (ByteString )
43
43
import Data.Default (def )
44
+ import Data.Maybe (fromMaybe )
44
45
import qualified Data.Text as T
45
46
import qualified Data.Text.Lazy as TL
46
47
import qualified Data.Text.Lazy.Encoding as TL
@@ -63,6 +64,7 @@ import Language.LSP.Types hiding
63
64
import Language.LSP.Types.Capabilities (ClientCapabilities )
64
65
import System.Directory (getCurrentDirectory ,
65
66
setCurrentDirectory )
67
+ import System.Environment (lookupEnv )
66
68
import System.FilePath
67
69
import System.IO.Unsafe (unsafePerformIO )
68
70
import System.Process.Extra (createPipe )
@@ -159,14 +161,20 @@ runSessionWithServer' ::
159
161
runSessionWithServer' plugin conf sconf caps root s = withLock lock $ keepCurrentDirectory $ do
160
162
(inR, inW) <- createPipe
161
163
(outR, outW) <- createPipe
164
+ let logger = do
165
+ logStdErr <- fromMaybe " 0" <$> lookupEnv " LSP_TEST_LOG_STDERR"
166
+ if logStdErr == " 0"
167
+ then return noLogging
168
+ else argsLogger testing
169
+
162
170
server <-
163
171
async $
164
172
Ghcide. defaultMain
165
173
testing
166
174
{ argsHandleIn = pure inR,
167
175
argsHandleOut = pure outW,
168
176
argsDefaultHlsConfig = conf,
169
- argsLogger = pure noLogging ,
177
+ argsLogger = logger ,
170
178
argsIdeOptions = \ config sessionLoader ->
171
179
let ideOptions = (argsIdeOptions def config sessionLoader) {optTesting = IdeTesting True }
172
180
in ideOptions {optShakeOptions = (optShakeOptions ideOptions) {shakeThreads = 2 }},
0 commit comments