use of org.eclipse.n4js.xtext.ide.server.ResourceTaskManager in project n4js by eclipse.
the class N4JSCodeActionService method doApplyToFile.
/**
* Applies given quick fix to file with given URI and waits for and returns the resulting edits.
*/
protected Map<String, List<TextEdit>> doApplyToFile(URI uri, String issueCode, QuickFixImplementation quickfix, CancelIndicator cancelIndicator) {
TextEditCollector collector = new TextEditCollector();
TextDocumentIdentifier textDocId = new TextDocumentIdentifier(uriExtensions.toUriString(uri));
ResourceTaskManager resourceTaskManager = languageServer.getResourceTaskManager();
resourceTaskManager.<Void>runInTemporaryContext(uri, "doApplyToFile", false, cancelIndicator, (ofc, ci) -> {
XtextResource res = ofc.getResource();
List<? extends Issue> issues = ofc.resolveAndValidateResource(ci);
XDocument doc = ofc.getDocument();
for (Issue issue : issues) {
if (issueCode.equals(issue.getCode())) {
Options newOptions = createOptions(res, doc, textDocId, issue, ci);
quickfix.compute(issueCode, newOptions, collector);
}
}
return null;
}).join();
return collector.allEdits;
}
Aggregations