From 02eec38fed5809ca74fc8de37c62fe6489481219 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Thu, 15 Jan 2015 17:51:40 +0100 Subject: [PATCH] generation: catch velocity exception and show feedback to user --- .../generation/GenerateMembersHandlerBase.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/java/java-impl/src/com/intellij/codeInsight/generation/GenerateMembersHandlerBase.java b/java/java-impl/src/com/intellij/codeInsight/generation/GenerateMembersHandlerBase.java index 34008a0a72ea..1add7cceb9f5 100644 --- a/java/java-impl/src/com/intellij/codeInsight/generation/GenerateMembersHandlerBase.java +++ b/java/java-impl/src/com/intellij/codeInsight/generation/GenerateMembersHandlerBase.java @@ -44,6 +44,7 @@ import com.intellij.util.IncorrectOperationException; import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.jetbrains.java.generate.exception.GenerateCodeException; import javax.swing.*; import java.util.ArrayList; @@ -77,7 +78,22 @@ public abstract class GenerateMembersHandlerBase implements CodeInsightActionHan WriteCommandAction.runWriteCommandAction(project, new Runnable() { @Override public void run() { - doGenerate(project, editor, aClass, members); + final int offset = editor.getCaretModel().getOffset(); + try { + doGenerate(project, editor, aClass, members); + } + catch (GenerateCodeException e) { + final String message = e.getMessage(); + ApplicationManager.getApplication().invokeLater(new Runnable() { + @Override + public void run() { + if (!editor.isDisposed()) { + editor.getCaretModel().moveToOffset(offset); + HintManager.getInstance().showErrorHint(editor, message); + } + } + }, project.getDisposed()); + } } }); }