Tower Lsp Versions Save

Language Server Protocol implementation written in Rust

v0.13.2

3 years ago

Changed

  • Increase lsp-types semantic version range to >=0.79, <0.81. This is safe because the upstream changes only concern proposed LSP features, which this library does not currently support.

v0.13.1

3 years ago

Changed

  • Improve std::fmt::Debug implementation for Client (PR #216).
  • Several API documentation improvements.

Fixed

  • Fix infinite loop upon encountering invalid UTF-8 characters in an incoming message (PR #215).

v0.13.0

3 years ago

Changed

  • Improve log message quality and reduce noise.
  • Return responses in corresponding request order to make things easier on the client side (PR #212).
  • Change remaining Client notification methods to async fn (PR #213).
  • Bump minimum supported Rust version to 1.41.0 (PR #213).

Fixed

  • Report missing params as "invalid params" instead of "parse error" (PR #211).

v0.12.1

3 years ago

Fixed

  • Reject multiple initialize requests sent in quick succession (PR #208).
  • Fix bug deserializing jsonrpc field from serde_json::Value (PR #209).

v0.12.0

3 years ago

Added

  • Add private subcrate tower-lsp-macros for internal use only (PR #202).
  • Implement cancellation support via $/cancelRequest (PR #202).
  • Officially support serving over TCP (PR #198).

Changed

  • Update lsp-types crate from 0.74 to 0.79.
  • Have language servers store Client directly as struct field (PR #199).
  • Replace jsonrpc-core with minimal JSON-RPC implementation (PR #202).
  • Redefine LspService as Service<Incoming, Response = Option<Outgoing>>.
  • Implement FusedStream for MessageStream.

Fixed

  • Fix typo which caused workspace/didChangeConfiguration to break (PR #195).
  • Implement proper parse error recovery in LSP codec (PR #201).
  • Refuse to accept further requests after shutdown has been called once.

Removed

  • Remove dependency on jsonrpc-core, as tower-lsp no longer relies on it.
  • Remove LspService::with_handler() constructor (PR #202).

v0.11.0

4 years ago

Changed

  • Update lsp-types crate from 0.73 to 0.74 (PR #178). This introduces breaking changes to the following LanguageServer trait method signatures:
    • hover()
    • signatureHelp()
    • goto_declaration()
    • goto_definition()
    • goto_type_definition()
    • goto_implementation()
    • document_highlight()
  • Make LanguageServer::initialize() handler async fn (PR #182).
  • Accept stdin and stdout handles that are not Send + 'static. This permits the use of std::io::Cursor or Vec<u8> as mock stdio sources for tests, and passing in &mut handles is now supported as well (PR #184).

Fixed

  • Fix broken bidirectional request/response routing (PR #184). The original implementation introduced in version 0.9.0 would deadlock under certain conditions.

v0.10.1

4 years ago

Changed

  • Implement Clone for Client so it can be safely passed to functions expecting 'static values.
  • Mark MessageStream as #[must_use].

v0.10.0

4 years ago

Added

  • Implement support for the following client-to-server messages:
    • textDocument/willSaveWaitUntil
    • textDocument/selectionRange
  • Re-export useful jsonrpc-core types in a new jsonrpc module (PR #169).

Changed

  • Update lsp-types crate from 0.70 to 0.73 (PR #162).

Fixed

  • Fix JSON-RPC delegate for textDocument/foldingRange (PR #167).

v0.9.1

4 years ago

Added

  • Implement support for the following client-to-server messages:
    • textDocument/documentColor
    • textDocument/colorPresentation
    • textDocument/rangeFormatting
    • textDocument/onTypeFormatting
    • textDocument/foldingRange

Changed

  • Server will accept the initialize request from the client only once and will respond with JSON-RPC error code -32600 if sent again (PR #160).

Fixed

  • Fix broken links and improve documentation (PRs #152 #157 #158).

v0.9.0

4 years ago

Added

  • Add info!() message when server initializes to be consistent with the existing info!() message that is emitted when the server exits.
  • Implement support for the following client-to-server messages:
    • textDocument/references
    • textDocument/documentLink
    • documentLink/resolve
    • textDocument/rename
    • textDocument/prepareRename
  • Implement support for the following server-to-client messages:
    • window/showMessageRequest
    • workspace/workspaceFolders
    • workspace/configuration

Changed

  • Improve LSP message encoding efficiency (PR #126).
  • Reduce chattiness of trace!() logs (PR #130).
  • Change all notification trait methods to async fn (PR #131).
  • Implement proper server-to-client request routing (PRs #134 #135).
  • Rename Printer to Client.
  • Change Client::apply_edit() to return Result<ApplyWorkspaceEditResponse>.
  • Change Client::register_capability() to return Result<()>.
  • Change Client::unregister_capability() to return Result<()>.

Removed

  • Remove redundant serialization steps from Client (PR #129).