SemanticTokensWithRegistrationOptions currently extends AbstractWorkDoneProgressOptions. It should probably extend AbstractTextDocumentRegistrationAndWorkDoneProgressOptions instead. This would make it extend TextDocumentRegistrationOptions, from which other similar options are derived (and hence, would allow a greater opportunity for polymorphism).
Formally, this is a breaking API change, but it seems to be a relatively mild one in practice: because AbstractWorkDoneProgressOptions implements the interface WorkDoneProgressOptions, there seems to be little reason for LSP4J consumers to depend on the fact that SemanticTokensWithRegistrationOptions currently extends AbstractWorkDoneProgressOptions (as opposed to just implementing WorkDoneProgressOptions).
SemanticTokensWithRegistrationOptions
currently extendsAbstractWorkDoneProgressOptions
. It should probably extendAbstractTextDocumentRegistrationAndWorkDoneProgressOptions
instead. This would make it extendTextDocumentRegistrationOptions
, from which other similar options are derived (and hence, would allow a greater opportunity for polymorphism).Formally, this is a breaking API change, but it seems to be a relatively mild one in practice: because
AbstractWorkDoneProgressOptions
implements the interfaceWorkDoneProgressOptions
, there seems to be little reason for LSP4J consumers to depend on the fact thatSemanticTokensWithRegistrationOptions
currently extendsAbstractWorkDoneProgressOptions
(as opposed to just implementingWorkDoneProgressOptions
).WDYT?