diff --git a/idea/formatter/src/org/jetbrains/kotlin/idea/core/formatter/KotlinCodeStyleSettings.java b/idea/formatter/src/org/jetbrains/kotlin/idea/core/formatter/KotlinCodeStyleSettings.java index 32f86d05bfa..941917ff0ff 100644 --- a/idea/formatter/src/org/jetbrains/kotlin/idea/core/formatter/KotlinCodeStyleSettings.java +++ b/idea/formatter/src/org/jetbrains/kotlin/idea/core/formatter/KotlinCodeStyleSettings.java @@ -16,6 +16,7 @@ package org.jetbrains.kotlin.idea.core.formatter; +import com.intellij.application.options.CodeStyle; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.InvalidDataException; @@ -90,7 +91,7 @@ public class KotlinCodeStyleSettings extends CustomCodeStyleSettings { } public static KotlinCodeStyleSettings getInstance(Project project) { - return CodeStyleSettingsManager.getSettings(project).getCustomSettings(KotlinCodeStyleSettings.class); + return CodeStyle.getSettings(project).getCustomSettings(KotlinCodeStyleSettings.class); } @SuppressWarnings("MethodDoesntCallSuperMethod") diff --git a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/VariableOrParameterNameWithTypeCompletion.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/VariableOrParameterNameWithTypeCompletion.kt index 41266c8c118..6f0030d0e6f 100644 --- a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/VariableOrParameterNameWithTypeCompletion.kt +++ b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/VariableOrParameterNameWithTypeCompletion.kt @@ -16,6 +16,7 @@ package org.jetbrains.kotlin.idea.completion +import com.intellij.application.options.CodeStyle import com.intellij.codeInsight.completion.* import com.intellij.codeInsight.completion.impl.CamelHumpMatcher import com.intellij.codeInsight.lookup.* @@ -245,8 +246,7 @@ class VariableOrParameterNameWithTypeCompletion( } } - val settings = - CodeStyleSettingsManager.getInstance(context.project).currentSettings.getCustomSettings(KotlinCodeStyleSettings::class.java) + val settings = CodeStyle.getCustomSettings(context.file, KotlinCodeStyleSettings::class.java) val spaceBefore = if (settings.SPACE_BEFORE_TYPE_COLON) " " else "" val spaceAfter = if (settings.SPACE_AFTER_TYPE_COLON) " " else "" diff --git a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/handlers/KotlinFunctionInsertHandler.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/handlers/KotlinFunctionInsertHandler.kt index 8858d1a743c..ff9baeeff81 100644 --- a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/handlers/KotlinFunctionInsertHandler.kt +++ b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/handlers/KotlinFunctionInsertHandler.kt @@ -16,15 +16,15 @@ package org.jetbrains.kotlin.idea.completion.handlers +import com.intellij.application.options.CodeStyle import com.intellij.codeInsight.AutoPopupController import com.intellij.codeInsight.completion.InsertionContext import com.intellij.codeInsight.lookup.Lookup import com.intellij.codeInsight.lookup.LookupElement -import com.intellij.openapi.project.Project import com.intellij.openapi.util.TextRange import com.intellij.psi.PsiDocumentManager import com.intellij.psi.PsiElement -import com.intellij.psi.codeStyle.CodeStyleSettingsManager +import com.intellij.psi.PsiFile import org.jetbrains.kotlin.idea.completion.LambdaSignatureTemplates import org.jetbrains.kotlin.idea.core.formatter.KotlinCodeStyleSettings import org.jetbrains.kotlin.idea.util.CallType @@ -145,7 +145,7 @@ sealed class KotlinFunctionInsertHandler(callType: CallType<*>) : KotlinCallable context.setAddCompletionChar(false) } - if (isInsertSpacesInOneLineFunctionEnabled(project)) { + if (isInsertSpacesInOneLineFunctionEnabled(context.file)) { document.insertString(offset, " { }") inBracketsShift = 1 } else { @@ -199,8 +199,8 @@ sealed class KotlinFunctionInsertHandler(callType: CallType<*>) : KotlinCallable return inputValueArguments || lambdaInfo != null } - private fun isInsertSpacesInOneLineFunctionEnabled(project: Project) = - CodeStyleSettingsManager.getSettings(project).getCustomSettings(KotlinCodeStyleSettings::class.java)!!.INSERT_WHITESPACES_IN_SIMPLE_ONE_LINE_METHOD + private fun isInsertSpacesInOneLineFunctionEnabled(file: PsiFile) = + CodeStyle.getCustomSettings(file, KotlinCodeStyleSettings::class.java).INSERT_WHITESPACES_IN_SIMPLE_ONE_LINE_METHOD } object Infix : KotlinFunctionInsertHandler(CallType.INFIX) { diff --git a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/handlers/AbstractCompletionHandlerTests.kt b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/handlers/AbstractCompletionHandlerTests.kt index 0b3f008a8e8..a8edbdad0db 100644 --- a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/handlers/AbstractCompletionHandlerTests.kt +++ b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/handlers/AbstractCompletionHandlerTests.kt @@ -5,10 +5,9 @@ package org.jetbrains.kotlin.idea.completion.test.handlers +import com.intellij.application.options.CodeStyle import com.intellij.codeInsight.completion.CompletionType import com.intellij.openapi.util.io.FileUtil -import com.intellij.psi.codeStyle.CodeStyleSettingsManager -import org.jetbrains.kotlin.idea.KotlinLanguage import org.jetbrains.kotlin.idea.completion.test.ExpectedCompletionUtils import org.jetbrains.kotlin.idea.completion.test.configureWithExtraFile import org.jetbrains.kotlin.idea.core.formatter.KotlinCodeStyleSettings @@ -28,9 +27,8 @@ abstract class AbstractCompletionHandlerTest(private val defaultCompletionType: protected open fun doTest(testPath: String) { setUpFixture(testPath) - val settingManager = CodeStyleSettingsManager.getInstance(project) - val tempSettings = settingManager.currentSettings.clone() - settingManager.setTemporarySettings(tempSettings) + val tempSettings = CodeStyle.getSettings(project).clone() + CodeStyle.setTemporarySettings(project, tempSettings) try { val fileText = FileUtil.loadFile(File(testPath)) assertTrue("\"\" is missing in file \"$testPath\"", fileText.contains("")); @@ -49,7 +47,7 @@ abstract class AbstractCompletionHandlerTest(private val defaultCompletionType: val completionType = ExpectedCompletionUtils.getCompletionType(fileText) ?: defaultCompletionType val kotlinStyleSettings = KotlinCodeStyleSettings.getInstance(project) - val commonStyleSettings = CodeStyleSettingsManager.getSettings(project).getCommonSettings(KotlinLanguage.INSTANCE) + val commonStyleSettings = CodeStyle.getLanguageSettings(file) for (line in InTextDirectivesUtils.findLinesWithPrefixesRemoved(fileText, CODE_STYLE_SETTING_PREFIX)) { val index = line.indexOfOrNull('=') ?: error("Invalid code style setting '$line': '=' expected") val settingName = line.substring(0, index).trim() @@ -68,9 +66,8 @@ abstract class AbstractCompletionHandlerTest(private val defaultCompletionType: } doTestWithTextLoaded(completionType, invocationCount, lookupString, itemText, tailText, completionChar, File(testPath).name + ".after") - } - finally { - settingManager.dropTemporarySettings() + } finally { + CodeStyle.dropTemporarySettings(project) tearDownFixture() } } diff --git a/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/KotlinMavenImporterTest.kt b/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/KotlinMavenImporterTest.kt index ac94a89ea30..a95a75dff98 100644 --- a/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/KotlinMavenImporterTest.kt +++ b/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/KotlinMavenImporterTest.kt @@ -16,6 +16,7 @@ package org.jetbrains.kotlin.idea.maven +import com.intellij.application.options.CodeStyle import com.intellij.openapi.application.Result import com.intellij.openapi.application.WriteAction import com.intellij.openapi.projectRoots.JavaSdk @@ -276,7 +277,7 @@ class KotlinMavenImporterTest : MavenImportingTestCase() { } fun testImportObsoleteCodeStyle() { - Assert.assertNull(CodeStyleSettingsManager.getSettings(myProject).kotlinCodeStyleDefaults()) + Assert.assertNull(CodeStyle.getSettings(myProject).kotlinCodeStyleDefaults()) importProject( """ @@ -292,12 +293,12 @@ class KotlinMavenImporterTest : MavenImportingTestCase() { Assert.assertEquals( KotlinObsoleteCodeStyle.CODE_STYLE_ID, - CodeStyleSettingsManager.getSettings(myProject).kotlinCodeStyleDefaults() + CodeStyle.getSettings(myProject).kotlinCodeStyleDefaults() ) } fun testImportOfficialCodeStyle() { - Assert.assertNull(CodeStyleSettingsManager.getSettings(myProject).kotlinCodeStyleDefaults()) + Assert.assertNull(CodeStyle.getSettings(myProject).kotlinCodeStyleDefaults()) importProject( """ @@ -313,7 +314,7 @@ class KotlinMavenImporterTest : MavenImportingTestCase() { Assert.assertEquals( KotlinStyleGuideCodeStyle.CODE_STYLE_ID, - CodeStyleSettingsManager.getSettings(myProject).kotlinCodeStyleDefaults() + CodeStyle.getSettings(myProject).kotlinCodeStyleDefaults() ) } diff --git a/idea/src/org/jetbrains/kotlin/idea/editor/KotlinMultilineStringEnterHandler.kt b/idea/src/org/jetbrains/kotlin/idea/editor/KotlinMultilineStringEnterHandler.kt index 7ae58007bfe..1556c480f96 100644 --- a/idea/src/org/jetbrains/kotlin/idea/editor/KotlinMultilineStringEnterHandler.kt +++ b/idea/src/org/jetbrains/kotlin/idea/editor/KotlinMultilineStringEnterHandler.kt @@ -16,6 +16,7 @@ package org.jetbrains.kotlin.idea.editor +import com.intellij.application.options.CodeStyle import com.intellij.codeInsight.CodeInsightSettings import com.intellij.codeInsight.editorActions.enter.EnterHandlerDelegate.Result import com.intellij.codeInsight.editorActions.enter.EnterHandlerDelegateAdapter @@ -25,16 +26,13 @@ import com.intellij.openapi.editor.Document import com.intellij.openapi.editor.Editor import com.intellij.openapi.editor.actionSystem.EditorActionHandler import com.intellij.openapi.editor.ex.EditorEx -import com.intellij.openapi.project.Project import com.intellij.openapi.util.Ref import com.intellij.openapi.util.TextRange import com.intellij.openapi.util.text.StringUtil import com.intellij.psi.PsiDocumentManager import com.intellij.psi.PsiElement import com.intellij.psi.PsiFile -import com.intellij.psi.codeStyle.CodeStyleSettingsManager import com.intellij.psi.impl.source.tree.LeafPsiElement -import org.jetbrains.kotlin.idea.KotlinFileType import org.jetbrains.kotlin.idea.refactoring.hostEditor import org.jetbrains.kotlin.idea.refactoring.project import org.jetbrains.kotlin.idea.refactoring.toPsiFile @@ -136,7 +134,7 @@ class KotlinMultilineStringEnterHandler : EnterHandlerDelegateAdapter() { getMarginCharFromTrimMarginCallsInChain(literal) ?: getMarginCharFromLiteral(literal) runWriteAction { - val settings = MultilineSettings(file.project) + val settings = MultilineSettings(file) val caretMarker = document.createRangeMarker(offset, offset) caretMarker.isGreedyToRight = true @@ -247,9 +245,8 @@ class KotlinMultilineStringEnterHandler : EnterHandlerDelegateAdapter() { const val MULTILINE_QUOTE = "\"\"\"" - class MultilineSettings(project: Project) { - private val kotlinIndentOptions = - CodeStyleSettingsManager.getInstance(project).currentSettings.getIndentOptions(KotlinFileType.INSTANCE) + class MultilineSettings(file: PsiFile) { + private val kotlinIndentOptions = CodeStyle.getIndentOptions(file) private val useTabs = kotlinIndentOptions.USE_TAB_CHARACTER private val tabSize = kotlinIndentOptions.TAB_SIZE diff --git a/idea/src/org/jetbrains/kotlin/idea/editor/KotlinSmartEnterHandler.kt b/idea/src/org/jetbrains/kotlin/idea/editor/KotlinSmartEnterHandler.kt index 5c5faa735dc..a444fc342b8 100644 --- a/idea/src/org/jetbrains/kotlin/idea/editor/KotlinSmartEnterHandler.kt +++ b/idea/src/org/jetbrains/kotlin/idea/editor/KotlinSmartEnterHandler.kt @@ -5,6 +5,7 @@ package org.jetbrains.kotlin.idea.editor +import com.intellij.application.options.CodeStyle import com.intellij.lang.SmartEnterProcessorWithFixers import com.intellij.openapi.editor.Editor import com.intellij.openapi.project.Project @@ -103,7 +104,7 @@ class KotlinSmartEnterHandler : SmartEnterProcessorWithFixers() { CharArrayUtil.regionMatches(chars, caretOffset - "{\n}".length, "{\n}") ) { commit(editor) - val settings = CodeStyleSettingsManager.getSettings(file.project) + val settings = CodeStyle.getLanguageSettings(file) val old = settings.KEEP_SIMPLE_BLOCKS_IN_ONE_LINE settings.KEEP_SIMPLE_BLOCKS_IN_ONE_LINE = false val elt = file.findElementAt(caretOffset - 1)!!.getStrictParentOfType() diff --git a/idea/src/org/jetbrains/kotlin/idea/formatter/KotlinFormatterUsageCollector.kt b/idea/src/org/jetbrains/kotlin/idea/formatter/KotlinFormatterUsageCollector.kt index c34ed15332a..577d008d1a5 100644 --- a/idea/src/org/jetbrains/kotlin/idea/formatter/KotlinFormatterUsageCollector.kt +++ b/idea/src/org/jetbrains/kotlin/idea/formatter/KotlinFormatterUsageCollector.kt @@ -5,6 +5,7 @@ package org.jetbrains.kotlin.idea.formatter +import com.intellij.application.options.CodeStyle import com.intellij.internal.statistic.beans.UsageDescriptor import com.intellij.internal.statistic.utils.getEnumUsage import com.intellij.openapi.project.Project @@ -18,7 +19,7 @@ class KotlinFormatterUsageCollector { fun getProjectUsages(project: Project): Set { val usedFormatter = getKotlinFormatterKind(project) - val settings = CodeStyleSettingsManager.getSettings(project) + val settings = CodeStyle.getSettings(project) val kotlinCommonSettings = settings.kotlinCommonSettings val kotlinCustomSettings = settings.kotlinCustomSettings @@ -54,7 +55,7 @@ class KotlinFormatterUsageCollector { val isProject = CodeStyleSettingsManager.getInstance(project).USE_PER_PROJECT_SETTINGS val isDefaultOfficialCodeStyle = isDefaultOfficialCodeStyle - val settings = CodeStyleSettingsManager.getSettings(project) + val settings = CodeStyle.getSettings(project) val kotlinCommonSettings = settings.kotlinCommonSettings val kotlinCustomSettings = settings.kotlinCustomSettings diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/IndentRawStringIntention.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/IndentRawStringIntention.kt index 2f04c1d063a..0318597c6a2 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/IndentRawStringIntention.kt +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/IndentRawStringIntention.kt @@ -5,6 +5,7 @@ package org.jetbrains.kotlin.idea.intentions +import com.intellij.application.options.CodeStyle import com.intellij.openapi.editor.Editor import com.intellij.psi.codeStyle.CodeStyleManager import com.intellij.psi.codeStyle.CodeStyleSettingsManager @@ -29,7 +30,7 @@ class IndentRawStringIntention : SelfTargetingIntention { String text = declaration instanceof KtAnonymousInitializer ? CLASS_INITIALIZER : declaration.getName(); if (text == null) return; - KotlinCodeStyleSettings settings = CodeStyleSettingsManager.getInstance(getProject()).getCurrentSettings() + KotlinCodeStyleSettings settings = CodeStyle.getSettings(getProject()) .getCustomSettings(KotlinCodeStyleSettings.class); if (declaration instanceof KtProperty) { diff --git a/idea/tests/org/jetbrains/kotlin/formatter/AbstractTypingIndentationTestBase.java b/idea/tests/org/jetbrains/kotlin/formatter/AbstractTypingIndentationTestBase.java index 27005da601b..055a84fa9ca 100644 --- a/idea/tests/org/jetbrains/kotlin/formatter/AbstractTypingIndentationTestBase.java +++ b/idea/tests/org/jetbrains/kotlin/formatter/AbstractTypingIndentationTestBase.java @@ -5,10 +5,10 @@ package org.jetbrains.kotlin.formatter; +import com.intellij.application.options.CodeStyle; import com.intellij.openapi.editor.CaretModel; import com.intellij.openapi.util.io.FileUtil; import com.intellij.psi.codeStyle.CodeStyleSettings; -import com.intellij.psi.codeStyle.CodeStyleSettingsManager; import com.intellij.testFramework.EditorTestUtil; import com.intellij.testFramework.LightCodeInsightTestCase; import org.jetbrains.annotations.NotNull; @@ -61,7 +61,7 @@ public abstract class AbstractTypingIndentationTestBase extends LightCodeInsight } public static CodeStyleSettings getSettings() { - return CodeStyleSettingsManager.getSettings(getProject()); + return CodeStyle.getSettings(getProject()); } @NotNull diff --git a/idea/tests/org/jetbrains/kotlin/formatter/FormatSettingsUtil.java b/idea/tests/org/jetbrains/kotlin/formatter/FormatSettingsUtil.java index 952cf6b2b23..65e52c81923 100644 --- a/idea/tests/org/jetbrains/kotlin/formatter/FormatSettingsUtil.java +++ b/idea/tests/org/jetbrains/kotlin/formatter/FormatSettingsUtil.java @@ -5,8 +5,8 @@ package org.jetbrains.kotlin.formatter; +import com.intellij.application.options.CodeStyle; import com.intellij.psi.codeStyle.CodeStyleSettings; -import com.intellij.psi.codeStyle.CodeStyleSettingsManager; import com.intellij.testFramework.LightPlatformTestCase; import org.jetbrains.kotlin.idea.KotlinLanguage; import org.jetbrains.kotlin.idea.core.formatter.KotlinCodeStyleSettings; @@ -17,7 +17,7 @@ public class FormatSettingsUtil { } public static CodeStyleSettings getSettings() { - return CodeStyleSettingsManager.getSettings(LightPlatformTestCase.getProject()); + return CodeStyle.getSettings(LightPlatformTestCase.getProject()); } public static SettingsConfigurator createConfigurator(String fileText, CodeStyleSettings settings) { diff --git a/idea/tests/org/jetbrains/kotlin/idea/editor/AbstractMultiLineStringIndentTest.kt b/idea/tests/org/jetbrains/kotlin/idea/editor/AbstractMultiLineStringIndentTest.kt index f52a21a0554..e0d4ec412df 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/editor/AbstractMultiLineStringIndentTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/editor/AbstractMultiLineStringIndentTest.kt @@ -5,8 +5,8 @@ package org.jetbrains.kotlin.idea.editor +import com.intellij.application.options.CodeStyle import com.intellij.openapi.util.io.FileUtil -import com.intellij.psi.codeStyle.CodeStyleSettingsManager import com.intellij.testFramework.EditorTestUtil import org.jetbrains.kotlin.idea.KotlinFileType import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase @@ -50,19 +50,17 @@ abstract class AbstractMultiLineStringIndentTest : KotlinLightCodeInsightFixture val settingsFileText = FileUtil.loadFile(settingsFile, true) try { - val indentOptions = CodeStyleSettingsManager.getInstance(project).currentSettings.getIndentOptions(KotlinFileType.INSTANCE) + val indentOptions = CodeStyle.getSettings(project).getIndentOptions(KotlinFileType.INSTANCE) val configurator = SettingsConfigurator(settingsFileText, indentOptions) if (!inverted) { configurator.configureSettings() - } - else { + } else { configurator.configureInvertedSettings() } action() - } - finally { - CodeStyleSettingsManager.getSettings(myFixture.project).clearCodeStyleSettings() + } finally { + CodeStyle.getSettings(file).clearCodeStyleSettings() } } diff --git a/idea/tests/org/jetbrains/kotlin/idea/editor/TypedHandlerTest.kt b/idea/tests/org/jetbrains/kotlin/idea/editor/TypedHandlerTest.kt index c9796cbc844..aa5b8ef3d54 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/editor/TypedHandlerTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/editor/TypedHandlerTest.kt @@ -5,7 +5,7 @@ package org.jetbrains.kotlin.idea.editor -import com.intellij.psi.codeStyle.CodeStyleSettingsManager +import com.intellij.application.options.CodeStyle import com.intellij.testFramework.EditorTestUtil import com.intellij.testFramework.LightCodeInsightTestCase import com.intellij.testFramework.LightPlatformCodeInsightTestCase @@ -874,7 +874,7 @@ class TypedHandlerTest : LightCodeInsightTestCase() { private fun enableSmartEnterWithTabs(): () -> Unit = { val project = LightPlatformTestCase.getProject() - val indentOptions = CodeStyleSettingsManager.getInstance(project).currentSettings.getIndentOptions(KotlinFileType.INSTANCE) + val indentOptions = CodeStyle.getSettings(project).getIndentOptions(KotlinFileType.INSTANCE) indentOptions.USE_TAB_CHARACTER = true indentOptions.SMART_TABS = true } @@ -897,7 +897,7 @@ class TypedHandlerTest : LightCodeInsightTestCase() { } finally { if (settingsModifier != null) { val project = LightPlatformTestCase.getProject() - CodeStyleSettingsManager.getSettings(project).clearCodeStyleSettings() + CodeStyle.getSettings(project).clearCodeStyleSettings() } } }