本文整理汇总了Java中org.eclipse.text.undo.IDocumentUndoManager.endCompoundChange方法的典型用法代码示例。如果您正苦于以下问题:Java IDocumentUndoManager.endCompoundChange方法的具体用法?Java IDocumentUndoManager.endCompoundChange怎么用?Java IDocumentUndoManager.endCompoundChange使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.eclipse.text.undo.IDocumentUndoManager
的用法示例。
在下文中一共展示了IDocumentUndoManager.endCompoundChange方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: applyEdits
import org.eclipse.text.undo.IDocumentUndoManager; //导入方法依赖的package包/类
/**
* Method will apply all edits to document as single modification. Needs to
* be executed in UI thread.
*
* @param document
* document to modify
* @param edits
* list of LSP TextEdits
*/
public static void applyEdits(IDocument document, TextEdit edit) {
if (document == null) {
return;
}
IDocumentUndoManager manager = DocumentUndoManagerRegistry.getDocumentUndoManager(document);
if (manager != null) {
manager.beginCompoundChange();
}
try {
RewriteSessionEditProcessor editProcessor = new RewriteSessionEditProcessor(document, edit,
org.eclipse.text.edits.TextEdit.NONE);
editProcessor.performEdits();
} catch (MalformedTreeException | BadLocationException e) {
EditorConfigPlugin.logError(e);
}
if (manager != null) {
manager.endCompoundChange();
}
}
示例2: removeComment
import org.eclipse.text.undo.IDocumentUndoManager; //导入方法依赖的package包/类
private void removeComment(IDocument doc, int offset) {
try {
IDocumentUndoManager undoMgr = DocumentUndoManagerRegistry.getDocumentUndoManager(doc);
undoMgr.beginCompoundChange();
ITypedRegion par = TextUtilities.getPartition(doc, Partitions.MK_PARTITIONING, offset, false);
int beg = par.getOffset();
int len = par.getLength();
String comment = doc.get(beg, len);
int eLen = markerLen(comment);
int bLen = eLen + 1;
MultiTextEdit edit = new MultiTextEdit();
edit.addChild(new DeleteEdit(beg, bLen));
edit.addChild(new DeleteEdit(beg + len - eLen, eLen));
edit.apply(doc);
undoMgr.endCompoundChange();
} catch (MalformedTreeException | BadLocationException e) {
Log.error("Failure removing comment " + e.getMessage());
}
}
示例3: applyEdits
import org.eclipse.text.undo.IDocumentUndoManager; //导入方法依赖的package包/类
/**
* Method will apply all edits to document as single modification. Needs to
* be executed in UI thread.
*
* @param document
* document to modify
* @param edits
* list of TypeScript {@link CodeEdit}.
* @throws TypeScriptException
* @throws BadLocationException
* @throws MalformedTreeException
*/
public static void applyEdits(IDocument document, List<CodeEdit> codeEdits)
throws TypeScriptException, MalformedTreeException, BadLocationException {
if (document == null || codeEdits.isEmpty()) {
return;
}
IDocumentUndoManager manager = DocumentUndoManagerRegistry.getDocumentUndoManager(document);
if (manager != null) {
manager.beginCompoundChange();
}
try {
TextEdit edit = toTextEdit(codeEdits, document);
// RewriteSessionEditProcessor editProcessor = new
// RewriteSessionEditProcessor(document, edit,
// org.eclipse.text.edits.TextEdit.NONE);
// editProcessor.performEdits();
edit.apply(document);
} finally {
if (manager != null) {
manager.endCompoundChange();
}
}
}
示例4: replaceAll
import org.eclipse.text.undo.IDocumentUndoManager; //导入方法依赖的package包/类
/**
* Replace all occurrences
*/
private void replaceAll() {
boolean allState = isReplaceAll();
IDocumentUndoManager undoer = DocumentUndoManagerRegistry.getDocumentUndoManager(getDocument());
try {
paused = false;
setReplaceAll(true); // force flag so we don't re-enter the undoer during case replacement
if (undoer != null) {
undoer.beginCompoundChange();
}
replaceIt();
while (findNext(getSearchStr())){
replaceIt();
}
} finally {
setReplaceAll(allState);
if (undoer != null) {
undoer.endCompoundChange();
}
}
finish();
}
示例5: format
import org.eclipse.text.undo.IDocumentUndoManager; //导入方法依赖的package包/类
public static void format(FluentMkEditor editor, ITextSelection sel) {
IDocument doc = editor.getDocument();
if (doc == null || doc.getLength() == 0) return;
docLength = doc.getLength();
IPreferenceStore store = editor.getPrefsStore();
cols = store.getInt(Prefs.EDITOR_FORMATTING_COLUMN);
tabWidth = store.getInt(Prefs.EDITOR_TAB_WIDTH);
try {
PageRoot model = editor.getPageModel();
List<PagePart> parts = model.getPageParts();
if (sel != null && sel.getLength() > 0) {
parts = selectedParts(model, sel);
}
IDocumentUndoManager undoMgr = DocumentUndoManagerRegistry.getDocumentUndoManager(doc);
undoMgr.beginCompoundChange();
TextEdit edit = new MultiTextEdit();
for (PagePart part : parts) {
formatPagePart(part, edit);
}
edit.apply(editor.getDocument());
undoMgr.endCompoundChange();
} catch (Exception ex) {
Log.error("Bad location error occurred during formatting", ex);
}
}
示例6: remove
import org.eclipse.text.undo.IDocumentUndoManager; //导入方法依赖的package包/类
private void remove(int beg, int len, int markLen) {
try {
IDocumentUndoManager undoMgr = DocumentUndoManagerRegistry.getDocumentUndoManager(doc);
undoMgr.beginCompoundChange();
MultiTextEdit edit = new MultiTextEdit();
edit.addChild(new DeleteEdit(beg - markLen, markLen));
edit.addChild(new DeleteEdit(beg + len, markLen));
edit.apply(doc);
undoMgr.endCompoundChange();
} catch (MalformedTreeException | BadLocationException e) {
Log.error("Failure removing mark" + e.getMessage());
}
}
示例7: addComment
import org.eclipse.text.undo.IDocumentUndoManager; //导入方法依赖的package包/类
private void addComment(IDocument doc, int beg, int len) {
IDocumentUndoManager undoMgr = DocumentUndoManagerRegistry.getDocumentUndoManager(doc);
undoMgr.beginCompoundChange();
MultiTextEdit edit = new MultiTextEdit();
edit.addChild(new InsertEdit(beg, getCommentBeg()));
edit.addChild(new InsertEdit(beg + len, getCommentEnd()));
try {
edit.apply(doc);
undoMgr.endCompoundChange();
} catch (MalformedTreeException | BadLocationException e) {
Log.error("Failure creating comment " + e.getMessage());
}
}
示例8: caseReplace
import org.eclipse.text.undo.IDocumentUndoManager; //导入方法依赖的package包/类
/**
* Case-based replacement - after the initial find has already happened
*
* @param replacer - the replacement string (may be regexp)
* @param index - offset of find
* @param all - all if true, else initial
* @return - the replacement region
*
* @throws BadLocationException
*/
private IRegion caseReplace(String replacer, int index, boolean all) throws BadLocationException {
IRegion result = null;
IDocumentUndoManager undoer = DocumentUndoManagerRegistry.getDocumentUndoManager(getDocument());
try {
if (!isReplaceAll() && undoer != null) {
undoer.beginCompoundChange();
}
IFindReplaceTarget target = getTarget();
// first replace with (possible regexp) string
((IFindReplaceTargetExtension3)target).replaceSelection(replacer, isRegexp());
// adjust case of actual replacement string
replacer = target.getSelectionText();
String caseReplacer = replacer;
if (all) {
caseReplacer = caseReplacer.toUpperCase();
} else {
caseReplacer = caseReplacer.trim();
caseReplacer = Character.toUpperCase(caseReplacer.charAt(0)) +
caseReplacer.substring(1,caseReplacer.length()).toString();
// now update the replacement string with the re-cased part
caseReplacer = replacer.replaceFirst(replacer.trim(), caseReplacer);
}
int ind = target.findAndSelect(index, replacer, true, false, false);
if (ind > -1) {
target.replaceSelection(caseReplacer);
}
} finally {
if (!isReplaceAll() && undoer != null) {
undoer.endCompoundChange();
}
}
return result;
}
示例9: toggle
import org.eclipse.text.undo.IDocumentUndoManager; //导入方法依赖的package包/类
private void toggle(int beg, int len) {
// if surrounded by marks, remove them
String mark = isMarked(beg, len);
if (qualified(mark)) {
remove(beg, len, mark.length());
return;
}
if (mark == null || mark.charAt(0) == markSpec[1].charAt(0)) {
mark = markSpec[0];
} else {
mark = markSpec[1];
}
// add surrounding marks
IDocumentUndoManager undoMgr = DocumentUndoManagerRegistry.getDocumentUndoManager(doc);
undoMgr.beginCompoundChange();
MultiTextEdit edit = new MultiTextEdit();
edit.addChild(new InsertEdit(beg, mark));
edit.addChild(new InsertEdit(beg + len, mark));
// // remove any included marks
// if (len > 0) {
// try {
// String text = doc.get(beg, len);
// Pattern srch = Pattern.compile(Pattern.quote(markSpec[0]));
// Matcher matcher = srch.matcher(text);
// while (matcher.find()) {
// int start = matcher.start();
// int stop = matcher.end();
// edit.addChild(new DeleteEdit(beg + start, stop - start + 1));
// }
// } catch (MalformedTreeException | BadLocationException e) {}
// }
try {
edit.apply(doc);
undoMgr.endCompoundChange();
editor.setCursorOffset(cpos + markSpec[0].length());
} catch (MalformedTreeException | BadLocationException e) {
Log.error("Failure applying mark" + e.getMessage());
}
}