The format of this file is based on Keep a Changelog. The LXTK project adheres to Semantic Versioning.
0.5.0 - 2024-09-18
This release aligns with the latest Eclipse SimRel, 2024-09. In particular, it ensures compatibility with recent LSP4J versions. There are no new features or breaking changes in this release.
0.4.0 - 2022-12-22
This release adds client-side support for some of the new features of LSP 3.17, including:
Breaking changes:
-
Moved classes related to diagnostic annotations from
org.lxtk.lx4e.diagnostics
toorg.lxtk.lx4e.ui.diagnostics
-
Renamed
DocumentSemanticTokensProvider.onDidChangeSemanticTokens()
toonRefreshSemanticTokens()
-
Renamed
AbstractLanguageClient.onDidChangeSemanticTokens()
toonRefreshSemanticTokens()
-
Return type of
RenameProvider.prepareRename
method changed fromCompletableFuture<Either<Range, PrepareRenameResult>>
toCompletableFuture<Either3<Range, PrepareRenameResult, PrepareRenameDefaultBehavior>>
-
Result type for
PrepareRenameRequest
changed fromEither<Range, PrepareRenameResult>
toEither3<Range, PrepareRenameResult, PrepareRenameDefaultBehavior>
-
Return type of
RenameRefactoring.getPrepareRenameResult
method changed fromEither<Range, PrepareRenameResult>
toEither3<Range, PrepareRenameResult, PrepareRenameDefaultBehavior>
-
Type of
result
parameter ofRenameRefactoring.setPrepareRenameResult
method changed fromEither<Range, PrepareRenameResult>
toEither3<Range, PrepareRenameResult, PrepareRenameDefaultBehavior>
-
Return type of
WorkspaceSymbolProvider.getWorkspaceSymbols
method changed fromCompletableFuture<List<? extends SymbolInformation>>
toCompletableFuture<Either<List<? extends SymbolInformation>, List<? extends WorkspaceSymbol>>>
-
Result type for
WorkspaceSymbolRequest
changed fromList<? extends SymbolInformation>
toEither<List<? extends SymbolInformation>, List<? extends WorkspaceSymbol>>
-
Type of elements returned by
WorkspaceSymbolSelectionDialog.getResult
method changed fromSymbolInformation
toWorkspaceSymbolItem
-
Added a required parameter of type
CompletionList
to constructors forBaseCompletionProposal
andCompletionProposal
-
Parameter type of
WordFinder.isWordPart
method changed fromchar
toint
Deprecated API elements:
SymbolLabelProvider
has been marked as deprecated and will be removed in a next release
0.3.0 - 2022-06-07
This release adds client-side support for new features of LSP 3.15 and 3.16, including:
- Progress Support
- Call Hierarchy
- Change Annotations
- Events for File Operations
- Linked Editing
- Semantic Tokens
It also adds client-side support for the following LSP features:
- Resource Operations in a Workspace Edit
- Events for Text Documents
- Document Links
LXTK Integration for Eclipse (LX4E) now supports aggregation of results of multiple providers for a language feature (previously, the best matching provider was used).
Also, code completion support has been reworked and improved. In particular:
- The previous implementation, which was derived from LSP4E, has been replaced completely
- Support for completion snippets has been significantly improved and is now on par with existing support in VS Code
Note that LXTK now requires at least Java 11 (previously, Java 8 was sufficient).
Other notable changes:
-
Request classes have been moved from
org.lxtk.lx4e
to a new package,org.lxtk.lx4e.requests
-
Class
org.lxtk.lx4e.refactoring.WorkspaceEditChangeFactory
has been redesigned from the ground up to support resource operations and change annotations in workspace edits; a new interface,IWorkspaceEditChangeFactory
, has been extracted from this class to theorg.lxtk.lx4e
package.Breaking changes in
WorkspaceEditChangeFactory
:- changed
createChange(String, WorkspaceEdit, RefactoringStatus, IProgressMonitor)
tocreateChange(String, WorkspaceEdit, IProgressMonitor)
- removed
addTextChange(CompositeChange, TextDocumentEdit)
- removed
addResourceChange(CompositeChange, ResourceOperation)
Related breaking changes in
IUriHandler
:- added
getCreateFileChange(URI, CreateFileOptions)
- added
getDeleteFileChange(URI, DeleteFileOptions)
- added
getRenameFileChange(URI, RenameFileOptions)
- changed
-
Support for
DidSave
has been redesigned in line with support forWillSave
andWillSaveUntil
; a new constructor,TextDocumentSyncFeature(DocumentService, TextDocumentWillSaveEventSource, TextDocumentWillSaveWaitUntilEventSource, TextDocumentSaveEventSource)
, has been introduced to uniformly support all of these events.Related breaking changes:
- removed
DocumentService.onDidSaveTextDocument()
- removed
TextDocument.onDidSave()
- removed
-
Support for client-side merging of change events for a text document has been introduced via
TextDocumentSyncFeature.setChangeEventMergeStrategy(TextDocumentChangeEventMergeStrategy)
method.Related breaking changes:
- added
DocumentService.onWillChangeTextDocument()
- added
TextDocument.onWillChange()
- added
-
org.lxtk.CommandHandler
andorg.lxtk.CommandService
interfaces have been redesigned to support progress.Breaking changes in
CommandHandler
:- changed
execute(List<Object>)
toexecute(ExecuteCommandParams)
- added
getRegistrationOptions()
Breaking changes in
CommandService
:- removed
executeCommand(String, List<Object>)
- added
getCommandHandler(String)
- changed
0.2.0 - 2021-01-22
This is the first public release of LXTK. It provides client-side support for the following LSP features:
- Code Action
- Code Lens, including Code Lens Resolve
- Completion, including Completion Item Resolve
- Diagnostics
- Document Formatting, including Range Formatting
- Document Highlights
- Document Symbols
- Find References
- Folding Range
- Go to Declaration
- Go to Definition
- Go to Implementation
- Go to Type Definition
- Hover
- Rename, including Prepare Rename
- Signature Help
- Workspace Edit, except for resource operations
- Workspace Folders
- Workspace Symbols
LXTK 0.2 does not support features introduced in LSP 3.15 or above.