/** * Degenerates the given edit tree into a list.<br> * All nodes of the result are leafs.<br> * <strong>The given edit is modified and can no longer be used.</strong> * * @param edit the edit tree to flatten * @return a list of edits * @since 3.4 */ public static MultiTextEdit flatten(TextEdit edit) { MultiTextEdit result= new MultiTextEdit(); flatten(edit, result); return result; }
/** * Degenerates the given edit tree into a list.<br> * All nodes of the result are leafs.<br> * <strong>The given edit is modified and can no longer be used.</strong> * * @param edit the edit tree to flatten * @return a list of edits * @since 3.4 */ public static MultiTextEdit flatten(TextEdit edit) { MultiTextEdit result= new MultiTextEdit(); flatten(edit, result); return result; }
private List<org.eclipse.lsp4j.TextEdit> format(ICompilationUnit cu, IDocument document, IRegion region, FormattingOptions options, boolean includeComments, IProgressMonitor monitor) { if (cu == null || document == null || region == null || monitor.isCanceled()) { return Collections.emptyList(); } CodeFormatter formatter = ToolFactory.createCodeFormatter(getOptions(options, cu)); String lineDelimiter = TextUtilities.getDefaultLineDelimiter(document); String sourceToFormat = document.get(); int kind = getFormattingKind(cu, includeComments); TextEdit format = formatter.format(kind, sourceToFormat, region.getOffset(), region.getLength(), 0, lineDelimiter); if (format == null || format.getChildren().length == 0 || monitor.isCanceled()) { // nothing to return return Collections.<org.eclipse.lsp4j.TextEdit>emptyList(); } MultiTextEdit flatEdit = TextEditUtil.flatten(format); return convertEdits(flatEdit.getChildren(), document); }
private static void flatten(TextEdit edit, MultiTextEdit result) { if (!edit.hasChildren()) { result.addChild(edit); } else { TextEdit[] children= edit.getChildren(); for (int i= 0; i < children.length; i++) { TextEdit child= children[i]; child.getParent().removeChild(0); flatten(child, result); } } }
private static void flatten(TextEdit edit, MultiTextEdit result) { if (!edit.hasChildren()) { result.addChild(edit); } else { TextEdit[] children= edit.getChildren(); for (int i= 0; i < children.length; i++) { TextEdit child= children[i]; child.getParent().removeChild(0); flatten(child, result); } } }
formatEdit.addChild(edit); if (!TextEditUtil.isPacked(formatEdit)) { formatEdit= TextEditUtil.flatten(formatEdit);
formatEdit.addChild(edit); if (!TextEditUtil.isPacked(formatEdit)) { formatEdit= TextEditUtil.flatten(formatEdit);