Fixed issues: https://github.com/eclipse-lsp4j/lsp4j/milestone/37?closed=1 (Update with corresponding milestone number)
Breaking API changes:
japicmp report: https://download.eclipse.org/lsp4j/builds/main/japicmp-report/
- Implemented LSP version 3.18.0 (specification is not finalized yet)
- Implemented LSP proposal for
SymbolTag#856 - Removed
@Deprecatedannotations on members deprecated in the LSP/DAP protocol #895 - Implemented DAP version 1.70.0
Fixed issues: https://github.com/eclipse-lsp4j/lsp4j/milestone/37?closed=1
Breaking API changes:
- Removed deprecated API #874
- Remove deprecated convenience constructors in protocol files #875
- Remove deprecated LanguageServerAPI annotation #876
- Remove deprecated get/set properties in FormattingOptions #880
- Remove deprecated static methods in the Either class, instead use TypeUtils helper methods #877
- Remove deprecated factories #878
- Remove deprecated ResponseErrorCode.serverNotInitialized, use ResponseErrorCode.ServerNotInitialized instead #879
- Remove deprecated org.eclipse.lsp4j.websocket. Please upgrade to using Jakarta or remain with LSP4J version 0.x.x #647
- Remove deprecated ConcurrentMessageProcessor.startProcessing, use ConcurrentMessageProcessor.beginProcessing instead #922
- Added beta support for new features in LSP 3.18 #893
- Type of
TextDocumentEdit.editschanged fromList<TextEdit>toList<Either<TextEdit, SnippetTextEdit>> - Type of
Diagnostic.messagechanged fromStringtoEither<String, MarkupContent> - Type of
DocumentFilter.patternchanged fromStringtoEither<String, RelativePattern> - Type of
NotebookDocumentFilter.patternchanged fromStringtoEither<String, RelativePattern>
- Type of
- Removed
throws IOExceptionfrom methods that do not need to throw it #934EitherTypeAdapter.createLeftEitherTypeAdapter.createRightEitherTypeAdapter.EitherTypeArgument.read(JsonElement)StreamMessageProducer.handleMessage
japicmp report: https://download.eclipse.org/lsp4j/updates/releases/1.0.0/japicmp-report/
- Implemented DAP version 1.69.0
Fixed issues: https://github.com/eclipse-lsp4j/lsp4j/milestone/35?closed=1
Breaking API changes:
japicmp report: https://download.eclipse.org/lsp4j/updates/releases/0.24.0/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
ResponseErrorExceptionhas been improved to ensure that it is unwrapped to the expectedResponseErroron the receiving side. In addition,@JsonDelegates that throw exceptions have their checked exceptions wrapped in the more narrowIllegalStateExceptioninstead 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.websocketbundle has been deprecated in preparation for removal in the future.- Please migrate to
org.eclipse.lsp4j.websocket.jakarta - The
org.eclipse.lsp4j.websocketbundle 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 thetoStringimplementation 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
@JsonRpcDataannotated classes generates a dependency on packageorg.eclipse.lsp4j.jsonrpc.utilin theorg.eclipse.lsp4j.jsonrpcbundle.- This removes the implied requirement in LSP4J 0.21.0 that there are classes called
ToStringBuilderandPreconditionsin a sub-package calledutil; instead, the generator now uses classesToStringBuilderandPreconditionsin packageorg.eclipse.lsp4j.jsonrpc.util. - Duplicate classes
ToStringBuilderandPreconditionshave been removed fromorg.eclipse.lsp4j.utilandorg.eclipse.lsp4j.debug.utilpackages. - 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
@PureandToStringBuilderis 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 withWorkspaceDocumentDiagnosticReportListAdapteras 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-UNNAMEDis 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/prepareRenamechanged fromEither<Range, PrepareRenameResult>toEither3<Range, PrepareRenameResult, PrepareRenameDefaultBehavior> - Class
SemanticTokensWithRegistrationOptionsnow extendsAbstractTextDocumentRegistrationAndWorkDoneProgressOptionsinstead ofAbstractWorkDoneProgressOptions - Removed unspecified deprecated properties
InitializeParams.clientNameDidOpenTextDocumentParams.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.setTracemoved toLanguageServer, where it should have been according to the specification - Method
IDebugProtocolServer.runInTerminalmoved toIDebugProtocolClient, where it should have been according to the specification - Removed
RenameOptions.idas it was already deprecated and never specified forStaticRegistrationOptions - Removed
SemanticTokenTypes.Memberas it was already deprecated and not specified - Removed
TraceValue.Messageas it was already deprecated and not specified - Changed
TraceValueto befinalmatching similar classes - Removed duplicate
ResponseErrorCodeas it has been deprecated for several versions - Removed
ResponseErrorCode.serverErrorStartandResponseErrorCode.serverErrorEndas they were already deprecated and just boundaries not actual error codes - Return type of
workspace/symbolchanged fromList<? extends SymbolInformation>toEither<List<? extends SymbolInformation>, List<? extends WorkspaceSymbol>> - Type of
FileSystemWatcher.globPatternchanged fromStringtoEither<String, RelativePattern> - In DAP, return type of
IDebugProtocolServer.setExceptionBreakpointschanged fromVoidtoSetExceptionBreakpointsResponse
Breaking Beta API changes:
- Significant updates were made to the
TypeHierarchyfeatures to replace the non-standard implementation - Removed
WorkspaceEdit.resourceChanges,WorkspaceEditCapabilities.resourceChanges, andResourceChangeas they have been deprecated for numerous versions and are not specified
Deprecated API changes:
SymbolInformationis deprecated in favor ofDocumentSymbolorWorkspaceSymbolResponseErrorCode.serverNotInitializeddeprecated in favor ofResponseErrorCode.ServerNotInitialized
- Restored
org.eclipse.lsp4j.websocketwhich 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.resolveProviderchanged frombooleantoBoolean
Breaking changes in behavior:
- In case a type argument for
Eitheris declared asObject,EitherTypeAdapternow usesJsonElementTypeAdapterfor parsing/serializing the corresponding value. Notably, this can affect parsing of propertiesSemanticTokensClientCapabilitiesRequests.rangeandSemanticTokensWithRegistrationOptions.range; their right-hand side, declared asObject, will be parsed into aJsonElementnow.
- 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.websocketbyorg.eclipse.lsp4j.websocket.jakartafor 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
NumbertoInteger - Type of
CompletionItem.textEditchanged fromTextEdittoEither<TextEdit, InsertReplaceEdit> - Type of
ServerCapabilities.hoverProviderchanged fromBooleantoEither<Boolean, HoverOptions> - Type of
ServerCapabilities.definitionProviderchanged fromBooleantoEither<Boolean, DefinitionOptions> - Type of
ServerCapabilities.typeDefinitionProviderchanged fromEither<Boolean, StaticRegistrationOptions>toEither<Boolean, TypeDefinitionRegistrationOptions> - Type of
ServerCapabilities.implementationProviderchanged fromEither<Boolean, StaticRegistrationOptions>toEither<Boolean, ImplementationRegistrationOptions> - Type of
ServerCapabilities.referencesProviderchanged fromBooleantoEither<Boolean, ReferenceOptions> - Type of
ServerCapabilities.documentHighlightProviderchanged fromBooleantoEither<Boolean, DocumentHighlightOptions> - Type of
ServerCapabilities.documentSymbolProviderchanged fromBooleantoEither<Boolean, DocumentSymbolOptions> - Type of
ServerCapabilities.workspaceSymbolProviderchanged fromBooleantoEither<Boolean, WorkspaceSymbolOptions> - Type of
ServerCapabilities.documentFormattingProviderchanged fromBooleantoEither<Boolean, DocumentFormattingOptions> - Type of
ServerCapabilities.documentRangeFormattingProviderchanged fromBooleantoEither<Boolean, DocumentRangeFormattingOptions> - Type of
ServerCapabilities.declarationProviderchanged fromEither<Boolean, StaticRegistrationOptions>toEither<Boolean, DeclarationRegistrationOptions> - Type of
ServerCapabilities.callHierarchyProviderchanged fromEither<Boolean, StaticRegistrationOptions>toEither<Boolean, CallHierarchyRegistrationOptions> - Type of
ServerCapabilities.selectionRangeProviderchanged fromEither<Boolean, StaticRegistrationOptions>toEither<Boolean, SelectionRangeRegistrationOptions> - Type of
ServerCapabilities.linkedEditingRangeProviderchanged fromEither<Boolean, StaticRegistrationOptions>toEither<Boolean, LinkedEditingRangeRegistrationOptions> - Type of
ProgressParams.valuechanged fromWorkDoneProgressNotificationtoEither<WorkDoneProgressNotification, Object>
Deprecated API changes:
- In DAP,
VariablePresentationHintKind.DATA_BREAKPOINThas been marked @Deprecated to match its deprecation in the protocol in 1.44. - In DAP,
SetBreakpointsArguments.lineshas 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.countwasIntegerhowever it is a required property and has been changed toint - In DAP,
Module.idhas been marked@NonNullasidis a required property. - In DAP,
Scope.presentationHintwas an enumScopePresentationHint, it is now aStringaspresentationHinthas possible values that include - but not limited to those defined inScopePresentationHint.ScopePresentationHinthas changed from an enum to an interface containing String constants. - In DAP,
SetBreakpointsArguments.lineswas changed fromInteger[]toint[]as the individual items in the array are not optional, but the array as a whole is optional. - In DAP,
TerminateThreadsArguments.threadIdswas 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 Longare nowintas 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 Booleanare nowbooleanas 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
Longare nowInteger. This is due to changes in DAP 1.36 and clarification sought from microsoft/debug-adapter-protocol#90 -
The DebugProtocol's
EvaluateResponse's fieldmemoryReferencewas previously incorrectly declared asLong, it is now correctly declared asString -
CodeActionKindCapabilities.valueSetmarked with@NonNull -
Parameters for the following requests have been changed from
TextDocumentPositionParamstextDocument/signatureHelpchanged toSignatureHelpParamstextDocument/hoverchanged toHoverParamstextDocument/declarationchanged toDeclarationParamstextDocument/definitionchanged toDefinitionParamstextDocument/typeDefinitionchanged toTypeDefinitionParamstextDocument/implementationchanged toImplementationParamstextDocument/documentHighlightchanged toDocumentHighlightParamstextDocument/prepareRenamechanged toPrepareRenameParams
-
The LSP's Protocol
Diagnosticfieldcodewas 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.websocketfor using LSP4J over websockets
Fixed issues: https://github.com/eclipse-lsp4j/lsp4j/milestone/12?closed=1
- Updated
textDocument/callHierarchyaccording to latest proposal (note: changes to classes and methods marked with@Betaare 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.Twoclass
Fixed issues: https://github.com/eclipse-lsp4j/lsp4j/milestone/11?closed=1
Breaking API changes:
- Return type of
textDocument/definition,textDocument/typeDefinitionandtextDocument/implementationchanged fromList<? extends Location>toEither<List<? extends Location>, List<? extends LocationLink>> - Type of
ParameterInformation.labelchanged fromStringtoEither<String, Tuple.Two<Integer, Integer>> - Setters and constructors of protocol classes throw
IllegalArgumentExceptionif givennullfor 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.documentChangeschanged 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/documentSymbolchanged fromList<? extends SymbolInformation>toList<Either<SymbolInformation, DocumentSymbol>> - Return type of
textDocument/codeActionchanged 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.colorProviderchanged fromColorProviderOptionstoEither<Boolean, ColorProviderOptions> - Renamed
ColorPresentationParams.colorInfoproperty 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
completionrequests changed fromTextDocumentPositionParamstoCompletionParams(this change breaks all LanguageServer implementations, but the migration is trivial) - Type of
CompletionItem.documentation,ParameterInformation.documentationandSignatureInformation.documentationchanged fromStringtoEither<String, MarkupContent> - Type of
Hover.contentschanged fromList<Either<String, MarkedString>>toEither<List<Either<String, MarkedString>>, MarkupContent> - All protocol properties with type
Objectare parsed toJsonElement(previouslyMapfor objects andListfor arrays) - Corrected
DocumentFilter.schemaproperty name toscheme - Removed
DocumentSelectorinterface VersionedTextDocumentIdentifier.versionchanged from typeinttoInteger, thus can benullnow.
Fixed issues: https://github.com/eclipse-lsp4j/lsp4j/milestone/9?closed=1
- Support union of three types with the
Either3class
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
Eitherclass - 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.textDocumentSyncchanged fromTextDocumentSyncKindtoEither<TextDocumentSyncKind, TextDocumentSyncOptions> - Type of
Hover.contentschanged 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