faster reformat for javascript when document == psifile content
authorMaxim.Mossienko <Maxim.Mossienko@jetbrains.com>
Sat, 13 Mar 2010 14:09:51 +0000 (17:09 +0300)
committerMaxim.Mossienko <Maxim.Mossienko@jetbrains.com>
Sat, 13 Mar 2010 14:09:51 +0000 (17:09 +0300)
platform/lang-impl/src/com/intellij/psi/formatter/FormattingDocumentModelImpl.java

index 84d0cf06351eb5f44e4dcd6cc09227cbc4bfd784..2afe6c2464ee9f75d72b191dd3a1a7915acd30ce 100644 (file)
@@ -26,6 +26,7 @@ import com.intellij.psi.PsiDocumentManager;
 import com.intellij.psi.PsiFile;
 import com.intellij.psi.impl.PsiDocumentManagerImpl;
 import com.intellij.psi.impl.PsiToDocumentSynchronizer;
+import org.jetbrains.annotations.NotNull;
 
 public class FormattingDocumentModelImpl implements FormattingDocumentModel{
 
@@ -56,7 +57,7 @@ public class FormattingDocumentModelImpl implements FormattingDocumentModel{
 
   }
 
-  private static Document getDocumentToBeUsedFor(final PsiFile file) {
+  public static Document getDocumentToBeUsedFor(final PsiFile file) {
     final Project project = file.getProject();
     final Document document = PsiDocumentManager.getInstance(project).getDocument(file);
     if (document == null) return null;
@@ -91,4 +92,11 @@ public class FormattingDocumentModelImpl implements FormattingDocumentModel{
   public PsiFile getFile() {
     return myFile;
   }
+
+  public static boolean canUseDocumentModel(@NotNull Document document,@NotNull PsiFile file) {
+    PsiDocumentManager psiDocumentManager = PsiDocumentManager.getInstance(file.getProject());
+    return !psiDocumentManager.isUncommited(document) &&
+           !psiDocumentManager.isDocumentBlockedByPsi(document) &&
+           file.getText().equals(document.getText());
+  }
 }