IDEA-25738 flex: refactoring preview does not completely apply colors​&​fonts settings
authorMaxim.Mossienko <Maxim.Mossienko@jetbrains.com>
Fri, 6 Nov 2009 15:02:41 +0000 (18:02 +0300)
committerMaxim.Mossienko <Maxim.Mossienko@jetbrains.com>
Fri, 6 Nov 2009 15:02:41 +0000 (18:02 +0300)
platform/platform-api/src/com/intellij/openapi/editor/EditorFactory.java
platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorFactoryImpl.java
platform/testFramework/src/com/intellij/mock/MockEditorFactory.java
platform/usageView/src/com/intellij/usages/impl/UsagePreviewPanel.java

index fb53c05637baa15df6c5b052adc7901c4622edaf..5bbdbfebfb81e482384962b5ebda5501c1d39d68 100644 (file)
@@ -22,6 +22,7 @@ import com.intellij.openapi.editor.event.EditorEventMulticaster;
 import com.intellij.openapi.editor.event.EditorFactoryListener;
 import com.intellij.openapi.project.Project;
 import com.intellij.openapi.fileTypes.FileType;
+import com.intellij.openapi.vfs.VirtualFile;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
@@ -99,6 +100,19 @@ public abstract class EditorFactory implements ApplicationComponent {
    */
   public abstract Editor createEditor(@NotNull Document document, Project project, @NotNull FileType fileType, boolean isViewer);
 
+  /**
+   * Creates an editor for the specified document associated with the specified project.
+   *
+   * @param document the document to create the editor for.
+   * @param project the project for which highlighter should be created
+   * @param file the file according to which the editor contents is highlighted.
+   * @param isViewer true if read-only editor should be created
+   * @return the editor instance.
+   * @see Editor#getProject()
+   * @see #releaseEditor(Editor)
+   */
+  public abstract Editor createEditor(@NotNull Document document, Project project, @NotNull VirtualFile file, boolean isViewer);
+
   /**
    * Creates a read-only editor for the specified document associated with the specified project.
    *
index 9c93d7cd93addaf8a1d1ef78833acf45c1fa9edb..866098615cf8c228e9f8980ceb9c59e595e0a272 100644 (file)
@@ -34,6 +34,7 @@ import com.intellij.openapi.project.ProjectManager;
 import com.intellij.openapi.project.ProjectManagerAdapter;
 import com.intellij.openapi.util.Key;
 import com.intellij.openapi.util.text.StringUtil;
+import com.intellij.openapi.vfs.VirtualFile;
 import com.intellij.util.EventDispatcher;
 import com.intellij.util.SmartList;
 import com.intellij.util.text.CharArrayCharSequence;
@@ -148,6 +149,12 @@ public class EditorFactoryImpl extends EditorFactory {
     return editor;
   }
 
+  public Editor createEditor(@NotNull Document document, Project project, @NotNull VirtualFile file, boolean isViewer) {
+    Editor editor = createEditor(document, isViewer, project);
+    ((EditorEx)editor).setHighlighter(EditorHighlighterFactory.getInstance().createEditorHighlighter(project, file));
+    return editor;
+  }
+
   private Editor createEditor(@NotNull Document document, boolean isViewer, Project project) {
     Document hostDocument = document instanceof DocumentWindow ? ((DocumentWindow)document).getDelegate() : document;
     EditorImpl editor = new EditorImpl(hostDocument, isViewer, project);
index d537a9646f03bd05e1de885b15e058bbbfd5863f..eef883074499adef517964ce1ad5c42fd2315003 100644 (file)
@@ -23,6 +23,7 @@ import com.intellij.openapi.editor.event.EditorFactoryListener;
 import com.intellij.openapi.editor.impl.DocumentImpl;
 import com.intellij.openapi.fileTypes.FileType;
 import com.intellij.openapi.project.Project;
+import com.intellij.openapi.vfs.VirtualFile;
 import com.intellij.util.text.CharArrayCharSequence;
 import org.jetbrains.annotations.NotNull;
 
@@ -43,6 +44,10 @@ public class MockEditorFactory extends EditorFactory {
     return null;
   }
 
+  public Editor createEditor(@NotNull Document document, Project project, @NotNull VirtualFile file, boolean isViewer) {
+    return null;
+  }
+
   public Editor createEditor(@NotNull final Document document, final Project project, @NotNull final FileType fileType, final boolean isViewer) {
     return null;
   }
index 134c8d7ad29d9ab24935fa6f20b92032886b672f..a252d7693c87873f819e2b73da6e3be3aa52ffc2 100644 (file)
@@ -141,7 +141,7 @@ public class UsagePreviewPanel extends JPanel implements Disposable {
     if (isDisposed) return null;
     Project project = psiFile.getProject();
 
-    Editor editor = EditorFactory.getInstance().createEditor(document, project, psiFile.getFileType(), true);
+    Editor editor = EditorFactory.getInstance().createEditor(document, project, psiFile.getVirtualFile(), true);
 
     EditorSettings settings = editor.getSettings();
     settings.setLineMarkerAreaShown(false);