diff --git a/platform/lang-impl/src/com/intellij/ide/fileTemplates/actions/CreateFromTemplateActionBase.java b/platform/lang-impl/src/com/intellij/ide/fileTemplates/actions/CreateFromTemplateActionBase.java index aa9d14da2d98..2f8c592aac8b 100644 --- a/platform/lang-impl/src/com/intellij/ide/fileTemplates/actions/CreateFromTemplateActionBase.java +++ b/platform/lang-impl/src/com/intellij/ide/fileTemplates/actions/CreateFromTemplateActionBase.java @@ -39,6 +39,8 @@ import org.jetbrains.annotations.Nullable; import javax.swing.*; import java.util.*; +import static com.intellij.util.ObjectUtils.notNull; + public abstract class CreateFromTemplateActionBase extends AnAction { public CreateFromTemplateActionBase(final String title, final String description, final Icon icon) { super(title, description, icon); @@ -69,7 +71,8 @@ public abstract class CreateFromTemplateActionBase extends AnAction { elementCreated(dialog, createdElement); view.selectElement(createdElement); if (selectedTemplate.isLiveTemplateEnabled() && createdElement instanceof PsiFile) { - startLiveTemplate((PsiFile)createdElement); + Map defaultValues = getLiveTemplateDefaults(dataContext); + startLiveTemplate((PsiFile)createdElement, notNull(defaultValues, Collections.emptyMap())); } } } @@ -77,6 +80,10 @@ public abstract class CreateFromTemplateActionBase extends AnAction { } public static void startLiveTemplate(@NotNull PsiFile file) { + startLiveTemplate(file, Collections.emptyMap()); + } + + public static void startLiveTemplate(@NotNull PsiFile file, @NotNull Map defaultValues) { Editor editor = EditorHelper.openInEditor(file); if (editor == null) return; @@ -91,7 +98,8 @@ public abstract class CreateFromTemplateActionBase extends AnAction { } variables.removeAll(TemplateImpl.INTERNAL_VARS_SET); for (String variable : variables) { - template.addVariable(variable, null, "\"" + variable + "\"", true); + String defaultValue = defaultValues.getOrDefault(variable, variable); + template.addVariable(variable, null, '"' + defaultValue + '"', true); } Project project = file.getProject(); @@ -119,4 +127,9 @@ public abstract class CreateFromTemplateActionBase extends AnAction { } protected void elementCreated(CreateFromTemplateDialog dialog, PsiElement createdElement) { } + + @Nullable + protected Map getLiveTemplateDefaults(DataContext dataContext) { + return null; + } } \ No newline at end of file