diff --git a/cabal.project b/cabal.project index 111c6079..f5c3e97f 100644 --- a/cabal.project +++ b/cabal.project @@ -1,4 +1,4 @@ -index-state: 2025-07-18T00:00:00Z +index-state: 2026-02-13T00:00:00Z packages: ./lsp diff --git a/lsp-test/ChangeLog.md b/lsp-test/ChangeLog.md index 19acab58..1bd4b657 100644 --- a/lsp-test/ChangeLog.md +++ b/lsp-test/ChangeLog.md @@ -1,5 +1,13 @@ # Revision history for lsp-test +## 0.18.0.0 -- 2026-02-14 + +- Add a context parameter for getSignatureHelp +- Add signature help request +- Add workspace symbol request +- Relax dependency version bounds +- Expose resolveCompletion helper + ## 0.17.1.1 -- 2024-12-31 - Relax dependency version bounds @@ -20,7 +28,7 @@ - `ignoreRegistrationRequests` option to ignore `client/registerCapability` requests, on by default. -- New functions `setIgnoringRegistrationRequests` to change whether such messages are +- New functions `setIgnoringRegistrationRequests` to change whether such messages are ignored during a `Session` without having to change the `SessionConfig`. - `lsp-test` will no longer send `workspace/didChangConfiguration` notifications unless the server dynamically registers for them. @@ -60,7 +68,7 @@ * Compatibility with new `lsp-types` major version. -## 0.14.0.2 +## 0.14.0.2 * Compatibility with new `lsp-types` major version. diff --git a/lsp-test/lsp-test.cabal b/lsp-test/lsp-test.cabal index 0a08dfa3..83b147b9 100644 --- a/lsp-test/lsp-test.cabal +++ b/lsp-test/lsp-test.cabal @@ -1,6 +1,6 @@ cabal-version: 2.4 name: lsp-test -version: 0.17.1.1 +version: 0.18.0.0 synopsis: Functional test framework for LSP servers. description: A test framework for writing tests against @@ -22,9 +22,10 @@ bug-reports: https://github.com/haskell/lsp/issues copyright: 2021 Luke Lau category: Testing build-type: Simple -extra-source-files: +extra-doc-files: ChangeLog.md README.md +extra-source-files: test/data/**/*.hs source-repository head @@ -55,7 +56,7 @@ library , co-log-core ^>=0.3 , conduit ^>=1.3 , conduit-parse ^>=0.2 - , containers >=0.6 && < 0.8 + , containers >=0.6 && < 0.9 , data-default >=0.7 && < 0.9 , Diff >=0.4 && <1.1 , directory ^>=1.3 @@ -65,14 +66,14 @@ library , Glob >=0.9 && <0.11 , lens >=5.1 && <5.4 , lens-aeson ^>=1.2 - , lsp ^>=2.7 - , lsp-types ^>=2.3 + , lsp ^>=2.8 + , lsp-types ^>=2.4 , mtl >=2.2 && <2.4 , parser-combinators ^>=1.3 , process ^>=1.6 , some ^>=1.0 , text >=1 && <2.2 - , time >=1.10 && <1.15 + , time >=1.10 && <1.16 , transformers >=0.5 && <0.7 if os(windows) diff --git a/lsp-types/ChangeLog.md b/lsp-types/ChangeLog.md index f19af040..dfaedb0b 100644 --- a/lsp-types/ChangeLog.md +++ b/lsp-types/ChangeLog.md @@ -1,13 +1,14 @@ # Revision history for lsp-types -## Unreleased +## 2.4.0.0 -- 2026-02-14 - export `emptyNormalizedUri` from `Language.LSP.Protocol.Types.Uri` +- Relax dependency version bounds ## 2.3.0.1 -- 2024-12-31 - Relax dependency version bounds - + ## 2.3.0.0 -- 2024-06-06 - Add support for identifying client and server capabilities associated with a method. diff --git a/lsp-types/lsp-types.cabal b/lsp-types/lsp-types.cabal index 31d5c647..2de744ea 100644 --- a/lsp-types/lsp-types.cabal +++ b/lsp-types/lsp-types.cabal @@ -1,6 +1,6 @@ cabal-version: 3.0 name: lsp-types -version: 2.3.0.1 +version: 2.4.0.0 synopsis: Haskell library for the Microsoft Language Server Protocol, data types @@ -16,10 +16,11 @@ maintainer: alan.zimm@gmail.com copyright: Alan Zimmerman, 2016-2021 category: Development build-type: Simple -extra-source-files: +extra-doc-files: ChangeLog.md - metaModel.json README.md +extra-source-files: + metaModel.json source-repository head type: git @@ -65,7 +66,7 @@ library , aeson >=2 && <2.3 , base >=4.11 && <5 , binary ^>=0.8 - , containers >=0.6 && < 0.8 + , containers >=0.6 && < 0.9 , data-default >=0.7 && < 0.9 , deepseq >=1.4 && <1.6 , Diff >=0.4 && <1.1 @@ -81,7 +82,7 @@ library , row-types ^>=1.0 , safe ^>=0.3 , some ^>=1.0 - , template-haskell >=2.7 && <2.24 + , template-haskell >=2.7 && <2.25 , text >=1 && <2.2 -- This version of filepath comes with GHC 9.6, so @@ -584,7 +585,7 @@ library metamodel , base >=4.11 && <5 , file-embed ^>=0.0.15 , lens >=5.1 && <5.4 - , template-haskell >=2.7 && <2.24 + , template-haskell >=2.7 && <2.25 , text >=1 && <2.2 library lsp-types-quickcheck diff --git a/lsp/ChangeLog.md b/lsp/ChangeLog.md index 6b4d46a3..121409b6 100644 --- a/lsp/ChangeLog.md +++ b/lsp/ChangeLog.md @@ -1,5 +1,18 @@ # Revision history for lsp +## 2.8.0.0 -- 2026-02-14 + +- Fix link to swarm LSP server +- Add support for FileOperationOptions +- Replace forkIO with async for server listener +- Graceful server exit +- Add support for setting up language servers to use websockets +- Allow flushing diagnostics by source and uri +- Track closed files in the VFS +- Track the languageId in Virtual File +- Treat undefined and null initialization options the same way +- Relax dependency version bounds + ## 2.7.0.1 -- 2024-12-31 - Relax dependency version bounds @@ -24,13 +37,13 @@ ## 2.4.0.0 -- Server-created progress now will not send reports until and unless the client +- Server-created progress now will not send reports until and unless the client confirms the progress token creation. -- Progress helper functions now can take a progress token provided by the client, +- Progress helper functions now can take a progress token provided by the client, so client-initiated progress can now be supported properly. - The server options now allow the user to say whether the server should advertise support for client-initiated progress or not. -- The server now dynamically registers for `workspace/didChangeConfiguration` +- The server now dynamically registers for `workspace/didChangeConfiguration` notifications, to ensure that newer clients continue to send them. - Removed `getCompletionPrefix` from the `VFS` module. This is specific to completing Haskell identifiers and doesn't belong here. It has already been moved to `ghcide` @@ -52,13 +65,13 @@ - `parseConfig` will now be called on the object corresponding to the configuration section, not the whole object. - New callback for when configuration changes, to allow servers to react. -- The logging of messages sent by the protocol has been disabled, as this can prove +- The logging of messages sent by the protocol has been disabled, as this can prove troublesome for servers that log these to the client: https://github.com/haskell/lsp/issues/447 ## 2.1.0.0 * Fix handling of optional methods. -* `staticHandlers` now takes the client capabilities as an argument. +* `staticHandlers` now takes the client capabilities as an argument. These are static across the lifecycle of the server, so this allows a server to decide at construction e.g. whether to provide handlers for resolve methods depending on whether the client supports it. @@ -235,10 +248,10 @@ can use the result returned from `doInitialize` to pass along the `LanguageContextEnv` needed to run an `LspT`, as well as anything else your monad needs. ```haskell -type +type ServerDefinition { ... , doInitialize = \env _req -> pure $ Right env -, interpretHandler = \env -> Iso +, interpretHandler = \env -> Iso (runLspT env) -- how to convert from IO ~> m liftIO -- how to convert from m ~> IO } diff --git a/lsp/lsp.cabal b/lsp/lsp.cabal index 674a464f..eec502af 100644 --- a/lsp/lsp.cabal +++ b/lsp/lsp.cabal @@ -1,6 +1,6 @@ cabal-version: 2.2 name: lsp -version: 2.7.0.1 +version: 2.8.0.0 synopsis: Haskell library for the Microsoft Language Server Protocol description: An implementation of the types, and basic message server to @@ -18,7 +18,7 @@ maintainer: alan.zimm@gmail.com copyright: Alan Zimmerman, 2016-2021 category: Development build-type: Simple -extra-source-files: +extra-doc-files: ChangeLog.md README.md @@ -59,7 +59,7 @@ library , base >=4.11 && <5 , bytestring >=0.10 && <0.13 , co-log-core ^>=0.3 - , containers >=0.6 && < 0.8 + , containers >=0.6 && < 0.9 , data-default >=0.7 && < 0.9 , directory ^>=1.3 , exceptions ^>=0.10 @@ -68,7 +68,7 @@ library , hashable >=1.4 && < 1.6 , lens >=5.1 && <5.4 , lens-aeson ^>=1.2 - , lsp-types ^>=2.3 + , lsp-types ^>=2.4 , mtl >=2.2 && <2.4 , prettyprinter ^>=1.7 , sorted-list >=0.2.1 && < 0.4