From 3e5f5659c099ebf58ae6aa99dd41d14fc43bcc71 Mon Sep 17 00:00:00 2001 From: Sergey Ignatov Date: Fri, 17 Oct 2014 18:24:39 +0400 Subject: [PATCH] new scratch file/scratch widget: use language substitutor in a proper way [^greg] --- .../com/intellij/ide/scratch/NewScratchFileAction.java | 9 ++++++++- .../src/com/intellij/ide/scratch/ScratchWidget.java | 5 ++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/ide/scratch/NewScratchFileAction.java b/platform/lang-impl/src/com/intellij/ide/scratch/NewScratchFileAction.java index be74f8ca6588..394c5de93f6a 100644 --- a/platform/lang-impl/src/com/intellij/ide/scratch/NewScratchFileAction.java +++ b/platform/lang-impl/src/com/intellij/ide/scratch/NewScratchFileAction.java @@ -35,7 +35,9 @@ import com.intellij.openapi.ui.popup.util.BaseListPopupStep; import com.intellij.openapi.util.registry.Registry; import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.VirtualFile; +import com.intellij.psi.LanguageSubstitutors; import com.intellij.psi.PsiFile; +import com.intellij.testFramework.LightVirtualFile; import com.intellij.util.Consumer; import com.intellij.util.containers.ContainerUtil; import com.intellij.util.ui.EmptyIcon; @@ -79,13 +81,18 @@ public class NewScratchFileAction extends AnAction implements DumbAware { @Override public void consume(Language language) { FeatureUsageTracker.getInstance().triggerFeatureUsed("scratch"); - VirtualFile file = ScratchpadManager.getInstance(project).createScratchFile(language); + VirtualFile file = ScratchpadManager.getInstance(project).createScratchFile(substitute(project, language)); FileEditorManager.getInstance(project).openFile(file, true); } }); popup.showCenteredInCurrentWindow(project); } + @NotNull + public static Language substitute(@NotNull Project project, @NotNull Language language) { + return LanguageSubstitutors.INSTANCE.substituteLanguage(language, new LightVirtualFile(), project); + } + @NotNull static ListPopup buildLanguagePopup(@NotNull Project project, @Nullable Language context, final Consumer onChoosen) { List languages = LanguageUtil.getFileLanguages(); diff --git a/platform/lang-impl/src/com/intellij/ide/scratch/ScratchWidget.java b/platform/lang-impl/src/com/intellij/ide/scratch/ScratchWidget.java index 987a806a11b0..649516d97aad 100644 --- a/platform/lang-impl/src/com/intellij/ide/scratch/ScratchWidget.java +++ b/platform/lang-impl/src/com/intellij/ide/scratch/ScratchWidget.java @@ -28,7 +28,6 @@ import com.intellij.openapi.wm.CustomStatusBarWidget; import com.intellij.openapi.wm.StatusBarWidget; import com.intellij.openapi.wm.impl.status.EditorBasedWidget; import com.intellij.openapi.wm.impl.status.TextPanel; -import com.intellij.psi.LanguageSubstitutors; import com.intellij.testFramework.LightVirtualFile; import com.intellij.ui.ClickListener; import com.intellij.ui.awt.RelativePoint; @@ -51,7 +50,7 @@ class ScratchWidget extends EditorBasedWidget implements CustomStatusBarWidget.M new ClickListener() { @Override public boolean onClick(@NotNull MouseEvent e, int clickCount) { - Project project = getProject(); + final Project project = getProject(); Editor editor = getEditor(); final LightVirtualFile selectedFile = getScratchFile(); if (project == null || editor == null || selectedFile == null) return false; @@ -59,7 +58,7 @@ class ScratchWidget extends EditorBasedWidget implements CustomStatusBarWidget.M ListPopup popup = NewScratchFileAction.buildLanguagePopup(project, selectedFile.getLanguage(), new Consumer() { @Override public void consume(Language language) { - selectedFile.setLanguage(LanguageSubstitutors.INSTANCE.substituteLanguage(language, selectedFile, myProject)); + selectedFile.setLanguage(NewScratchFileAction.substitute(project, language)); FileContentUtilCore.reparseFiles(selectedFile); update(); }