本文整理汇总了Java中org.eclipse.text.edits.TextEdit.getParent方法的典型用法代码示例。如果您正苦于以下问题:Java TextEdit.getParent方法的具体用法?Java TextEdit.getParent怎么用?Java TextEdit.getParent使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.eclipse.text.edits.TextEdit
的用法示例。
在下文中一共展示了TextEdit.getParent方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: moveTextEditGroupsIntoChange
import org.eclipse.text.edits.TextEdit; //导入方法依赖的package包/类
/**
* Moves the given text edit groups (and its text edits) into the given
* change.
*/
public static void moveTextEditGroupsIntoChange(
TextEditBasedChangeGroup[] groups, TextChange textChange) {
for (TextEditBasedChangeGroup changeGroup : groups) {
TextEditGroup group = changeGroup.getTextEditGroup();
for (TextEdit edit : group.getTextEdits()) {
if (edit.getParent() != null) {
edit.getParent().removeChild(edit);
}
textChange.addEdit(edit);
}
// We must create a new change group since it doesn't have API to change
// the parent change
TextEditBasedChangeGroup newChangeGroup = new TextEditBasedChangeGroup(
textChange, group);
newChangeGroup.setEnabled(changeGroup.isEnabled());
textChange.addChangeGroup(newChangeGroup);
}
}
示例2: replaceTextEdit
import org.eclipse.text.edits.TextEdit; //导入方法依赖的package包/类
/**
* Replaces an existing TextEdit (which is reachable from the given list of
* TextEditGroups) with another TextEdit.
* <p>
* If the TextEdit is a root of a TextEdit tree, the TextEditGroup's reference
* will be updated. If it is not a root, its parent TextEdit's reference will
* be updated.
*
* @return whether a replacement occurred
*/
public static boolean replaceTextEdit(List<TextEditGroup> textEditGroups,
TextEdit oldEdit, TextEdit newEdit) {
TextEdit parentEdit = oldEdit.getParent();
if (parentEdit != null) {
// This is not a root edit, so just replace the edit in the parent
return replaceTextEdit(parentEdit, oldEdit, newEdit);
}
// This is a root edit, find the corresponding group and replace it there
for (TextEditGroup group : textEditGroups) {
TextEdit[] edits = group.getTextEdits();
if (!replaceTextEdit(oldEdit, newEdit, edits)) {
return false;
}
// Replace text edits, in order
group.clearTextEdits();
// We already swapped the edit in the edits array, add the array back
for (TextEdit edit : edits) {
group.addTextEdit(edit);
}
}
return true;
}
示例3: removeTextEdit
import org.eclipse.text.edits.TextEdit; //导入方法依赖的package包/类
/**
* Removes a text edit from a group, optionally updating its owner change. If
* the edit is the root edit of the owner change, the change will be removed
* from its parent.
*
* @param edit the text edit
* @param group the text edit group to update, optional
* @param change the change to update, optional
* @return true if the text edit was removed
*/
public static boolean removeTextEdit(TextEdit edit, TextEditGroup group,
TextEditBasedChange change) {
boolean removed = false;
boolean removeChange = false;
// First remove this edit from its parent, if it has one
TextEdit parentEdit = edit.getParent();
if (parentEdit != null) {
removed |= parentEdit.removeChild(edit);
if (!parentEdit.hasChildren()) {
// This parent edit is now empty, so remove it from the change and group
edit = parentEdit;
}
}
// Remove the edit from the group
if (group != null) {
removed |= group.removeTextEdit(edit);
if (group.getTextEdits().length == 0) {
// The group has no more edits. We'd like to remove it from the change,
// but there is no API. Instead, see if this group is the only group in
// the change and trigger removing the change altogether.
if (change != null) {
TextEditBasedChangeGroup[] changeGroups = change.getChangeGroups();
if (changeGroups.length == 1
&& changeGroups[0].getTextEditGroup().equals(group)) {
// This is the only group in the change, remove the change
removeChange = true;
}
}
}
}
// Remove the change if this was its root edit
if (!removeChange && change != null && change instanceof TextFileChange) {
TextFileChange textFileChange = (TextFileChange) change;
if (edit.equals(textFileChange.getEdit())) {
removeChange = true;
}
}
// Execute change removal
if (removeChange && change != null) {
Change parentChange = change.getParent();
if (parentChange instanceof CompositeChange) {
removed |= ((CompositeChange) parentChange).remove(change);
}
}
return removed;
}