Fixed issues: https://github.com/eclipse-lsp4j/lsp4j/milestone/29?closed=1
Breaking API changes:
Nightly japicmp report: https://download.eclipse.org/lsp4j/builds/main/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. eclipse-lsp4j#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 eclipse-lsp4j#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 eclipse-lsp4j#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
(eclipse-lsp4j#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