diff options
Diffstat (limited to 'java/java-impl/src/com/intellij/codeInsight/template/postfix/templates')
7 files changed, 26 insertions, 76 deletions
diff --git a/java/java-impl/src/com/intellij/codeInsight/template/postfix/templates/CastExpressionPostfixTemplate.java b/java/java-impl/src/com/intellij/codeInsight/template/postfix/templates/CastExpressionPostfixTemplate.java index 952987a72c19..14059174cc16 100644 --- a/java/java-impl/src/com/intellij/codeInsight/template/postfix/templates/CastExpressionPostfixTemplate.java +++ b/java/java-impl/src/com/intellij/codeInsight/template/postfix/templates/CastExpressionPostfixTemplate.java @@ -20,13 +20,17 @@ import com.intellij.openapi.editor.Editor; import com.intellij.psi.PsiElement; import org.jetbrains.annotations.NotNull; -public class CastExpressionPostfixTemplate extends JavaPostfixTemplateWithChooser { +import static com.intellij.codeInsight.template.postfix.templates.PostfixTemplatesUtils.selectorWithChooser; +import static com.intellij.codeInsight.template.postfix.util.JavaPostfixTemplatesUtils.IS_NON_VOID; +import static com.intellij.codeInsight.template.postfix.util.JavaPostfixTemplatesUtils.JAVA_PSI_INFO; + +public class CastExpressionPostfixTemplate extends PostfixTemplateWithExpressionSelector { public CastExpressionPostfixTemplate() { - super("cast", "((SomeType) expr)"); + super("cast", "((SomeType) expr)", JAVA_PSI_INFO, selectorWithChooser(IS_NON_VOID)); } @Override - protected void doIt(@NotNull final Editor editor, @NotNull final PsiElement expression) { + protected void expandForChooseExpression(@NotNull PsiElement expression, @NotNull Editor editor) { PostfixTemplatesUtils.surround(new JavaWithCastSurrounder(), editor, expression); } }
\ No newline at end of file diff --git a/java/java-impl/src/com/intellij/codeInsight/template/postfix/templates/IntroduceFieldPostfixTemplate.java b/java/java-impl/src/com/intellij/codeInsight/template/postfix/templates/IntroduceFieldPostfixTemplate.java index 40da7fd94b88..2bac79d890bd 100644 --- a/java/java-impl/src/com/intellij/codeInsight/template/postfix/templates/IntroduceFieldPostfixTemplate.java +++ b/java/java-impl/src/com/intellij/codeInsight/template/postfix/templates/IntroduceFieldPostfixTemplate.java @@ -23,13 +23,17 @@ import com.intellij.psi.util.PsiTreeUtil; import com.intellij.refactoring.introduceField.IntroduceFieldHandler; import org.jetbrains.annotations.NotNull; -public class IntroduceFieldPostfixTemplate extends JavaPostfixTemplateWithChooser { +import static com.intellij.codeInsight.template.postfix.templates.PostfixTemplatesUtils.selectorWithChooser; +import static com.intellij.codeInsight.template.postfix.util.JavaPostfixTemplatesUtils.IS_NON_VOID; +import static com.intellij.codeInsight.template.postfix.util.JavaPostfixTemplatesUtils.JAVA_PSI_INFO; + +public class IntroduceFieldPostfixTemplate extends PostfixTemplateWithExpressionSelector { public IntroduceFieldPostfixTemplate() { - super("field", "myField = expr"); + super("field", "myField = expr", JAVA_PSI_INFO, selectorWithChooser(IS_NON_VOID)); } @Override - protected void doIt(@NotNull Editor editor, @NotNull PsiElement expression) { + protected void expandForChooseExpression(@NotNull PsiElement expression, @NotNull Editor editor) { IntroduceFieldHandler handler = ApplicationManager.getApplication().isUnitTestMode() ? getMockHandler(expression) : new IntroduceFieldHandler(); handler.invoke(expression.getProject(), new PsiElement[]{expression}, null); diff --git a/java/java-impl/src/com/intellij/codeInsight/template/postfix/templates/IntroduceVariablePostfixTemplate.java b/java/java-impl/src/com/intellij/codeInsight/template/postfix/templates/IntroduceVariablePostfixTemplate.java index 57c03f9501fa..be2dc23850e7 100644 --- a/java/java-impl/src/com/intellij/codeInsight/template/postfix/templates/IntroduceVariablePostfixTemplate.java +++ b/java/java-impl/src/com/intellij/codeInsight/template/postfix/templates/IntroduceVariablePostfixTemplate.java @@ -28,14 +28,18 @@ import com.intellij.refactoring.introduceVariable.IntroduceVariableSettings; import com.intellij.refactoring.ui.TypeSelectorManagerImpl; import org.jetbrains.annotations.NotNull; +import static com.intellij.codeInsight.template.postfix.templates.PostfixTemplatesUtils.selectorWithChooser; +import static com.intellij.codeInsight.template.postfix.util.JavaPostfixTemplatesUtils.IS_NON_VOID; +import static com.intellij.codeInsight.template.postfix.util.JavaPostfixTemplatesUtils.JAVA_PSI_INFO; + // todo: support for int[].var (parses as .class access!) -public class IntroduceVariablePostfixTemplate extends JavaPostfixTemplateWithChooser { +public class IntroduceVariablePostfixTemplate extends PostfixTemplateWithExpressionSelector { public IntroduceVariablePostfixTemplate() { - super("var", "T name = expr"); + super("var", "T name = expr", JAVA_PSI_INFO, selectorWithChooser(IS_NON_VOID)); } @Override - protected void doIt(@NotNull Editor editor, @NotNull PsiElement expression) { + protected void expandForChooseExpression(@NotNull PsiElement expression, @NotNull Editor editor) { // for advanced stuff use ((PsiJavaCodeReferenceElement)expression).advancedResolve(true).getElement(); IntroduceVariableHandler handler = ApplicationManager.getApplication().isUnitTestMode() ? getMockHandler() : new IntroduceVariableHandler(); diff --git a/java/java-impl/src/com/intellij/codeInsight/template/postfix/templates/JavaPostfixTemplateProvider.java b/java/java-impl/src/com/intellij/codeInsight/template/postfix/templates/JavaPostfixTemplateProvider.java index 148f4bb187db..629d4dd02115 100644 --- a/java/java-impl/src/com/intellij/codeInsight/template/postfix/templates/JavaPostfixTemplateProvider.java +++ b/java/java-impl/src/com/intellij/codeInsight/template/postfix/templates/JavaPostfixTemplateProvider.java @@ -144,6 +144,6 @@ public class JavaPostfixTemplateProvider implements PostfixTemplateProvider { } private static boolean isSemicolonNeeded(@NotNull PsiFile file, @NotNull Editor editor) { - return JavaCompletionContributor.semicolonNeeded(editor, file, CompletionInitializationContext.calcStartOffset(editor)); + return JavaCompletionContributor.semicolonNeeded(editor, file, CompletionInitializationContext.calcStartOffset(editor.getCaretModel().getCurrentCaret())); } } diff --git a/java/java-impl/src/com/intellij/codeInsight/template/postfix/templates/JavaPostfixTemplateWithChooser.java b/java/java-impl/src/com/intellij/codeInsight/template/postfix/templates/JavaPostfixTemplateWithChooser.java deleted file mode 100644 index 72de706f4858..000000000000 --- a/java/java-impl/src/com/intellij/codeInsight/template/postfix/templates/JavaPostfixTemplateWithChooser.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright 2000-2014 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.intellij.codeInsight.template.postfix.templates; - - -import com.intellij.codeInsight.template.postfix.util.JavaPostfixTemplatesUtils; -import com.intellij.openapi.util.Condition; -import com.intellij.psi.PsiElement; -import org.jetbrains.annotations.NotNull; - -import static com.intellij.codeInsight.template.postfix.util.JavaPostfixTemplatesUtils.JAVA_PSI_INFO; - -public abstract class JavaPostfixTemplateWithChooser extends ExpressionPostfixTemplateWithChooser { - - - protected JavaPostfixTemplateWithChooser(@NotNull String name, @NotNull String example) { - super(name, example, JAVA_PSI_INFO); - } - - protected JavaPostfixTemplateWithChooser(@NotNull String name, @NotNull String key, @NotNull String example) { - super(name, key, example, JAVA_PSI_INFO); - } - - @NotNull - @Override - protected Condition<PsiElement> getTypeCondition() { - return JavaPostfixTemplatesUtils.IS_NON_VOID; - } -} diff --git a/java/java-impl/src/com/intellij/codeInsight/template/postfix/templates/NotExpressionPostfixTemplate.java b/java/java-impl/src/com/intellij/codeInsight/template/postfix/templates/NotExpressionPostfixTemplate.java index ac6f22c5092f..6160433cefe3 100644 --- a/java/java-impl/src/com/intellij/codeInsight/template/postfix/templates/NotExpressionPostfixTemplate.java +++ b/java/java-impl/src/com/intellij/codeInsight/template/postfix/templates/NotExpressionPostfixTemplate.java @@ -15,26 +15,16 @@ */ package com.intellij.codeInsight.template.postfix.templates; -import com.intellij.codeInsight.template.postfix.util.JavaPostfixTemplatesUtils; -import com.intellij.openapi.util.Condition; -import com.intellij.psi.PsiElement; -import org.jetbrains.annotations.NotNull; - +import static com.intellij.codeInsight.template.postfix.util.JavaPostfixTemplatesUtils.IS_BOOLEAN; import static com.intellij.codeInsight.template.postfix.util.JavaPostfixTemplatesUtils.JAVA_PSI_INFO; public class NotExpressionPostfixTemplate extends NotPostfixTemplate { public NotExpressionPostfixTemplate() { - super(JAVA_PSI_INFO); + super(JAVA_PSI_INFO, IS_BOOLEAN); } public NotExpressionPostfixTemplate(String alias) { - super(alias, alias, "!expr", JAVA_PSI_INFO); - } - - @NotNull - @Override - protected Condition<PsiElement> getTypeCondition() { - return JavaPostfixTemplatesUtils.IS_BOOLEAN; + super(alias, alias, "!expr", JAVA_PSI_INFO, IS_BOOLEAN); } }
\ No newline at end of file diff --git a/java/java-impl/src/com/intellij/codeInsight/template/postfix/templates/ParenthesizedExpressionPostfixTemplate.java b/java/java-impl/src/com/intellij/codeInsight/template/postfix/templates/ParenthesizedExpressionPostfixTemplate.java index 68b5c48fcd15..46c0c30b24f5 100644 --- a/java/java-impl/src/com/intellij/codeInsight/template/postfix/templates/ParenthesizedExpressionPostfixTemplate.java +++ b/java/java-impl/src/com/intellij/codeInsight/template/postfix/templates/ParenthesizedExpressionPostfixTemplate.java @@ -15,21 +15,11 @@ */ package com.intellij.codeInsight.template.postfix.templates; -import com.intellij.openapi.util.Condition; -import com.intellij.psi.PsiElement; -import org.jetbrains.annotations.NotNull; - import static com.intellij.codeInsight.template.postfix.util.JavaPostfixTemplatesUtils.IS_NON_VOID; import static com.intellij.codeInsight.template.postfix.util.JavaPostfixTemplatesUtils.JAVA_PSI_INFO; public class ParenthesizedExpressionPostfixTemplate extends ParenthesizedPostfixTemplate { public ParenthesizedExpressionPostfixTemplate() { - super(JAVA_PSI_INFO); - } - - @NotNull - @Override - protected Condition<PsiElement> getTypeCondition() { - return IS_NON_VOID; + super(JAVA_PSI_INFO, IS_NON_VOID); } }
\ No newline at end of file |