List of usage examples for com.intellij.openapi.command.undo DocumentReferenceManager getInstance
public static DocumentReferenceManager getInstance()
From source file:com.intellij.codeInsight.template.impl.TemplateState.java
License:Apache License
public void start(@NotNull TemplateImpl template, @Nullable final PairProcessor<String, String> processor, @Nullable Map<String, String> predefinedVarValues) { LOG.assertTrue(!myStarted, "Already started"); myStarted = true;//from w ww .java 2s. c o m myTemplate = template; PsiDocumentManager.getInstance(myProject).commitAllDocuments(); myProcessor = processor; DocumentReference[] refs = myDocument == null ? null : new DocumentReference[] { DocumentReferenceManager.getInstance().create(myDocument) }; UndoManager.getInstance(myProject).undoableActionPerformed(new BasicUndoableAction(refs) { @Override public void undo() { if (myDocument != null) { fireTemplateCancelled(); LookupManager.getInstance(myProject).hideActiveLookup(); int oldVar = myCurrentVariableNumber; setCurrentVariableNumber(-1); currentVariableChanged(oldVar); } } @Override public void redo() { //TODO: // throw new UnexpectedUndoException("Not implemented"); } }); myTemplateIndented = false; myCurrentVariableNumber = -1; mySegments = new TemplateSegments(myEditor); myPrevTemplate = myTemplate; //myArgument = argument; myPredefinedVariableValues = predefinedVarValues; if (template.isInline()) { int caretOffset = myEditor.getCaretModel().getOffset(); myTemplateRange = myDocument.createRangeMarker(caretOffset, caretOffset + template.getTemplateText().length()); } else { PsiFile file = getPsiFile(); preprocessTemplate(file, myEditor.getCaretModel().getOffset(), myTemplate.getTemplateText()); int caretOffset = myEditor.getCaretModel().getOffset(); myTemplateRange = myDocument.createRangeMarker(caretOffset, caretOffset); } myTemplateRange.setGreedyToLeft(true); myTemplateRange.setGreedyToRight(true); processAllExpressions(template); }
From source file:org.exbin.deltahex.intellij.HexUndoIntelliJHandler.java
License:Apache License
@Override public void clear() { documentReference = DocumentReferenceManager.getInstance().create(fileEditor.getVirtualFile()); ((UndoManagerImpl) undoManager).invalidateActionsFor(documentReference); init();/*from ww w . j a v a2 s. c om*/ }
From source file:org.jetbrains.android.AndroidResourceRenameResourceProcessor.java
License:Apache License
@Override public void renameElement(PsiElement element, final String newName, UsageInfo[] usages, @Nullable RefactoringElementListener listener) throws IncorrectOperationException { if (element instanceof PsiField) { new RenameJavaVariableProcessor().renameElement(element, newName, usages, listener); } else {/*from www .j a v a 2 s . c o m*/ if (element instanceof PsiNamedElement) { super.renameElement(element, newName, usages, listener); if (element instanceof PsiFile) { VirtualFile virtualFile = ((PsiFile) element).getVirtualFile(); if (virtualFile != null && !LocalHistory.getInstance().isUnderControl(virtualFile)) { DocumentReference ref = DocumentReferenceManager.getInstance().create(virtualFile); UndoManager.getInstance(element.getProject()).nonundoableActionPerformed(ref, false); } } } else if (element instanceof XmlAttributeValue) { new RenameXmlAttributeProcessor().renameElement(element, newName, usages, listener); } } }