From 6198c06198358ea8d0576306e632ddcf18ad4d57 Mon Sep 17 00:00:00 2001 From: Rustam Vishnyakov Date: Tue, 10 Jul 2018 17:23:46 +0300 Subject: [PATCH] Don't detect indents and show notifications in read-only files --- .../psi/codeStyle/DetectableIndentOptionsProvider.java | 3 +-- .../psi/codeStyle/statusbar/CodeStyleStatusBarWidget.java | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/psi/codeStyle/DetectableIndentOptionsProvider.java b/platform/lang-impl/src/com/intellij/psi/codeStyle/DetectableIndentOptionsProvider.java index 800b18873dff..c8205dc11647 100644 --- a/platform/lang-impl/src/com/intellij/psi/codeStyle/DetectableIndentOptionsProvider.java +++ b/platform/lang-impl/src/com/intellij/psi/codeStyle/DetectableIndentOptionsProvider.java @@ -32,7 +32,6 @@ import com.intellij.openapi.editor.Document; import com.intellij.openapi.project.DumbAwareAction; import com.intellij.openapi.project.Project; import com.intellij.openapi.vfs.VirtualFile; -import com.intellij.psi.PsiCompiledFile; import com.intellij.psi.PsiDocumentManager; import com.intellij.psi.PsiFile; import com.intellij.testFramework.LightVirtualFile; @@ -114,7 +113,7 @@ public class DetectableIndentOptionsProvider extends FileIndentOptionsProvider { } private boolean isEnabled(@NotNull CodeStyleSettings settings, @NotNull PsiFile file) { - if (file instanceof PsiCompiledFile || file.getFileType() == ScratchFileType.INSTANCE) return false; + if (!(file.isWritable()) || file.getFileType() == ScratchFileType.INSTANCE) return false; if (ApplicationManager.getApplication().isUnitTestMode()) { return myIsEnabledInTest; } diff --git a/platform/lang-impl/src/com/intellij/psi/codeStyle/statusbar/CodeStyleStatusBarWidget.java b/platform/lang-impl/src/com/intellij/psi/codeStyle/statusbar/CodeStyleStatusBarWidget.java index 17fdc043b18c..87ace3b36f51 100644 --- a/platform/lang-impl/src/com/intellij/psi/codeStyle/statusbar/CodeStyleStatusBarWidget.java +++ b/platform/lang-impl/src/com/intellij/psi/codeStyle/statusbar/CodeStyleStatusBarWidget.java @@ -40,7 +40,7 @@ public class CodeStyleStatusBarWidget extends EditorBasedStatusBarPopup implemen protected WidgetState getWidgetState(@Nullable VirtualFile file) { if (file == null) return WidgetState.HIDDEN; PsiFile psiFile = getPsiFile(); - if (psiFile == null) return WidgetState.HIDDEN; + if (psiFile == null || !psiFile.isWritable()) return WidgetState.HIDDEN; IndentOptions indentOptions = CodeStyle.getIndentOptions(psiFile); IndentOptions projectIndentOptions = CodeStyle.getSettings(myProject).getLanguageIndentOptions(psiFile.getLanguage()); FileIndentOptionsProvider provider = findProvider(file, indentOptions);