private void updateContentInCompareWidget(PreviewNode selectedNode, List<TextEdit> edits) { String path = selectedNode.getUri(); Container workspaceRoot = appContext.getWorkspaceRoot(); Promise<Optional<File>> file = workspaceRoot.getFile(path); file.then( fileOptional -> { if (!fileOptional.isPresent()) { return; } File existingFile = fileOptional.get(); existingFile .getContent() .then( content -> { ChangePreview changePreview = new ChangePreview(); changePreview.setFileName(existingFile.getName()); changePreview.setOldContent(content); // apply all related TextEdit to show new content in compare widget StringBuilder output = new StringBuilder(); new StringStreamEditor(edits, content, output).transform(); String result = output.toString(); changePreview.setNewContent(result); view.showDiff(changePreview); }); }); }