Collect statistics about used Kotlin formatter

This commit is contained in:
Nikolay Krasko
2018-01-29 21:01:30 +03:00
parent d1e6a61197
commit 5a9ea89e9c
3 changed files with 117 additions and 24 deletions
@@ -17,41 +17,56 @@
package org.jetbrains.kotlin.idea.formatter
import com.intellij.psi.codeStyle.CodeStyleSettings
import com.intellij.psi.codeStyle.CommonCodeStyleSettings
import com.intellij.psi.codeStyle.PredefinedCodeStyle
import org.jetbrains.kotlin.idea.KotlinLanguage
import org.jetbrains.kotlin.idea.core.formatter.KotlinCodeStyleSettings
class KotlinStyleGuideCodeStyle : PredefinedCodeStyle("Kotlin style guide", KotlinLanguage.INSTANCE) {
override fun apply(settings: CodeStyleSettings) {
settings.kotlinCustomSettings.apply {
CONTINUATION_INDENT_IN_PARAMETER_LISTS = false
CONTINUATION_INDENT_IN_ARGUMENT_LISTS = false
CONTINUATION_INDENT_FOR_EXPRESSION_BODIES = false
CONTINUATION_INDENT_FOR_CHAINED_CALLS = false
CONTINUATION_INDENT_IN_SUPERTYPE_LISTS = false
CONTINUATION_INDENT_IN_IF_CONDITIONS = false
WRAP_EXPRESSION_BODY_FUNCTIONS = CodeStyleSettings.WRAP_AS_NEEDED
IF_RPAREN_ON_NEW_LINE = true
Companion.apply(settings)
}
companion object {
fun apply(settings: CodeStyleSettings) {
applyToKotlinCustomSettings(settings.kotlinCustomSettings)
applyToCommonSettings(settings.kotlinCommonSettings)
}
settings.kotlinCommonSettings.apply {
WHILE_ON_NEW_LINE = false
ELSE_ON_NEW_LINE = false
CATCH_ON_NEW_LINE = false
FINALLY_ON_NEW_LINE = false
fun applyToKotlinCustomSettings(kotlinCustomSettings: KotlinCodeStyleSettings) {
kotlinCustomSettings.apply {
CONTINUATION_INDENT_IN_PARAMETER_LISTS = false
CONTINUATION_INDENT_IN_ARGUMENT_LISTS = false
CONTINUATION_INDENT_FOR_EXPRESSION_BODIES = false
CONTINUATION_INDENT_FOR_CHAINED_CALLS = false
CONTINUATION_INDENT_IN_SUPERTYPE_LISTS = false
CONTINUATION_INDENT_IN_IF_CONDITIONS = false
WRAP_EXPRESSION_BODY_FUNCTIONS = CodeStyleSettings.WRAP_AS_NEEDED
IF_RPAREN_ON_NEW_LINE = true
}
}
CALL_PARAMETERS_WRAP = CodeStyleSettings.WRAP_AS_NEEDED + CodeStyleSettings.WRAP_ON_EVERY_ITEM
CALL_PARAMETERS_LPAREN_ON_NEXT_LINE = true
CALL_PARAMETERS_RPAREN_ON_NEXT_LINE = true
fun applyToCommonSettings(commonSettings: CommonCodeStyleSettings) {
commonSettings.apply {
WHILE_ON_NEW_LINE = false
ELSE_ON_NEW_LINE = false
CATCH_ON_NEW_LINE = false
FINALLY_ON_NEW_LINE = false
METHOD_PARAMETERS_WRAP = CodeStyleSettings.WRAP_AS_NEEDED + CodeStyleSettings.WRAP_ON_EVERY_ITEM
METHOD_PARAMETERS_LPAREN_ON_NEXT_LINE = true
METHOD_PARAMETERS_RPAREN_ON_NEXT_LINE = true
CALL_PARAMETERS_WRAP = CodeStyleSettings.WRAP_AS_NEEDED + CodeStyleSettings.WRAP_ON_EVERY_ITEM
CALL_PARAMETERS_LPAREN_ON_NEXT_LINE = true
CALL_PARAMETERS_RPAREN_ON_NEXT_LINE = true
EXTENDS_LIST_WRAP = CodeStyleSettings.WRAP_AS_NEEDED
METHOD_CALL_CHAIN_WRAP = CodeStyleSettings.WRAP_AS_NEEDED
ASSIGNMENT_WRAP = CodeStyleSettings.WRAP_AS_NEEDED
METHOD_PARAMETERS_WRAP = CodeStyleSettings.WRAP_AS_NEEDED + CodeStyleSettings.WRAP_ON_EVERY_ITEM
METHOD_PARAMETERS_LPAREN_ON_NEXT_LINE = true
METHOD_PARAMETERS_RPAREN_ON_NEXT_LINE = true
ALIGN_MULTILINE_BINARY_OPERATION = false
EXTENDS_LIST_WRAP = CodeStyleSettings.WRAP_AS_NEEDED
METHOD_CALL_CHAIN_WRAP = CodeStyleSettings.WRAP_AS_NEEDED
ASSIGNMENT_WRAP = CodeStyleSettings.WRAP_AS_NEEDED
ALIGN_MULTILINE_BINARY_OPERATION = false
}
}
}
}