Fixed issues: https://github.com/eclipse-lsp4j/lsp4j/milestone/35?closed=1
Breaking API changes:
japicmp report: https://download.eclipse.org/lsp4j/builds/main/japicmp-report/
Fixed issues: https://github.com/eclipse-lsp4j/lsp4j/milestone/36?closed=1
Breaking API changes:
japicmp report: https://download.eclipse.org/lsp4j/updates/releases/0.23.1/japicmp-report/
- Implemented DAP version 1.65.0
Fixed issues: https://github.com/eclipse-lsp4j/lsp4j/milestone/34?closed=1
- The exception handling around throwing
ResponseErrorException
has been improved to ensure that it is unwrapped to the expectedResponseError
on the receiving side. In addition,@JsonDelegate
s that throw exceptions have their checked exceptions wrapped in the more narrowIllegalStateException
instead of aRuntimeException
.- See #802 for detailed discussion.
Breaking API changes:
- DAP version 1.61 removed unused
ModulesViewDescriptor
japicmp report: https://download.eclipse.org/lsp4j/updates/releases/0.23.0/japicmp-report/
Fixed issues: https://github.com/eclipse-lsp4j/lsp4j/milestone/29?closed=1
- The
org.eclipse.lsp4j.websocket
bundle has been deprecated in preparation for removal in the future.- Please migrate to
org.eclipse.lsp4j.websocket.jakarta
- The
org.eclipse.lsp4j.websocket
bundle is no longer included in the SDK feature nor published to Eclipse SimRel - See #647 for detailed discussion.
- Please migrate to
Breaking API changes:
- The Message class now has a new transient field,
jsonHandler
, to enable thetoString
implementation to properly format messages when custom type adapters are used.- For consumers that have their own custom serializers or other reflective message processors they may need to be updated to ensure that transient fields are skipped, for example by using
Modifier.isTransient
- See #768 for detailed discussion.
- For consumers that have their own custom serializers or other reflective message processors they may need to be updated to ensure that transient fields are skipped, for example by using
- The name field in WorkspaceFolder is no longer optional according to the specification.
- See #741 for detailed discussion.
- The LSP4J generator when applied to
@JsonRpcData
annotated classes generates a dependency on packageorg.eclipse.lsp4j.jsonrpc.util
in theorg.eclipse.lsp4j.jsonrpc
bundle.- This removes the implied requirement in LSP4J 0.21.0 that there are classes called
ToStringBuilder
andPreconditions
in a sub-package calledutil
; instead, the generator now uses classesToStringBuilder
andPreconditions
in packageorg.eclipse.lsp4j.jsonrpc.util
. - Duplicate classes
ToStringBuilder
andPreconditions
have been removed fromorg.eclipse.lsp4j.util
andorg.eclipse.lsp4j.debug.util
packages. - See #742 for detailed discussion.
- This removes the implied requirement in LSP4J 0.21.0 that there are classes called
japicmp report: https://download.eclipse.org/lsp4j/updates/releases/0.22.0/japicmp-report/
This release widens the dependency range of Guava dependency and includes in the p2 site newer versions of third party dependencies. See #785 for details.
Fixed issues: https://github.com/eclipse-lsp4j/lsp4j/milestone/33?closed=1
Breaking API changes:
japicmp report: https://download.eclipse.org/lsp4j/updates/releases/0.21.2/japicmp-report/
Fixed issues: https://github.com/eclipse-lsp4j/lsp4j/milestone/32?closed=1
Breaking API changes:
japicmp report: https://download.eclipse.org/lsp4j/updates/releases/0.21.1/japicmp-report/
- Implemented DAP version 1.60.0
- LSP4J's implementation of JSON-RPC 2.0 specification has been fixed regarding
de-structure the outermost array wrapper if it's a single array parameter.
- See #553 for detailed discussion.
- xbase's
@Pure
andToStringBuilder
is no longer used by LSP4J- See #494 for detailed discussion.
Fixed issues: https://github.com/eclipse-lsp4j/lsp4j/milestone/28?closed=1
Breaking API changes:
- LSP4J now requires Java 11 to build and run. This can be observed in the japicmp report which says class file format version changed from 52.0 to 55.0. #547.
japicmp report: https://download.eclipse.org/lsp4j/updates/releases/0.21.0/japicmp-report/
Fixed issues: https://github.com/eclipse-lsp4j/lsp4j/milestone/29?closed=1
Breaking API changes:
japicmp report: https://download.eclipse.org/lsp4j/updates/releases/0.20.1/japicmp-report/
Fixed issues: https://github.com/eclipse-lsp4j/lsp4j/milestone/27?closed=1
Breaking API changes:
japicmp report: https://download.eclipse.org/lsp4j/updates/releases/0.20.0/japicmp-report/
Fixed issues: https://github.com/eclipse/lsp4j/milestone/30?closed=1
Breaking API changes:
japicmp report: https://download.eclipse.org/lsp4j/updates/releases/0.19.1/japicmp-report/
Fixed issues: https://github.com/eclipse-lsp4j/lsp4j/milestone/26?closed=1
Breaking API changes:
- Removed
WorkspaceDocumentDiagnosticReportTypeAdapter
, which was effectively replaced withWorkspaceDocumentDiagnosticReportListAdapter
as part of fixing issue #682.
japicmp report: https://download.eclipse.org/lsp4j/updates/releases/0.19.0/japicmp-report/
- Fixed issues related to reflection errors so that
--add-opens java.base/java.util.concurrent=ALL-UNNAMED
is no longer needed on Java 17.
Fixed issues: https://github.com/eclipse-lsp4j/lsp4j/milestone/25?closed=1
Breaking API changes:
- None.
japicmp report: https://download.eclipse.org/lsp4j/updates/releases/0.18.0/japicmp-report/
- Update org.eclipse.xtend.lib dependency to 2.28.0 to address CVE-2020-8908 #672
Fixed issues: https://github.com/eclipse-lsp4j/lsp4j/milestone/24?closed=1
Breaking API changes:
- None.
japicmp report: https://download.eclipse.org/lsp4j/updates/releases/0.17.0/japicmp-report/
- Implemented DAP version 1.58.0
Fixed issues: https://github.com/eclipse-lsp4j/lsp4j/milestone/23?closed=1
Breaking API changes:
- None.
japicmp report: https://download.eclipse.org/lsp4j/updates/releases/0.16.0/japicmp-report/
- Added Notebook support
- Added
WorkspaceSymbol.data
- Added support for client default behavior on renames
- Implemented DAP version 1.56.0
Fixed issues: https://github.com/eclipse-lsp4j/lsp4j/milestone/22?closed=1
Breaking API changes:
- Return type of
textDocument/prepareRename
changed fromEither<Range, PrepareRenameResult>
toEither3<Range, PrepareRenameResult, PrepareRenameDefaultBehavior>
- Class
SemanticTokensWithRegistrationOptions
now extendsAbstractTextDocumentRegistrationAndWorkDoneProgressOptions
instead ofAbstractWorkDoneProgressOptions
- Removed unspecified deprecated properties
InitializeParams.clientName
DidOpenTextDocumentParams.text
,DidChangeTextDocumentParams.uri
,TextDocumentPositionParams.uri
japicmp report: https://download.eclipse.org/lsp4j/updates/releases/0.15.0/japicmp-report/
- Added changes to the LSP 3.17 specification that were added after specification was published as done.
- See #630 for all changes.
Fixed issues: https://github.com/eclipse-lsp4j/lsp4j/milestone/21?closed=1
japicmp report: https://download.eclipse.org/lsp4j/updates/releases/0.14.0/japicmp-report/
- Implemented LSP version 3.17.0 (except Notebook support)
- Implemented DAP versions 1.45.0 - 1.55.0
Fixed issues: https://github.com/eclipse-lsp4j/lsp4j/milestone/20?closed=1
Breaking API changes:
- Method
LanguageClient.setTrace
moved toLanguageServer
, where it should have been according to the specification - Method
IDebugProtocolServer.runInTerminal
moved toIDebugProtocolClient
, where it should have been according to the specification - Removed
RenameOptions.id
as it was already deprecated and never specified forStaticRegistrationOptions
- Removed
SemanticTokenTypes.Member
as it was already deprecated and not specified - Removed
TraceValue.Message
as it was already deprecated and not specified - Changed
TraceValue
to befinal
matching similar classes - Removed duplicate
ResponseErrorCode
as it has been deprecated for several versions - Removed
ResponseErrorCode.serverErrorStart
andResponseErrorCode.serverErrorEnd
as they were already deprecated and just boundaries not actual error codes - Return type of
workspace/symbol
changed fromList<? extends SymbolInformation>
toEither<List<? extends SymbolInformation>, List<? extends WorkspaceSymbol>>
- Type of
FileSystemWatcher.globPattern
changed fromString
toEither<String, RelativePattern>
- In DAP, return type of
IDebugProtocolServer.setExceptionBreakpoints
changed fromVoid
toSetExceptionBreakpointsResponse
Breaking Beta API changes:
- Significant updates were made to the
TypeHierarchy
features to replace the non-standard implementation - Removed
WorkspaceEdit.resourceChanges
,WorkspaceEditCapabilities.resourceChanges
, andResourceChange
as they have been deprecated for numerous versions and are not specified
Deprecated API changes:
SymbolInformation
is deprecated in favor ofDocumentSymbol
orWorkspaceSymbol
ResponseErrorCode.serverNotInitialized
deprecated in favor ofResponseErrorCode.ServerNotInitialized
- Restored
org.eclipse.lsp4j.websocket
which will be included along withorg.eclipse.lsp4j.websocket.jakarta
. This will allow use of LSP4J over Jakarta websockets and pre-Jakarta websockets. See #536 for more details.
Fixed issues: https://github.com/eclipse-lsp4j/lsp4j/milestone/19?closed=1
Breaking API changes:
- Type of
CodeLensOptions.resolveProvider
changed fromboolean
toBoolean
Breaking changes in behavior:
- In case a type argument for
Either
is declared asObject
,EitherTypeAdapter
now usesJsonElementTypeAdapter
for parsing/serializing the corresponding value. Notably, this can affect parsing of propertiesSemanticTokensClientCapabilitiesRequests.range
andSemanticTokensWithRegistrationOptions.range
; their right-hand side, declared asObject
, will be parsed into aJsonElement
now.
- Implemented LSP version 3.16.0 (to finalized specification)
- Implemented LSP version 3.15.0's Progress specification
- Implemented DAP version 1.43.0
- Implemented DAP version 1.44.0
- Replaced
org.eclipse.lsp4j.websocket
byorg.eclipse.lsp4j.websocket.jakarta
for using LSP4J over Jakarta websockets
Fixed issues: https://github.com/eclipse-lsp4j/lsp4j/milestone/18?closed=1
Breaking API changes:
- Coloring and Semantic Highlighting APIs are removed
- Changed some types from
Number
toInteger
- Type of
CompletionItem.textEdit
changed fromTextEdit
toEither<TextEdit, InsertReplaceEdit>
- Type of
ServerCapabilities.hoverProvider
changed fromBoolean
toEither<Boolean, HoverOptions>
- Type of
ServerCapabilities.definitionProvider
changed fromBoolean
toEither<Boolean, DefinitionOptions>
- Type of
ServerCapabilities.typeDefinitionProvider
changed fromEither<Boolean, StaticRegistrationOptions>
toEither<Boolean, TypeDefinitionRegistrationOptions>
- Type of
ServerCapabilities.implementationProvider
changed fromEither<Boolean, StaticRegistrationOptions>
toEither<Boolean, ImplementationRegistrationOptions>
- Type of
ServerCapabilities.referencesProvider
changed fromBoolean
toEither<Boolean, ReferenceOptions>
- Type of
ServerCapabilities.documentHighlightProvider
changed fromBoolean
toEither<Boolean, DocumentHighlightOptions>
- Type of
ServerCapabilities.documentSymbolProvider
changed fromBoolean
toEither<Boolean, DocumentSymbolOptions>
- Type of
ServerCapabilities.workspaceSymbolProvider
changed fromBoolean
toEither<Boolean, WorkspaceSymbolOptions>
- Type of
ServerCapabilities.documentFormattingProvider
changed fromBoolean
toEither<Boolean, DocumentFormattingOptions>
- Type of
ServerCapabilities.documentRangeFormattingProvider
changed fromBoolean
toEither<Boolean, DocumentRangeFormattingOptions>
- Type of
ServerCapabilities.declarationProvider
changed fromEither<Boolean, StaticRegistrationOptions>
toEither<Boolean, DeclarationRegistrationOptions>
- Type of
ServerCapabilities.callHierarchyProvider
changed fromEither<Boolean, StaticRegistrationOptions>
toEither<Boolean, CallHierarchyRegistrationOptions>
- Type of
ServerCapabilities.selectionRangeProvider
changed fromEither<Boolean, StaticRegistrationOptions>
toEither<Boolean, SelectionRangeRegistrationOptions>
- Type of
ServerCapabilities.linkedEditingRangeProvider
changed fromEither<Boolean, StaticRegistrationOptions>
toEither<Boolean, LinkedEditingRangeRegistrationOptions>
- Type of
ProgressParams.value
changed fromWorkDoneProgressNotification
toEither<WorkDoneProgressNotification, Object>
Deprecated API changes:
- In DAP,
VariablePresentationHintKind.DATA_BREAKPOINT
has been marked @Deprecated to match its deprecation in the protocol in 1.44. - In DAP,
SetBreakpointsArguments.lines
has been marked @Deprecated to match its deprecation in protocol many versions ago.
- Implemented LSP version 3.16.0 (specification is not finalized yet)
- Implemented DAP version 1.37.0's CancelRequest
- Implemented DAP version 1.38.0
- Implemented DAP version 1.39.0
- Implemented DAP version 1.40.0
- Implemented DAP version 1.41.0
- Implemented DAP version 1.42.0
Fixed issues: https://github.com/eclipse-lsp4j/lsp4j/milestone/17?closed=1
Breaking API changes:
- In DAP,
ReadMemoryArguments.count
wasInteger
however it is a required property and has been changed toint
- In DAP,
Module.id
has been marked@NonNull
asid
is a required property. - In DAP,
Scope.presentationHint
was an enumScopePresentationHint
, it is now aString
aspresentationHint
has possible values that include - but not limited to those defined inScopePresentationHint
.ScopePresentationHint
has changed from an enum to an interface containing String constants. - In DAP,
SetBreakpointsArguments.lines
was changed fromInteger[]
toint[]
as the individual items in the array are not optional, but the array as a whole is optional. - In DAP,
TerminateThreadsArguments.threadIds
was changed fromInteger[]
toint[]
as the individual items in the array are not optional, but the array as a whole is optional.
Deprecated API changes:
- Semantic Highlighting is deprecated in favor of Semantic Tokens
- Implemented DAP version 1.36.0
- Implemented DAP version 1.37.0 (except CancelRequest)
- Implemented LSP version 3.15.0 (except Progress)
- Improved compatibility with prior versions of
vscode-languageclient
(#407)
Fixed issues: https://github.com/eclipse-lsp4j/lsp4j/milestone/15?closed=1
Breaking API changes:
-
In DebugProtocol fields which were
@NonNull Long
are nowint
as they are required. This brings the DAP implementation in LSP4J in line with the LSP implementation under the same conditions. -
In DebugProtocol fields which were
@NonNull Boolean
are nowboolean
as they are required. This brings the DAP implementation in LSP4J in line with the LSP implementation under the same conditions. -
In DebugProtocol fields which used to be defined as
Long
are nowInteger
. This is due to changes in DAP 1.36 and clarification sought from microsoft/debug-adapter-protocol#90 -
The DebugProtocol's
EvaluateResponse
's fieldmemoryReference
was previously incorrectly declared asLong
, it is now correctly declared asString
-
CodeActionKindCapabilities.valueSet
marked with@NonNull
-
Parameters for the following requests have been changed from
TextDocumentPositionParams
textDocument/signatureHelp
changed toSignatureHelpParams
textDocument/hover
changed toHoverParams
textDocument/declaration
changed toDeclarationParams
textDocument/definition
changed toDefinitionParams
textDocument/typeDefinition
changed toTypeDefinitionParams
textDocument/implementation
changed toImplementationParams
textDocument/documentHighlight
changed toDocumentHighlightParams
textDocument/prepareRename
changed toPrepareRenameParams
-
The LSP's Protocol
Diagnostic
fieldcode
was previously incorrectly declared asString
, it is now correctly declared asEither<String, Number>
Fixed issues: https://github.com/eclipse-lsp4j/lsp4j/milestone/16?closed=1
- Implemented DAP version 1.35.0
- Added new module
org.eclipse.lsp4j.websocket
for using LSP4J over websockets
Fixed issues: https://github.com/eclipse-lsp4j/lsp4j/milestone/12?closed=1
- Updated
textDocument/callHierarchy
according to latest proposal (note: changes to classes and methods marked with@Beta
are not regarded as API-breaking).
Fixed issues: https://github.com/eclipse-lsp4j/lsp4j/milestone/14?closed=1
Fixed issues: https://github.com/eclipse-lsp4j/lsp4j/milestone/13?closed=1
- Implemented LSP version 3.14.0
- Support tuple of two types with the
Tuple.Two
class
Fixed issues: https://github.com/eclipse-lsp4j/lsp4j/milestone/11?closed=1
Breaking API changes:
- Return type of
textDocument/definition
,textDocument/typeDefinition
andtextDocument/implementation
changed fromList<? extends Location>
toEither<List<? extends Location>, List<? extends LocationLink>>
- Type of
ParameterInformation.label
changed fromString
toEither<String, Tuple.Two<Integer, Integer>>
- Setters and constructors of protocol classes throw
IllegalArgumentException
if givennull
for properties marked with@NonNull
- Implemented LSP version 3.13.0
Fixed issues: https://github.com/eclipse-lsp4j/lsp4j/milestone/10?closed=1
Breaking API changes:
- Type of
WorkspaceEdit.documentChanges
changed fromList<TextDocumentEdit>
toList<Either<TextDocumentEdit, ResourceOperation>>
- Updated primary license to EPL v2.0 (the secondary license EDL v1.0 remains)
- Implemented LSP version 3.10.0
- Implemented DAP version 1.31.0
Fixed issues: https://github.com/eclipse-lsp4j/lsp4j/milestone/3?closed=1
Breaking API changes:
- Return type of
textDocument/documentSymbol
changed fromList<? extends SymbolInformation>
toList<Either<SymbolInformation, DocumentSymbol>>
- Return type of
textDocument/codeAction
changed fromList<? extends Command>
toList<Either<Command, CodeAction>>
Fixed issues: https://github.com/eclipse-lsp4j/lsp4j/milestone/4?closed=1
Breaking API changes:
- Type of
ServerCapabilities.colorProvider
changed fromColorProviderOptions
toEither<Boolean, ColorProviderOptions>
- Renamed
ColorPresentationParams.colorInfo
property tocolor
- Implemented the VS Code Debug Protocol
- Implemented LSP version 3.7.0
- Support multiple local and remote services
- Improved error handling
Fixed issues: https://github.com/eclipse-lsp4j/lsp4j/milestone/2?closed=1
Breaking API changes:
- Parameter of
completion
requests changed fromTextDocumentPositionParams
toCompletionParams
(this change breaks all LanguageServer implementations, but the migration is trivial) - Type of
CompletionItem.documentation
,ParameterInformation.documentation
andSignatureInformation.documentation
changed fromString
toEither<String, MarkupContent>
- Type of
Hover.contents
changed fromList<Either<String, MarkedString>>
toEither<List<Either<String, MarkedString>>, MarkupContent>
- All protocol properties with type
Object
are parsed toJsonElement
(previouslyMap
for objects andList
for arrays) - Corrected
DocumentFilter.schema
property name toscheme
- Removed
DocumentSelector
interface VersionedTextDocumentIdentifier.version
changed from typeint
toInteger
, thus can benull
now.
Fixed issues: https://github.com/eclipse-lsp4j/lsp4j/milestone/9?closed=1
- Support union of three types with the
Either3
class
Fixed issues: https://github.com/eclipse-lsp4j/lsp4j/milestone/1?closed=1
Fixed issues: https://github.com/eclipse-lsp4j/lsp4j/milestone/8?closed=1
- Implemented LSP version 3.0
- Support union of two types with the
Either
class - Support multiple parameters in protocol methods
- Support custom error codes
Fixed issues: https://github.com/eclipse-lsp4j/lsp4j/milestone/7?closed=1
Breaking API changes:
- Type of
ServerCapabilities.textDocumentSync
changed fromTextDocumentSyncKind
toEither<TextDocumentSyncKind, TextDocumentSyncOptions>
- Type of
Hover.contents
changed fromList<String>
toList<Either<String, MarkedString>>
Fixed issues: https://github.com/eclipse-lsp4j/lsp4j/milestone/6?closed=1
Fixed issues: https://github.com/eclipse-lsp4j/lsp4j/milestone/5?closed=1