本文整理汇总了Java中com.intellij.codeInsight.template.impl.TemplateState.gotoEnd方法的典型用法代码示例。如果您正苦于以下问题:Java TemplateState.gotoEnd方法的具体用法?Java TemplateState.gotoEnd怎么用?Java TemplateState.gotoEnd使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.intellij.codeInsight.template.impl.TemplateState
的用法示例。
在下文中一共展示了TemplateState.gotoEnd方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: doTestStopEditing
import com.intellij.codeInsight.template.impl.TemplateState; //导入方法依赖的package包/类
private void doTestStopEditing(Pass<AbstractInplaceIntroducer> pass) {
String name = getTestName(true);
configureByFile(getBasePath() + name + getExtension());
final boolean enabled = getEditor().getSettings().isVariableInplaceRenameEnabled();
try {
TemplateManagerImpl.setTemplateTesting(getProject(), getTestRootDisposable());
getEditor().getSettings().setVariableInplaceRenameEnabled(true);
final AbstractInplaceIntroducer introducer = invokeRefactoring();
pass.pass(introducer);
checkResultByFile(getBasePath() + name + "_after" + getExtension());
}
finally {
TemplateState state = TemplateManagerImpl.getTemplateState(getEditor());
if (state != null) {
state.gotoEnd(true);
}
getEditor().getSettings().setVariableInplaceRenameEnabled(enabled);
}
}
示例2: execute
import com.intellij.codeInsight.template.impl.TemplateState; //导入方法依赖的package包/类
@Override
public void execute(Editor editor, DataContext dataContext) {
TemplateState templateState = TemplateManagerImpl.getTemplateState(editor);
if (templateState != null && !templateState.isFinished()) {
SelectionModel selectionModel = editor.getSelectionModel();
LookupImpl lookup = (LookupImpl)LookupManager.getActiveLookup(editor);
// the idea behind lookup checking is that if there is a preselected value in lookup
// then user might want just to close lookup but not finish a template.
// E.g. user wants to move to the next template segment by Tab without completion invocation.
// If there is no selected value in completion that user definitely wants to finish template
boolean lookupIsEmpty = lookup == null || lookup.getCurrentItem() == null;
if (!selectionModel.hasSelection() && lookupIsEmpty) {
CommandProcessor.getInstance().setCurrentCommandName(CodeInsightBundle.message("finish.template.command"));
templateState.gotoEnd(true);
return;
}
}
if (myOriginalHandler.isEnabled(editor, dataContext)) {
myOriginalHandler.execute(editor, dataContext);
}
}
示例3: finishTemplate
import com.intellij.codeInsight.template.impl.TemplateState; //导入方法依赖的package包/类
private static void finishTemplate(Editor editor) {
final TemplateState templateState = TemplateManagerImpl.getTemplateState(editor);
final InplaceRefactoring renamer = editor.getUserData(InplaceRefactoring.INPLACE_RENAMER);
if (templateState != null && renamer != null) {
templateState.gotoEnd(true);
editor.putUserData(InplaceRefactoring.INPLACE_RENAMER, null);
}
}
示例4: considerNextTab
import com.intellij.codeInsight.template.impl.TemplateState; //导入方法依赖的package包/类
private static void considerNextTab(Editor editor) {
TemplateState templateState = TemplateManagerImpl.getTemplateState(editor);
if (templateState != null) {
TextRange range = templateState.getCurrentVariableRange();
if (range != null && range.getLength() > 0) {
int caret = editor.getCaretModel().getOffset();
if (caret == range.getEndOffset()) {
templateState.nextTab();
}
else if (caret > range.getEndOffset()) {
templateState.gotoEnd(true);
}
}
}
}
示例5: execute
import com.intellij.codeInsight.template.impl.TemplateState; //导入方法依赖的package包/类
@Override
public void execute(Editor editor, DataContext dataContext) {
if (!editor.getSelectionModel().hasSelection()) { //remove selection has higher precedence over finishing template editing
final TemplateState templateState = TemplateManagerImpl.getTemplateState(editor);
if (templateState != null && !templateState.isFinished()) {
CommandProcessor.getInstance().setCurrentCommandName(CodeInsightBundle.message("finish.template.command"));
templateState.gotoEnd(true);
return;
}
}
myOriginalHandler.execute(editor, dataContext);
}
示例6: navigateToStarted
import com.intellij.codeInsight.template.impl.TemplateState; //导入方法依赖的package包/类
private static void navigateToStarted(final Document oldDocument, final Project project, @Messages.YesNoResult final int exitCode) {
final PsiFile file = PsiDocumentManager.getInstance(project).getPsiFile(oldDocument);
if (file != null) {
final VirtualFile virtualFile = file.getVirtualFile();
if (virtualFile != null) {
final FileEditor[] editors = FileEditorManager.getInstance(project).getEditors(virtualFile);
for (FileEditor editor : editors) {
if (editor instanceof TextEditor) {
final Editor textEditor = ((TextEditor)editor).getEditor();
final TemplateState templateState = TemplateManagerImpl.getTemplateState(textEditor);
if (templateState != null) {
if (exitCode == Messages.YES) {
final TextRange range = templateState.getVariableRange(PRIMARY_VARIABLE_NAME);
if (range != null) {
new OpenFileDescriptor(project, virtualFile, range.getStartOffset()).navigate(true);
return;
}
}
else if (exitCode > 0){
templateState.gotoEnd();
return;
}
}
}
}
}
}
}
示例7: doRename
import com.intellij.codeInsight.template.impl.TemplateState; //导入方法依赖的package包/类
@Override
public InplaceRefactoring doRename(@NotNull final PsiElement elementToRename, final Editor editor, final DataContext dataContext) {
if (elementToRename instanceof PsiNameIdentifierOwner) {
final RenamePsiElementProcessor processor = RenamePsiElementProcessor.forElement(elementToRename);
if (processor.isInplaceRenameSupported()) {
final StartMarkAction startMarkAction = StartMarkAction.canStart(elementToRename.getProject());
if (startMarkAction == null || processor.substituteElementToRename(elementToRename, editor) == elementToRename) {
processor.substituteElementToRename(elementToRename, editor, new Pass<PsiElement>() {
@Override
public void pass(PsiElement element) {
final MemberInplaceRenamer renamer = createMemberRenamer(element, (PsiNameIdentifierOwner)elementToRename, editor);
boolean startedRename = renamer.performInplaceRename();
if (!startedRename) {
performDialogRename(elementToRename, editor, dataContext, renamer.myInitialName);
}
}
});
return null;
}
else {
final InplaceRefactoring inplaceRefactoring = editor.getUserData(InplaceRefactoring.INPLACE_RENAMER);
if (inplaceRefactoring != null && inplaceRefactoring.getClass() == MemberInplaceRenamer.class) {
final TemplateState templateState = TemplateManagerImpl.getTemplateState(InjectedLanguageUtil.getTopLevelEditor(editor));
if (templateState != null) {
templateState.gotoEnd(true);
}
}
}
}
}
performDialogRename(elementToRename, editor, dataContext, null);
return null;
}
示例8: stopIntroduce
import com.intellij.codeInsight.template.impl.TemplateState; //导入方法依赖的package包/类
public void stopIntroduce(Editor editor) {
final TemplateState templateState = TemplateManagerImpl.getTemplateState(editor);
if (templateState != null) {
final Runnable runnable = new Runnable() {
@Override
public void run() {
templateState.gotoEnd(true);
}
};
CommandProcessor.getInstance().executeCommand(myProject, runnable, getCommandName(), getCommandName());
}
}
示例9: navigateToStarted
import com.intellij.codeInsight.template.impl.TemplateState; //导入方法依赖的package包/类
private static void navigateToStarted(final Document oldDocument, final Project project, final int exitCode) {
final PsiFile file = PsiDocumentManager.getInstance(project).getPsiFile(oldDocument);
if (file != null) {
final VirtualFile virtualFile = file.getVirtualFile();
if (virtualFile != null) {
final FileEditor[] editors = FileEditorManager.getInstance(project).getEditors(virtualFile);
for (FileEditor editor : editors) {
if (editor instanceof TextEditor) {
final Editor textEditor = ((TextEditor)editor).getEditor();
final TemplateState templateState = TemplateManagerImpl.getTemplateState(textEditor);
if (templateState != null) {
if (exitCode == DialogWrapper.OK_EXIT_CODE) {
final TextRange range = templateState.getVariableRange(PRIMARY_VARIABLE_NAME);
if (range != null) {
new OpenFileDescriptor(project, virtualFile, range.getStartOffset()).navigate(true);
return;
}
}
else if (exitCode > 0){
templateState.gotoEnd();
return;
}
}
}
}
}
}
}
示例10: doRename
import com.intellij.codeInsight.template.impl.TemplateState; //导入方法依赖的package包/类
@Override
public InplaceRefactoring doRename(@NotNull final PsiElement elementToRename, final Editor editor, final DataContext dataContext) {
if (elementToRename instanceof PsiNameIdentifierOwner) {
final RenamePsiElementProcessor processor = RenamePsiElementProcessor.forElement(elementToRename);
if (processor.isInplaceRenameSupported()) {
final StartMarkAction startMarkAction = StartMarkAction.canStart(elementToRename.getProject());
if (startMarkAction == null || processor.substituteElementToRename(elementToRename, editor) == elementToRename) {
processor.substituteElementToRename(elementToRename, editor, new Pass<PsiElement>() {
@Override
public void pass(PsiElement element) {
final MemberInplaceRenamer renamer = createMemberRenamer(element, (PsiNameIdentifierOwner)elementToRename, editor);
boolean startedRename = renamer.performInplaceRename();
if (!startedRename) {
performDialogRename(elementToRename, editor, dataContext);
}
}
});
return null;
}
else {
final InplaceRefactoring inplaceRefactoring = editor.getUserData(InplaceRefactoring.INPLACE_RENAMER);
if (inplaceRefactoring != null && inplaceRefactoring.getClass() == MemberInplaceRenamer.class) {
final TemplateState templateState = TemplateManagerImpl.getTemplateState(InjectedLanguageUtil.getTopLevelEditor(editor));
if (templateState != null) {
templateState.gotoEnd(true);
}
}
}
}
}
performDialogRename(elementToRename, editor, dataContext);
return null;
}
示例11: restartInplaceIntroduceTemplate
import com.intellij.codeInsight.template.impl.TemplateState; //导入方法依赖的package包/类
public void restartInplaceIntroduceTemplate() {
Runnable restartTemplateRunnable = new Runnable() {
@Override
public void run() {
final TemplateState templateState = TemplateManagerImpl.getTemplateState(myEditor);
if (templateState != null) {
myEditor.putUserData(INTRODUCE_RESTART, true);
try {
final TextRange range = templateState.getCurrentVariableRange();
if (range != null && range.isEmpty()) {
final String[] names = suggestNames(isReplaceAllOccurrences(), getLocalVariable());
ApplicationManager.getApplication().runWriteAction(new Runnable() {
@Override
public void run() {
myEditor.getDocument().insertString(myEditor.getCaretModel().getOffset(), names[0]);
}
});
}
templateState.gotoEnd(true);
try {
myShouldSelect = false;
startInplaceIntroduceTemplate();
}
finally {
myShouldSelect = true;
}
}
finally {
myEditor.putUserData(INTRODUCE_RESTART, false);
}
}
updateTitle(getVariable());
}
};
CommandProcessor.getInstance().executeCommand(myProject, restartTemplateRunnable, getCommandName(), getCommandName());
}
示例12: doRename
import com.intellij.codeInsight.template.impl.TemplateState; //导入方法依赖的package包/类
@Override
public InplaceRefactoring doRename(@Nonnull final PsiElement elementToRename, final Editor editor, final DataContext dataContext) {
if (elementToRename instanceof PsiNameIdentifierOwner) {
final RenamePsiElementProcessor processor = RenamePsiElementProcessor.forElement(elementToRename);
if (processor.isInplaceRenameSupported()) {
final StartMarkAction startMarkAction = StartMarkAction.canStart(elementToRename.getProject());
if (startMarkAction == null || processor.substituteElementToRename(elementToRename, editor) == elementToRename) {
processor.substituteElementToRename(elementToRename, editor, new Pass<PsiElement>() {
@Override
public void pass(PsiElement element) {
final MemberInplaceRenamer renamer = createMemberRenamer(element, (PsiNameIdentifierOwner)elementToRename, editor);
boolean startedRename = renamer.performInplaceRename();
if (!startedRename) {
performDialogRename(elementToRename, editor, dataContext);
}
}
});
return null;
}
else {
final InplaceRefactoring inplaceRefactoring = editor.getUserData(InplaceRefactoring.INPLACE_RENAMER);
if (inplaceRefactoring != null && inplaceRefactoring.getClass() == MemberInplaceRenamer.class) {
final TemplateState templateState = TemplateManagerImpl.getTemplateState(InjectedLanguageUtil.getTopLevelEditor(editor));
if (templateState != null) {
templateState.gotoEnd(true);
}
}
}
}
}
performDialogRename(elementToRename, editor, dataContext);
return null;
}
示例13: executeWriteAction
import com.intellij.codeInsight.template.impl.TemplateState; //导入方法依赖的package包/类
@Override
public void executeWriteAction(Editor editor, Caret caret, DataContext dataContext) {
Project project = CommonDataKeys.PROJECT.getData(dataContext);
if (project == null || editor.isOneLineMode()) {
plainEnter(editor, caret, dataContext);
return;
}
LookupManager.getInstance(project).hideActiveLookup();
TemplateState state = TemplateManagerImpl.getTemplateState(editor);
if (state != null) {
state.gotoEnd();
}
final int caretOffset = editor.getCaretModel().getOffset();
PsiFile psiFile = PsiUtilBase.getPsiFileInEditor(editor, project);
if (psiFile == null) {
plainEnter(editor, caret, dataContext);
return;
}
if (EnterAfterUnmatchedBraceHandler.isAfterUnmatchedLBrace(editor, caretOffset, psiFile.getFileType())) {
EditorActionHandler enterHandler = EditorActionManager.getInstance().getActionHandler(IdeActions.ACTION_EDITOR_ENTER);
enterHandler.execute(editor, caret, dataContext);
return;
}
final Language language = PsiUtilBase.getLanguageInEditor(editor, project);
boolean processed = false;
if (language != null) {
final List<SmartEnterProcessor> processors = SmartEnterProcessors.INSTANCE.allForLanguage(language);
if (!processors.isEmpty()) {
for (SmartEnterProcessor processor : processors) {
if (processor.process(project, editor, psiFile)) {
processed = true;
break;
}
}
}
}
if (!processed) {
plainEnter(editor, caret, dataContext);
}
}
示例14: buildTemplateAndStart
import com.intellij.codeInsight.template.impl.TemplateState; //导入方法依赖的package包/类
protected boolean buildTemplateAndStart(final Collection<PsiReference> refs,
final Collection<Pair<PsiElement, TextRange>> stringUsages,
final PsiElement scope,
final PsiFile containingFile) {
final PsiElement context = InjectedLanguageManager.getInstance(containingFile.getProject()).getInjectionHost(containingFile);
myScope = context != null ? context.getContainingFile() : scope;
final TemplateBuilderImpl builder = new TemplateBuilderImpl(myScope);
PsiElement nameIdentifier = getNameIdentifier();
int offset = InjectedLanguageUtil.getTopLevelEditor(myEditor).getCaretModel().getOffset();
PsiElement selectedElement = getSelectedInEditorElement(nameIdentifier, refs, stringUsages, offset);
boolean subrefOnPrimaryElement = false;
boolean hasReferenceOnNameIdentifier = false;
for (PsiReference ref : refs) {
if (isReferenceAtCaret(selectedElement, ref)) {
builder.replaceElement(ref.getElement(), getRangeToRename(ref), PRIMARY_VARIABLE_NAME, createLookupExpression(selectedElement), true);
subrefOnPrimaryElement = true;
continue;
}
addVariable(ref, selectedElement, builder, offset);
hasReferenceOnNameIdentifier |= isReferenceAtCaret(nameIdentifier, ref);
}
if (nameIdentifier != null) {
hasReferenceOnNameIdentifier |= selectedElement.getTextRange().contains(nameIdentifier.getTextRange());
if (!subrefOnPrimaryElement || !hasReferenceOnNameIdentifier){
addVariable(nameIdentifier, selectedElement, builder);
}
}
for (Pair<PsiElement, TextRange> usage : stringUsages) {
addVariable(usage.first, usage.second, selectedElement, builder);
}
addAdditionalVariables(builder);
try {
myMarkAction = startRename();
}
catch (final StartMarkAction.AlreadyStartedException e) {
final Document oldDocument = e.getDocument();
if (oldDocument != myEditor.getDocument()) {
final int exitCode = Messages.showYesNoCancelDialog(myProject, e.getMessage(), getCommandName(),
"Navigate to Started", "Cancel Started", "Cancel", Messages.getErrorIcon());
if (exitCode == Messages.CANCEL) return true;
navigateToAlreadyStarted(oldDocument, exitCode);
return true;
}
else {
if (!ourRenamersStack.isEmpty() && ourRenamersStack.peek() == this) {
ourRenamersStack.pop();
if (!ourRenamersStack.empty()) {
myOldName = ourRenamersStack.peek().myOldName;
}
}
revertState();
final TemplateState templateState = TemplateManagerImpl.getTemplateState(InjectedLanguageUtil.getTopLevelEditor(myEditor));
if (templateState != null) {
templateState.gotoEnd(true);
}
}
return false;
}
beforeTemplateStart();
new WriteCommandAction(myProject, getCommandName()) {
@Override
protected void run(@NotNull Result result) throws Throwable {
startTemplate(builder);
}
}.execute();
if (myBalloon == null) {
showBalloon();
}
return true;
}
示例15: restartInplaceIntroduceTemplate
import com.intellij.codeInsight.template.impl.TemplateState; //导入方法依赖的package包/类
public void restartInplaceIntroduceTemplate() {
Runnable restartTemplateRunnable = new Runnable() {
@Override
public void run() {
final TemplateState templateState = TemplateManagerImpl.getTemplateState(myEditor);
if (templateState != null) {
myEditor.putUserData(INTRODUCE_RESTART, true);
try {
final TextRange range = templateState.getCurrentVariableRange();
if (range != null) {
final TextResult inputText = templateState.getVariableValue(PRIMARY_VARIABLE_NAME);
final String inputName = inputText != null ? inputText.getText() : null;
final V variable = getVariable();
if (inputName == null || variable == null || !isIdentifier(inputName, variable.getLanguage())) {
final String[] names = suggestNames(isReplaceAllOccurrences(), getLocalVariable());
ApplicationManager.getApplication().runWriteAction(new Runnable() {
@Override
public void run() {
myEditor.getDocument().replaceString(range.getStartOffset(), range.getEndOffset(), names[0]);
}
});
}
}
templateState.gotoEnd(true);
try {
myShouldSelect = false;
startInplaceIntroduceTemplate();
}
finally {
myShouldSelect = true;
}
}
finally {
myEditor.putUserData(INTRODUCE_RESTART, false);
}
}
updateTitle(getVariable());
}
};
CommandProcessor.getInstance().executeCommand(myProject, restartTemplateRunnable, getCommandName(), getCommandName());
}