Releases: ebkalderon/tower-lsp
Releases · ebkalderon/tower-lsp
tower-lsp 0.13.2
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.
tower-lsp 0.13.1
tower-lsp 0.13.0
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 toasync 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).
tower-lsp 0.12.1
tower-lsp 0.12.0
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
asService<Incoming, Response = Option<Outgoing>>
. - Implement
FusedStream
forMessageStream
.
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
, astower-lsp
no longer relies on it. - Remove
LspService::with_handler()
constructor (PR #202).
tower-lsp 0.11.0
Changed
- Update
lsp-types
crate from 0.73 to 0.74 (PR #178). This introduces breaking changes to the followingLanguageServer
trait method signatures:hover()
signatureHelp()
goto_declaration()
goto_definition()
goto_type_definition()
goto_implementation()
document_highlight()
- Make
LanguageServer::initialize()
handlerasync fn
(PR #182). - Accept
stdin
andstdout
handles that are notSend + 'static
. This permits the use ofstd::io::Cursor
orVec<u8>
as mock stdio sources for tests, and passing in&mut
handles is now supported as well (PR #184).
Fixed
tower-lsp 0.10.1
Changed
- Implement
Clone
forClient
so it can be safely passed to functions expecting'static
values. - Mark
MessageStream
as#[must_use]
.
tower-lsp 0.10.0
Added
- Implement support for the following client-to-server messages:
textDocument/willSaveWaitUntil
textDocument/selectionRange
- Re-export useful
jsonrpc-core
types in a newjsonrpc
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).
tower-lsp 0.9.1
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
tower-lsp 0.9.0
Added
- Add
info!()
message when server initializes to be consistent with the
existinginfo!()
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
toClient
. - Change
Client::apply_edit()
to returnResult<ApplyWorkspaceEditResponse>
. - Change
Client::register_capability()
to returnResult<()>
. - Change
Client::unregister_capability()
to returnResult<()>
.
Removed
- Remove redundant serialization steps from
Client
(PR #129).