From 3615cd2a25ce3514a6cc2fdde4810bbcdabe7c14 Mon Sep 17 00:00:00 2001 From: Rustam Vishnyakov Date: Mon, 2 Apr 2018 18:52:10 +0300 Subject: [PATCH] Allow nullable project but with optional code style settings returned --- .../com/intellij/application/options/CodeStyle.java | 11 +++++++++++ .../fileEditor/impl/FileDocumentManagerImpl.java | 9 +++------ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/platform/lang-api/src/com/intellij/application/options/CodeStyle.java b/platform/lang-api/src/com/intellij/application/options/CodeStyle.java index daf57c8fd400..b8aa15eb4239 100644 --- a/platform/lang-api/src/com/intellij/application/options/CodeStyle.java +++ b/platform/lang-api/src/com/intellij/application/options/CodeStyle.java @@ -55,6 +55,17 @@ public class CodeStyle { return CodeStyleSettingsManager.getInstance(project).getCurrentSettings(); } + /** + * Returns either project settings if the project is not null or default application-wide settings otherwise. + * + * @param project The project to return the settings for or {@code null} for default settings. + * @return Project or default code style settings. + */ + @NotNull + public static CodeStyleSettings getProjectOrDefaultSettings(@Nullable Project project) { + return project != null ? getSettings(project) : getDefaultSettings(); + } + /** * Returns root code style settings for the given PSI file. For configurable language settings use {@link #getLanguageSettings(PsiFile)} or * {@link #getLanguageSettings(PsiFile, Language)}. diff --git a/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/FileDocumentManagerImpl.java b/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/FileDocumentManagerImpl.java index 32609de4bef7..16d50c2e4fd8 100644 --- a/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/FileDocumentManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/fileEditor/impl/FileDocumentManagerImpl.java @@ -17,7 +17,7 @@ package com.intellij.openapi.fileEditor.impl; import com.intellij.AppTopics; import com.intellij.CommonBundle; -import com.intellij.codeStyle.CodeStyleFacade; +import com.intellij.application.options.CodeStyle; import com.intellij.openapi.Disposable; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.TransactionGuard; @@ -113,7 +113,7 @@ public class FileDocumentManagerImpl extends FileDocumentManager implements Virt Project project = currentCommand == null ? null : CommandProcessor.getInstance().getCurrentCommandProject(); if (project == null) project = ProjectUtil.guessProjectForFile(getFile(document)); - String lineSeparator = CodeStyleFacade.getInstance(project).getLineSeparator(); + String lineSeparator = CodeStyle.getProjectOrDefaultSettings(project).getLineSeparator(); document.putUserData(LINE_SEPARATOR_KEY, lineSeparator); // avoid documents piling up during batch processing @@ -493,10 +493,7 @@ public class FileDocumentManagerImpl extends FileDocumentManager implements Virt public String getLineSeparator(@Nullable VirtualFile file, @Nullable Project project) { String lineSeparator = file == null ? null : LoadTextUtil.getDetectedLineSeparator(file); if (lineSeparator == null) { - CodeStyleFacade settingsManager = project == null - ? CodeStyleFacade.getInstance() - : CodeStyleFacade.getInstance(project); - lineSeparator = settingsManager.getLineSeparator(); + lineSeparator = CodeStyle.getProjectOrDefaultSettings(project).getLineSeparator(); } return lineSeparator; }