Fix curtimeoutid being reset in the server exit handler
[lsp-test.git] / README.md
index 5c300b94100cf89b17037527bb9b588d4e33dc05..a263847774322ef80f8fbdc64dba606170ae0f29 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,9 +1,9 @@
-# lsp-test [![Build Status](https://travis-ci.com/Bubba/haskell-lsp-test.svg?branch=master)](https://travis-ci.com/Bubba/haskell-lsp-test) [![Hackage](https://img.shields.io/hackage/v/lsp-test.svg)](https://hackage.haskell.org/package/lsp-test-0.1.0.0)
+# lsp-test [![Actions Status](https://github.com/bubba/lsp-test/workflows/Haskell%20CI/badge.svg)](https://github.com/bubba/lsp-test/actions) [![Hackage](https://img.shields.io/hackage/v/lsp-test.svg)](https://hackage.haskell.org/package/lsp-test-0.1.0.0)
 lsp-test is a functional testing framework for Language Server Protocol servers.
 
 ```haskell
 import Language.Haskell.LSP.Test
-runSession "hie" fullCaps "proj/dir" $ do
+main = runSession "hie" fullCaps "proj/dir" $ do
   doc <- openDoc "Foo.hs" "haskell"
   skipMany anyNotification
   symbols <- getDocumentSymbols doc
@@ -34,10 +34,18 @@ count 4 (message :: Session ApplyWorkspaceEditRequest)
 anyRequest <|> anyResponse
 ```
 
-Try out the example tests in the `example` directory with `cabal new-test`.
-For more examples check the [Wiki](https://github.com/Bubba/haskell-lsp-test/wiki/Introduction)
+Try out the example tests in the `example` directory with `cabal test`.
+For more examples check the [Wiki](https://github.com/bubba/lsp-test/wiki/Introduction)
 
 ## Developing
-To test make sure you have the following language servers installed:
-- [haskell-ide-engine](https://github.com/haskell/haskell-ide-engine)
-- [javascript-typescript-langserver](https://github.com/sourcegraph/javascript-typescript-langserver)
+The tests are integration tests, so make sure you have the following language servers installed and on your PATH:
+### [haskell-ide-engine](https://github.com/haskell/haskell-ide-engine)
+- Check out a relatively recent version of the repo, or see `.travis.yml` to get the exact commit used for CI.
+- `stack install`
+### [javascript-typescript-langserver](https://github.com/sourcegraph/javascript-typescript-langserver)
+`npm i -g javascript-typescript-langserver`
+
+Then run the tests with `cabal test` or `stack test`.
+
+## Troubleshooting
+Seeing funny stuff when running lsp-test via stack? If your server is built upon Haskell tooling, [keep in mind that stack sets some environment variables related to GHC, and you may want to unset them.](https://github.com/alanz/haskell-ide-engine/blob/bfb16324d396da71000ef81d51acbebbdaa854ab/test/utils/TestUtils.hs#L290-L298)