From 3e67542c1b9baaf32d10a7bd1fa964b560bde7bb Mon Sep 17 00:00:00 2001 From: "Rustam.Vishnyakov" Date: Fri, 15 Jul 2011 18:04:14 +0400 Subject: [PATCH] WI-1263 Make Code Style Settings Live Preview editable --- .../options/CodeStyleAbstractPanel.java | 17 +++++++++-------- .../options/GeneralCodeStylePanel.java | 2 +- .../MultilanguageCodeStyleAbstractPanel.java | 6 +++--- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/application/options/CodeStyleAbstractPanel.java b/platform/lang-impl/src/com/intellij/application/options/CodeStyleAbstractPanel.java index 13d7edba2fd0..a47e1c064ad0 100644 --- a/platform/lang-impl/src/com/intellij/application/options/CodeStyleAbstractPanel.java +++ b/platform/lang-impl/src/com/intellij/application/options/CodeStyleAbstractPanel.java @@ -87,7 +87,7 @@ public abstract class CodeStyleAbstractPanel implements Disposable { private long myEndHighlightPreviewChangesTimeMillis = -1; private boolean myShowsPreviewHighlighters; private boolean mySkipPreviewHighlighting; - private LanguageSelector myLanguageSelector; + private LanguageSelector myLanguageSelector; protected CodeStyleAbstractPanel(CodeStyleSettings settings) { mySettings = settings; @@ -100,7 +100,7 @@ public abstract class CodeStyleAbstractPanel implements Disposable { } }); - updatePreview(); + updatePreview(true); } private synchronized void setSomethingChanged(final boolean b) { @@ -128,7 +128,7 @@ public abstract class CodeStyleAbstractPanel implements Disposable { private Editor createEditor() { EditorFactory editorFactory = EditorFactory.getInstance(); Document editorDocument = editorFactory.createDocument(""); - EditorEx editor = (EditorEx)editorFactory.createViewer(editorDocument); + EditorEx editor = (EditorEx)editorFactory.createEditor(editorDocument); fillEditorSettings(editor.getSettings()); myLastDocumentModificationStamp = editor.getDocument().getModificationStamp(); return editor; @@ -145,19 +145,20 @@ public abstract class CodeStyleAbstractPanel implements Disposable { editorSettings.setUseSoftWraps(false); } - protected void updatePreview() { - updateEditor(); + protected void updatePreview(boolean useDefaultSample) { + updateEditor(useDefaultSample); updatePreviewHighlighter((EditorEx)myEditor); } - private void updateEditor() { + private void updateEditor(boolean useDefaultSample) { if (!myShouldUpdatePreview || !myEditor.getComponent().isShowing()) { return; } if (myLastDocumentModificationStamp != myEditor.getDocument().getModificationStamp()) { myTextToReformat = myEditor.getDocument().getText(); - } else { + } + else if (useDefaultSample || myTextToReformat == null) { myTextToReformat = getPreviewText(); } @@ -470,7 +471,7 @@ public abstract class CodeStyleAbstractPanel implements Disposable { try { myUpdateAlarm.cancelAllRequests(); if (isSomethingChanged()) { - updateEditor(); + updateEditor(false); } if (System.currentTimeMillis() <= myEndHighlightPreviewChangesTimeMillis && !myPreviewRangesToHighlight.isEmpty()) { blinkHighlighters(); diff --git a/platform/lang-impl/src/com/intellij/application/options/GeneralCodeStylePanel.java b/platform/lang-impl/src/com/intellij/application/options/GeneralCodeStylePanel.java index 1f4075845c8a..723f2c56b207 100644 --- a/platform/lang-impl/src/com/intellij/application/options/GeneralCodeStylePanel.java +++ b/platform/lang-impl/src/com/intellij/application/options/GeneralCodeStylePanel.java @@ -146,7 +146,7 @@ public class GeneralCodeStylePanel extends CodeStyleAbstractPanel { final int selIndex = myIndentOptionsTabs.getSelectedIndex(); if (selIndex != myLastSelectedTab) { myLastSelectedTab = selIndex; - updatePreview(); + updatePreview(true); somethingChanged(); } } diff --git a/platform/lang-impl/src/com/intellij/application/options/codeStyle/MultilanguageCodeStyleAbstractPanel.java b/platform/lang-impl/src/com/intellij/application/options/codeStyle/MultilanguageCodeStyleAbstractPanel.java index f27e6ac24025..f247a3a0c23c 100644 --- a/platform/lang-impl/src/com/intellij/application/options/codeStyle/MultilanguageCodeStyleAbstractPanel.java +++ b/platform/lang-impl/src/com/intellij/application/options/codeStyle/MultilanguageCodeStyleAbstractPanel.java @@ -98,7 +98,7 @@ public abstract class MultilanguageCodeStyleAbstractPanel extends CodeStyleAbstr finally { setSkipPreviewHighlighting(false); } - updatePreview(); + updatePreview(true); return true; } @@ -216,7 +216,7 @@ public abstract class MultilanguageCodeStyleAbstractPanel extends CodeStyleAbstr setPanelLanguage(langs[0]); } else { - updatePreview(); + updatePreview(true); } tabbedPane.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent e) { @@ -241,7 +241,7 @@ public abstract class MultilanguageCodeStyleAbstractPanel extends CodeStyleAbstr else { // If settings are language-specific previewPanel.add(getEditor().getComponent(), BorderLayout.CENTER); - updatePreview(); + updatePreview(true); } }