Skip to content

Releases: swyddfa/lsp-devtools

pytest-lsp v0.3.1 - 2023-10-06

06 Oct 21:58
Compare
Choose a tag to compare

v0.3.1 - 2023-10-06

This release includes some minor breaking changes if you were using the lower-level APIs e.g make_client_server.

See this commit for a sample migration

Enhancements

  • pytest-lsp's LanguageClient is now based on the one provided by pygls. The main benefit is that the server connection is now based on an asyncio.subprocess.Process removing the need for pytest-lsp to constantly check to see if the server is still running. (#61)
  • Fixtures created with the @pytest_lsp.fixture decorator can now request additional pytest fixtures (#71)
  • It is now possible to set the environment variables that the server under test is launched with. (#72)
  • It is now possible to test any JSON-RPC based server with pytest-lsp. Note however, this support will only ever extend to managing the client-server connection. (#73)

Misc

  • make_test_client has been renamed to make_test_lsp_client (#73)
  • Drop support for Python 3.7, add support for Python 3.12 (#75)

lsp-devtools v0.2.0 - 2023-10-06

06 Oct 21:53
Compare
Choose a tag to compare

v0.2.0 - 2023-10-06

Features

  • Experimental Add proof of concept lsp-devtools client command that builds on textual's TextArea widget to offer an interactive language server client. (#83)

Fixes

  • The lsp-devtools agent command no longer fails to exit once an LSP session closes. (#17)
  • lsp-devtools record no longer emits a ResourceWarning (#28)
  • As a consequence of the new architecture, commands like lsp-devtools record no longer miss the start of an LSP session (#29)
  • lsp-devtools agent no longer emits Unable to send data, no available transport! messages (#38)

Misc

  • The lsp-devtools agent now uses a TCP connection, which should make distribution easier (#37)

  • Drop Python 3.7 support (#77)

  • The lsp-devtools capabilities command has been removed in favour of lsp-devtools record

    The lsp-devtools tui command has been renamed to lsp-devtools inspect (#83)

pytest-lsp v0.3.0 - 2023-05-19

19 May 20:11
Compare
Choose a tag to compare

v0.3.0 - 2023-05-19

Features

  • @pytest_lsp.fixture now supports the yield statement, allowing the client fixture definition to be responsible for initialising and shutting down the LSP session granting the test author full control over the contents of the initialize request.

    This is a breaking change, see the documentation for details and this PR for an example migration. (#47)

  • If a client's capabilities has been set, pytest-lsp will automatically check the server's response to see if it is compatible with the capabilities the client provided.

    If an issue is detected, pytest-lsp will emit an LspSpecificationWarning

    Note: This relies on a dedicated check_xxx function being written for each request so only a subset of the LSP spec is currently supported. (#57)

Docs

  • Add getting started guide (#47)
  • Add note on redefining the event_loop fixture to match the client fixture's scope (#49)
  • Add documentation on the built in features of the test LSP client (#50)
  • Add example on using parameterised fixtures to test with multiple clients (#51)

Misc

  • The client-server connection is now managed by a single asyncio event loop, rather than spinning up multiple threads, resulting in a much simpler architecture. (#44)

Removed

  • Helper methods like completion_request and notify_did_open have been removed. The equivalent methods provided by the LSP specification like text_document_completion_async and text_document_did_open should be used directly.

    See this PR for an example migration. (#56)

Pytest LSP v0.2.1 - 2023-01-14

14 Jan 00:45
Compare
Choose a tag to compare

v0.2.1 - 2023-01-14

Fixes

  • Ensure that the test client returns a ShowDocumentResult for window/showDocument requests. (#34)

LSP Devtools v0.1.1 - 2023-01-14

14 Jan 00:45
Compare
Choose a tag to compare

v0.1.1 - 2023-01-14

Fixes

  • Fix PyPi packaging (#33)

Pytest LSP v0.2.0 - 2023-01-10

10 Jan 23:18
Compare
Choose a tag to compare

v0.2.0 - 2023-01-10

Features

  • The LanguageClient now exposes methods covering the full LSP spec thanks to autogenerating its client from type definitions provided by lsprotocol (#25)

Misc

  • Support for Python 3.6 has been dropped.

    Support for Python 3.11 has been added.

    Upgraded to pygls 1.0. (#25)

LSP Devtools v0.1.0 - 2023-01-10

10 Jan 23:19
Compare
Choose a tag to compare

v0.1.0 - 2023-01-10

Features

  • Updated record command.

    It is now capable of live streaming messages sent between a client and server to stdout, plain text files or a SQLite database.

    It also offers a number of filters for selecting the messages you wish to record, as well as a (WIP!) format string syntax for controlling how messages are formatted. (#26)

  • Add tui command.

    A proof of concept devtools TUI implemented in textual, that live updates with the LSP messages sent between client and server!

    Requires the server be wrapped in an agent. (#27)

Misc

  • Migrated to v1.0 (#26)

Pytest LSP v0.1.3 - 2022-10-15

15 Oct 09:51
Compare
Choose a tag to compare

v0.1.3 - 2022-10-15

Fixes

    • Check that server provided for testing doesn't crash within the first 0.1 seconds
    • Return INITIALIZE response from ClientServer.start(). This allows tests to assert against the server's INITIALIZE response without resending the INITIALIZE request in the actual test. (#22)

Pytest LSP v0.1.2 - 2022-07-18

18 Jul 22:54
Compare
Choose a tag to compare

v0.1.2 - 2022-07-18

Enhancements

  • Add helpers for textDocument/implementation requests (#15)

Pytest LSP v0.1.1 - 2022-07-17

17 Jul 15:48
Compare
Choose a tag to compare

v0.1.1 - 2022-07-17

Misc

  • Remove upper bound on required pygls version (#14)