Tower Lsp Versions Save

Language Server Protocol implementation written in Rust

v0.20.0

9 months ago

Added

  • Add support for pull-based diagnostics from LSP 3.17.0 (PR #396).
    • Implement textDocument/diagnostic server request.
    • Implement workspace/diagnostic server request.
    • Implement workspace/diagnostic/refresh client request.
  • Implement std::str::FromStr for jsonrpc::{Request,Response} (PR #379).
  • Implement From<jsonrpc::ErrorCode> for i64 (PR #379).
  • Document supported LSP features in FEATURES.md matrix (PR #382, PR #383).

Changed

  • Bump minimum supported Rust version from 1.52.0 to 1.64.0 (PR #377, PR #395).
  • Update lsp-types from 0.94 to 0.94.1 (PR #396).
  • Update syn from 1 to 2 (PR #390).
  • Update dev-dependency async-tungstenite from 0.18 to 0.22 (PR #395).
  • Update dev-dependency ws_stream_tungstenite from 0.9 to 0.10 (PR #395).
  • Optimize JSON-RPC deserialization types.
    • Change jsonrpc::Error::message field to Cow<'static, str> (PR #378).
    • Mark several methods on jsonrpc::Error as const fn (PR #378).
    • Mark all methods on jsonrpc::ErrorCode as const fn (PR #378).
    • Avoid heap allocation in version field deserialization (PR #379).

Fixed

  • Fix broken Markdown in doc comment for LanguageServer::completion() (PR #396).

v0.19.0

1 year ago

Added

  • Add LspService::inner() method (PR #344).
  • Add missing window/showDocument client request from LSP 3.16.0 (PR #375).
  • Add partial support for Language Server Protocol 3.17.0 (PR #375):
    • Implement textDocument/prepareTypeHierarchy server request.
    • Implement typeHierarchy/supertypes server request.
    • Implement typeHierarchy/subtypes server request.
    • Implement textDocument/inlineValue server request.
    • Implement textDocument/inlayHint server request.
    • Implement inlayHint/resolve server request.
    • Implement workspaceSymbol/resolve server request.
    • Implement workspace/inlineValue/refresh client request.
    • Implement workspace/inlayHint/refresh client request.

Changed

  • Address Clippy lints (PR #369).
  • Update edition from 2018 to 2021 (PR #370).
  • Update lsp-types from 0.93 to 0.94 (PR #367).
  • Reorder LanguageServer trait methods to match the LSP 3.17.0 spec document (PR #375).
  • Reorder Client inherent methods to better match the LSP 3.17.0 spec document (PR #375).

Fixed

  • Fix doc links for textDocument/colorPresentation request (PR #371).
  • Fix doc links for textDocument/willSaveWaitUntil request (PR #371).
  • Fix doc links for workspace/didChangeWatchedFiles request (PR #371).
  • Improve documentation for LanguageServer and Client methods (PR #375).

v0.18.0

1 year ago

Changed

  • Switch from log facade to tracing (PR #332).
  • Change $/cancelRequest log message from warn to debug (PR #353).
  • Update auto_impl from 0.5 to 1.0 (PR #343).
  • Update httparse from 1.3.5 to 1.8 (PR #363)
  • Update memchr from 2.4.1 to 2.5 (PR #363).
  • Relax tower version requirement from 0.3.11 to 0.3 (PR #363).
  • Update dev-dependency async-tungstenite from 0.16 to 0.18 (PR #363).
  • Update dev-dependency ws_stream_tungstenite from 0.7 to 0.9 (PR #363).

Fixed

  • Improve client connection behavior in tcp example (PR #336).
  • Tweak grammar in initialized and textDocument/codeAction doc comments (PR #361).

v0.17.0

2 years ago

Added

  • Support proposed LSP features with the proposed feature flag (PR #330).

Changed

  • Update lsp-types from 0.92 to 0.93 (PR #333).

v0.16.0

2 years ago

Added

  • Support defining custom JSON-RPC requests on LspService (PR #313).
  • Add compatibility with WASM (PR #309).
  • Support alternative async runtimes other than tokio when enabling the runtime-agnostic feature (PR #309).
  • Implement Service<Request, Response = Option<Response>> for Client (PR #313).
  • Expose concurrency_level setting on Server, allowing adjustment from the default value of 4.
  • Add Request::build() interface for creating custom requests.
  • Add convenient From implementations for jsonrpc::Id.
  • Add .result()/.error() and .is_ok()/.is_error() methods to jsonrpc::Response.

Changed

  • LspService now implements Service<Request, Response = Option<Response>> .
  • LspService::new() now returns a ClientSocket instead of a MessageStream.
  • Server::new() now requires a third ClientSocket argument instead of using .interleave().
  • Rename Client::send_custom_{request,notification} to Client::send_{request,notification}.
  • Rename jsonrpc::Response::{ok, error} to jsonrpc::Response::{from_ok, from_error}.

Fixed

  • Close Client channel properly on exit notification (PR #309).
  • Fix Server occasionally stalling by processing client responses separately from client-to-server requests (PR #313).
  • Return error code -32600 (invalid request) if incoming data is valid JSON, but isn't a JSON-RPC request or response (PR #313).

Removed

  • Remove .interleave() method from Server (PR #313).
  • Remove jsonrpc::{ClientRequest, Incoming, Outgoing, ServerRequest} (PR #313).
  • Remove MessageStream (PR #313).

v0.15.1

2 years ago

Fixed

  • Fix semver incompatibility in release of tower-lsp-macros (PR #306).
    • Re-released tower-lsp-macros 0.4.2 -> 0.5.0.
    • Re-released tower-lsp 0.15.0 -> 0.15.1.
  • Update tokio-util from 0.6.5 to 0.7.0 (PR #303).

v0.15.0

2 years ago

Changed

  • Bump minimum supported Rust version from 1.45.0 to 1.52.0 (PR #300).
  • Update lsp-types from 0.89 to 0.92 (PR #300).
  • Update auto_impl from 0.4 to 0.5 (PR #298).
  • Update dashmap from 4.0.2 to 5.0.0 (PR #298).
  • Update nom from 6.1.2 to 7.1.0 (PR #298).

Fixed

  • Support null and negative integer values as request IDs (PR #285).

v0.14.1

2 years ago

Fixed

  • Fix regression in server-side $/cancelRequest support since 0.12.0 (PR #280).

v0.14.0

2 years ago

Added

  • Add support for Language Server Protocol 3.16.0 (PR #270):
    • Implement workspace/willCreateFiles server request.
    • Implement workspace/willRenameFiles server request.
    • Implement workspace/willDeleteFiles server request.
    • Implement workspace/didCreateFiles server notification.
    • Implement workspace/didRenameFiles server notification.
    • Implement workspace/didDeleteFiles server notification.
    • Implement call hierarchy server requests.
    • Implement semantic tokens server requests.
    • Implement workspace/codeLens/refresh client request.
    • Implement workspace/semanticTokens/refresh client request.
    • Implement textDocument/linkedEditingRange server request.
    • Implement textDocument/moniker request.
    • Implement codeAction/resolve request.
  • Add support for custom server-to-client requests (PR #275).

Changed

  • Bump minimum supported Rust version from 1.41.0 to 1.45.0 (PR #264).
  • Update lsp-types from 0.82 to 0.89 (PR #264).
  • Update tokio from 0.2 to 1.6 (PR #264, PR #268).
  • Update tokio-util from 0.3 to 0.6.5 (PR #264).
  • Update bytes from 0.5 to 1.0.1 (PR #264).
  • Update dashmap from 3.5.1 to 4.0.2 (PR #264).
  • Update nom from 5.1 to 6.1.2 (PR #264).
  • Eliminate looping, message reparsing in codec using SIMD accelerated take_until combinator (PR #274).

Fixed

  • Fix race when sending requests to the client (PR #245).
  • Permit window/showMessageRequest while server is uninitialized (PR #228).
  • Fix client request futures hanging by fixing serde overlap (PR #269).
  • Correctly handle incoming zero-length messages (PR #271).
  • Clean up documentation, fix broken intra-doc and external doc links.

v0.13.3

3 years ago

Changed

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