Add hack for KotlinMultilineStringEnterHandler

#KT-34566 Fixed
Part of #KT-22211
This commit is contained in:
Dmitry Gridin
2020-06-01 22:27:44 +07:00
parent 8e7bbf1780
commit 201b115ee0
4 changed files with 9 additions and 21 deletions
@@ -9,6 +9,7 @@ import com.intellij.formatting.Indent
import com.intellij.lang.Language
import com.intellij.openapi.editor.Editor
import com.intellij.openapi.project.Project
import com.intellij.psi.codeStyle.lineIndent.LineIndentProvider
import com.intellij.psi.impl.source.codeStyle.SemanticEditorPosition
import com.intellij.psi.impl.source.codeStyle.lineIndent.IndentCalculator
import com.intellij.psi.impl.source.codeStyle.lineIndent.JavaLikeLangLineIndentProvider
@@ -45,6 +46,14 @@ abstract class KotlinLikeLangLineIndentProvider : JavaLikeLangLineIndentProvider
}\n=="
}
override fun getLineIndent(project: Project, editor: Editor, language: Language?, offset: Int): String? {
// HACK: TODO: KT-34566 investigate this hack (necessary for [org.jetbrains.kotlin.idea.editor.Kotlin.MultilineStringEnterHandler])
return if (offset > 0 && getPosition(editor, offset - 1).isAt(RegularStringPart))
LineIndentProvider.DO_NOT_ADJUST
else
super.getLineIndent(project, editor, language, offset)
}
override fun getIndent(project: Project, editor: Editor, language: Language?, offset: Int): IndentCalculator? {
val factory = IndentCalculatorFactory(project, editor)
val currentPosition = getPosition(editor, offset)
-7
View File
@@ -58,13 +58,6 @@ org.jetbrains.kotlin.idea.decompiler.navigation.NavigateToLibrarySourceTestWithJ
org.jetbrains.kotlin.idea.decompiler.navigation.NavigateToLibrarySourceTestWithJSGenerated.testSameNameInDifferentSources, KT-34542, FAIL,
org.jetbrains.kotlin.idea.decompiler.navigation.NavigateToLibrarySourceTestWithJSGenerated.testTypeAlias, KT-34542, FAIL,
org.jetbrains.kotlin.idea.decompiler.navigation.NavigateToLibrarySourceTestWithJSGenerated.testTypeWithSameShortName, KT-34542, FAIL,
org.jetbrains.kotlin.idea.editor.MultiLineStringIndentTestGenerated.Spaces.testDontAddMarginCharWhenMultilineWithoutMargins, KT-34566,,
org.jetbrains.kotlin.idea.editor.MultiLineStringIndentTestGenerated.Spaces.testDontAddTrimCallWhenAlreadyMultilineFirstLine, KT-34566,,
org.jetbrains.kotlin.idea.editor.MultiLineStringIndentTestGenerated.Spaces.testEnterBeforeMarginChar, KT-34566,,
org.jetbrains.kotlin.idea.editor.MultiLineStringIndentTestGenerated.Spaces.testEnterInsideTextMargin, KT-34566,,
org.jetbrains.kotlin.idea.editor.MultiLineStringIndentTestGenerated.Spaces.testInsertCustomMarginInLineStart, KT-34566,,
org.jetbrains.kotlin.idea.editor.MultiLineStringIndentTestGenerated.WithTabs.Tabs2.testEnterInsideText, KT-34566,,
org.jetbrains.kotlin.idea.editor.MultiLineStringIndentTestGenerated.WithTabs.Tabs4.testEnterInsideText, KT-34566,,
org.jetbrains.kotlin.idea.filters.KotlinExceptionFilterTestGenerated.testInlineFunCallInLibrary, Unprocessed,,
org.jetbrains.kotlin.idea.filters.KotlinExceptionFilterTestGenerated.testInlineFunInnerClassFromLibrary, Unprocessed,,
org.jetbrains.kotlin.idea.inspections.CoroutineNonBlockingContextDetectionTest.testCoroutineContextCheck, KT-34659,,
1 Test key Issue State (optional: MUTE or FAIL) Status (optional: FLAKY)
58 org.jetbrains.kotlin.idea.decompiler.navigation.NavigateToLibrarySourceTestWithJSGenerated.testSameNameInDifferentSources KT-34542 FAIL
59 org.jetbrains.kotlin.idea.decompiler.navigation.NavigateToLibrarySourceTestWithJSGenerated.testTypeAlias KT-34542 FAIL
60 org.jetbrains.kotlin.idea.decompiler.navigation.NavigateToLibrarySourceTestWithJSGenerated.testTypeWithSameShortName KT-34542 FAIL
org.jetbrains.kotlin.idea.editor.MultiLineStringIndentTestGenerated.Spaces.testDontAddMarginCharWhenMultilineWithoutMargins KT-34566
org.jetbrains.kotlin.idea.editor.MultiLineStringIndentTestGenerated.Spaces.testDontAddTrimCallWhenAlreadyMultilineFirstLine KT-34566
org.jetbrains.kotlin.idea.editor.MultiLineStringIndentTestGenerated.Spaces.testEnterBeforeMarginChar KT-34566
org.jetbrains.kotlin.idea.editor.MultiLineStringIndentTestGenerated.Spaces.testEnterInsideTextMargin KT-34566
org.jetbrains.kotlin.idea.editor.MultiLineStringIndentTestGenerated.Spaces.testInsertCustomMarginInLineStart KT-34566
org.jetbrains.kotlin.idea.editor.MultiLineStringIndentTestGenerated.WithTabs.Tabs2.testEnterInsideText KT-34566
org.jetbrains.kotlin.idea.editor.MultiLineStringIndentTestGenerated.WithTabs.Tabs4.testEnterInsideText KT-34566
61 org.jetbrains.kotlin.idea.filters.KotlinExceptionFilterTestGenerated.testInlineFunCallInLibrary Unprocessed
62 org.jetbrains.kotlin.idea.filters.KotlinExceptionFilterTestGenerated.testInlineFunInnerClassFromLibrary Unprocessed
63 org.jetbrains.kotlin.idea.inspections.CoroutineNonBlockingContextDetectionTest.testCoroutineContextCheck KT-34659
-7
View File
@@ -88,13 +88,6 @@ org.jetbrains.kotlin.idea.decompiler.navigation.NavigateToLibrarySourceTestWithJ
org.jetbrains.kotlin.idea.decompiler.navigation.NavigateToLibrarySourceTestWithJSGenerated.testSameNameInDifferentSources, KT-34542, FAIL,
org.jetbrains.kotlin.idea.decompiler.navigation.NavigateToLibrarySourceTestWithJSGenerated.testTypeAlias, KT-34542, FAIL,
org.jetbrains.kotlin.idea.decompiler.navigation.NavigateToLibrarySourceTestWithJSGenerated.testTypeWithSameShortName, KT-34542, FAIL,
org.jetbrains.kotlin.idea.editor.MultiLineStringIndentTestGenerated.Spaces.testDontAddMarginCharWhenMultilineWithoutMargins, KT-34566,,
org.jetbrains.kotlin.idea.editor.MultiLineStringIndentTestGenerated.Spaces.testDontAddTrimCallWhenAlreadyMultilineFirstLine, KT-34566,,
org.jetbrains.kotlin.idea.editor.MultiLineStringIndentTestGenerated.Spaces.testEnterBeforeMarginChar, KT-34566,,
org.jetbrains.kotlin.idea.editor.MultiLineStringIndentTestGenerated.Spaces.testEnterInsideTextMargin, KT-34566,,
org.jetbrains.kotlin.idea.editor.MultiLineStringIndentTestGenerated.Spaces.testInsertCustomMarginInLineStart, KT-34566,,
org.jetbrains.kotlin.idea.editor.MultiLineStringIndentTestGenerated.WithTabs.Tabs2.testEnterInsideText, KT-34566,,
org.jetbrains.kotlin.idea.editor.MultiLineStringIndentTestGenerated.WithTabs.Tabs4.testEnterInsideText, KT-34566,,
org.jetbrains.kotlin.idea.filters.KotlinExceptionFilterTestGenerated.testInlineFunCallInLibrary, Unprocessed,,
org.jetbrains.kotlin.idea.filters.KotlinExceptionFilterTestGenerated.testInlineFunInnerClassFromLibrary, Unprocessed,,
org.jetbrains.kotlin.idea.inspections.CoroutineNonBlockingContextDetectionTest.testCoroutineContextCheck, KT-34659,,
-7
View File
@@ -60,13 +60,6 @@ org.jetbrains.kotlin.idea.decompiler.navigation.NavigateToLibrarySourceTestWithJ
org.jetbrains.kotlin.idea.decompiler.navigation.NavigateToLibrarySourceTestWithJSGenerated.testSameNameInDifferentSources, KT-34542, FAIL,
org.jetbrains.kotlin.idea.decompiler.navigation.NavigateToLibrarySourceTestWithJSGenerated.testTypeAlias, KT-34542, FAIL,
org.jetbrains.kotlin.idea.decompiler.navigation.NavigateToLibrarySourceTestWithJSGenerated.testTypeWithSameShortName, KT-34542, FAIL,
org.jetbrains.kotlin.idea.editor.MultiLineStringIndentTestGenerated.Spaces.testDontAddMarginCharWhenMultilineWithoutMargins, KT-34566,,
org.jetbrains.kotlin.idea.editor.MultiLineStringIndentTestGenerated.Spaces.testDontAddTrimCallWhenAlreadyMultilineFirstLine, KT-34566,,
org.jetbrains.kotlin.idea.editor.MultiLineStringIndentTestGenerated.Spaces.testEnterBeforeMarginChar, KT-34566,,
org.jetbrains.kotlin.idea.editor.MultiLineStringIndentTestGenerated.Spaces.testEnterInsideTextMargin, KT-34566,,
org.jetbrains.kotlin.idea.editor.MultiLineStringIndentTestGenerated.Spaces.testInsertCustomMarginInLineStart, KT-34566,,
org.jetbrains.kotlin.idea.editor.MultiLineStringIndentTestGenerated.WithTabs.Tabs2.testEnterInsideText, KT-34566,,
org.jetbrains.kotlin.idea.editor.MultiLineStringIndentTestGenerated.WithTabs.Tabs4.testEnterInsideText, KT-34566,,
org.jetbrains.kotlin.idea.filters.KotlinExceptionFilterTestGenerated.testInlineFunCallInLibrary, Unprocessed,,
org.jetbrains.kotlin.idea.filters.KotlinExceptionFilterTestGenerated.testInlineFunInnerClassFromLibrary, Unprocessed,,
org.jetbrains.kotlin.idea.inspections.CoroutineNonBlockingContextDetectionTest.testCoroutineContextCheck, KT-34659,,