下面列出了怎么用org.eclipse.lsp4j.UnregistrationParams的API类实例代码及写法,或者点击链接到github查看源代码。
@Override
public CompletableFuture<Void> unregisterCapability(UnregistrationParams params) {
return CompletableFuture.runAsync(() -> params.getUnregisterations().forEach((Unregistration r) -> {
String id = r.getId();
Optional<DynamicRegistrationMethods> method = DynamicRegistrationMethods.forName(r.getMethod());
if (registrations.containsKey(id)) {
registrations.remove(id);
} else {
Map<DynamicRegistrationMethods, String> inverted = new HashMap<>();
for (Map.Entry<String, DynamicRegistrationMethods> entry : registrations.entrySet()) {
inverted.put(entry.getValue(), entry.getKey());
}
if (method.isPresent() && inverted.containsKey(method.get())) {
registrations.remove(inverted.get(method.get()));
}
}
}));
}
protected IDisposable register(String command, IExecutableCommandService service) {
String requestId = UUID.randomUUID().toString();
Registration reg = new Registration();
reg.setId(requestId);
reg.setMethod(ExecutableCommandRegistry.METHOD);
ExecuteCommandOptions executeCommandOptions = new ExecuteCommandOptions();
executeCommandOptions.setCommands(Collections.unmodifiableList(Lists.newArrayList(command)));
reg.setRegisterOptions(executeCommandOptions);
RegistrationParams registrationParams = new RegistrationParams();
registrationParams.setRegistrations(Lists.newArrayList(reg));
client.registerCapability(registrationParams);
registeredCommands.put(command, service);
return () -> {
Unregistration unReg = new Unregistration();
unReg.setId(requestId);
unReg.setMethod(ExecutableCommandRegistry.METHOD);
UnregistrationParams unregistrationParams = new UnregistrationParams();
unregistrationParams.setUnregisterations(Lists.newArrayList(unReg));
this.client.unregisterCapability(unregistrationParams);
this.registeredCommands.remove(command, service);
};
}
void unregisterCapability(UnregistrationParams params) {
params.getUnregisterations().forEach(reg -> {
String id = reg.getId();
Runnable unregistrator;
synchronized (dynamicRegistrations) {
unregistrator = dynamicRegistrations.get(id);
dynamicRegistrations.remove(id);
}
if (unregistrator != null) {
unregistrator.run();
}
});
}
public void unregisterCapability(String id, String method) {
if (registeredCapabilities.remove(id)) {
Unregistration unregistration = new Unregistration(id, method);
UnregistrationParams unregistrationParams = new UnregistrationParams(
Collections.singletonList(unregistration));
languageClient.unregisterCapability(unregistrationParams);
}
}
public void unregisterCapability(String id, String method) {
if (registeredCapabilities.remove(id)) {
Unregistration unregistration = new Unregistration(id, method);
UnregistrationParams unregistrationParams = new UnregistrationParams(Collections.singletonList(unregistration));
client.unregisterCapability(unregistrationParams);
}
}
@Override
public CompletableFuture<Void> unregisterCapability(UnregistrationParams params) {
return CompletableFuture.runAsync(() -> wrapper.unregisterCapability(params));
}
/**
* @see {@link org.eclipse.lsp4j.services.LanguageClient#unregisterCapability(RegistrationParams)}
*/
public void unregisterCapability(UnregistrationParams params) {
client.unregisterCapability(params);
}
@Override
public CompletableFuture<Void> unregisterCapability(UnregistrationParams params) {
Unregistration unreg = Iterables.getFirst(params.getUnregisterations(), null);
registered.remove(unreg.getId());
return CompletableFuture.completedFuture(null);
}
/**
* The client/unregisterCapability request is sent from the server to the client
* to unregister a previously register capability.
*/
@JsonRequest("client/unregisterCapability")
default CompletableFuture<Void> unregisterCapability(UnregistrationParams params) {
throw new UnsupportedOperationException();
}