From 557e08d8c23f29d63d45d1b4e5fbf52af9447195 Mon Sep 17 00:00:00 2001 From: Alexander Zolotov Date: Wed, 21 Mar 2018 16:29:04 +0300 Subject: [PATCH] Handle binary files while creating editor in file templates settings (EA-118259) --- .../impl/FileTemplateConfigurable.java | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/ide/fileTemplates/impl/FileTemplateConfigurable.java b/platform/lang-impl/src/com/intellij/ide/fileTemplates/impl/FileTemplateConfigurable.java index 9a4495d555b6..07e918c1014e 100644 --- a/platform/lang-impl/src/com/intellij/ide/fileTemplates/impl/FileTemplateConfigurable.java +++ b/platform/lang-impl/src/com/intellij/ide/fileTemplates/impl/FileTemplateConfigurable.java @@ -82,7 +82,6 @@ public class FileTemplateConfigurable implements Configurable, Configurable.NoSc private JPanel myMainPanel; private FileTemplate myTemplate; - private PsiFile myFile; private Editor myTemplateEditor; private JTextField myNameField; private JTextField myExtensionField; @@ -160,7 +159,7 @@ public class FileTemplateConfigurable implements Configurable, Configurable.NoSc mySplitter = new Splitter(true, myProportion); myAdjustBox = new JCheckBox(IdeBundle.message("checkbox.reformat.according.to.style")); myLiveTemplateBox = new JCheckBox(IdeBundle.message("checkbox.enable.live.templates")); - myTemplateEditor = createEditor(); + myTemplateEditor = createEditor(null); myDescriptionComponent = new JEditorPane(); myDescriptionComponent.setEditorKit(UIUtil.getHTMLEditorKit()); @@ -208,12 +207,9 @@ public class FileTemplateConfigurable implements Configurable, Configurable.NoSc myProportion = proportion; } - private Editor createEditor() { + private Editor createEditor(@Nullable PsiFile file) { EditorFactory editorFactory = EditorFactory.getInstance(); - Document doc = myFile == null - ? editorFactory.createDocument(myTemplate == null ? "" : myTemplate.getText()) - : PsiDocumentManager.getInstance(myFile.getProject()).getDocument(myFile); - assert doc != null; + Document doc = createDocument(file, editorFactory); Editor editor = editorFactory.createEditor(doc, myProject); EditorSettings editorSettings = editor.getSettings(); @@ -246,6 +242,12 @@ public class FileTemplateConfigurable implements Configurable, Configurable.NoSc return editor; } + @NotNull + private Document createDocument(@Nullable PsiFile file, @NotNull EditorFactory editorFactory) { + Document document = file != null ? PsiDocumentManager.getInstance(file.getProject()).getDocument(file) : null; + return document != null ? document : editorFactory.createDocument(myTemplate == null ? "" : myTemplate.getText()); + } + private void onTextChanged() { myModified = true; } @@ -336,8 +338,7 @@ public class FileTemplateConfigurable implements Configurable, Configurable.NoSc } EditorFactory.getInstance().releaseEditor(myTemplateEditor); - myFile = createFile(text, name); - myTemplateEditor = createEditor(); + myTemplateEditor = createEditor(createFile(text, name)); myNameField.setText(name); myExtensionField.setText(extension); @@ -381,7 +382,6 @@ public class FileTemplateConfigurable implements Configurable, Configurable.NoSc EditorFactory.getInstance().releaseEditor(myTemplateEditor); myTemplateEditor = null; } - myFile = null; } private EditorHighlighter createHighlighter() {