Put parameters on line: don't suggest if parameters has end-of-line comments
#KT-35214 Fixed
This commit is contained in:
committed by
igoriakovlev
parent
efa981db36
commit
89cc5777ce
@@ -6,10 +6,13 @@
|
|||||||
package org.jetbrains.kotlin.idea.intentions
|
package org.jetbrains.kotlin.idea.intentions
|
||||||
|
|
||||||
import com.intellij.openapi.editor.Editor
|
import com.intellij.openapi.editor.Editor
|
||||||
|
import com.intellij.psi.PsiComment
|
||||||
import com.intellij.psi.PsiDocumentManager
|
import com.intellij.psi.PsiDocumentManager
|
||||||
import com.intellij.psi.codeStyle.CodeStyleManager
|
import com.intellij.psi.codeStyle.CodeStyleManager
|
||||||
import org.jetbrains.kotlin.idea.KotlinBundle
|
import org.jetbrains.kotlin.idea.KotlinBundle
|
||||||
|
import org.jetbrains.kotlin.lexer.KtTokens
|
||||||
import org.jetbrains.kotlin.psi.*
|
import org.jetbrains.kotlin.psi.*
|
||||||
|
import org.jetbrains.kotlin.psi.psiUtil.allChildren
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.createSmartPointer
|
import org.jetbrains.kotlin.psi.psiUtil.createSmartPointer
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.endOffset
|
import org.jetbrains.kotlin.psi.psiUtil.endOffset
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.startOffset
|
import org.jetbrains.kotlin.psi.psiUtil.startOffset
|
||||||
@@ -22,7 +25,8 @@ abstract class AbstractJoinListIntention<TList : KtElement, TElement : KtElement
|
|||||||
override fun isApplicableTo(element: TList): Boolean {
|
override fun isApplicableTo(element: TList): Boolean {
|
||||||
val elements = element.elements()
|
val elements = element.elements()
|
||||||
if (elements.isEmpty()) return false
|
if (elements.isEmpty()) return false
|
||||||
return hasLineBreakBefore(elements.first()) || elements.any { hasLineBreakAfter(it) }
|
return (hasLineBreakBefore(elements.first()) || elements.any { hasLineBreakAfter(it) })
|
||||||
|
&& element.allChildren.none { it is PsiComment && it.node.elementType == KtTokens.EOL_COMMENT }
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun applyTo(element: TList, editor: Editor?) {
|
override fun applyTo(element: TList, editor: Editor?) {
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
// IS_APPLICABLE: false
|
||||||
|
fun foo(
|
||||||
|
a: Int, // comment
|
||||||
|
b: Int
|
||||||
|
) = 1
|
||||||
|
|
||||||
|
val x = foo(
|
||||||
|
<caret>1, // comment
|
||||||
|
2
|
||||||
|
)
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
// IS_APPLICABLE: false
|
||||||
|
fun foo(
|
||||||
|
<caret>a: Int, // comment
|
||||||
|
b: Int
|
||||||
|
) = 1
|
||||||
@@ -10412,6 +10412,11 @@ public class IntentionTestGenerated extends AbstractIntentionTest {
|
|||||||
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/testData/intentions/joinArgumentList"), Pattern.compile("^([\\w\\-_]+)\\.(kt|kts)$"), null, true);
|
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/testData/intentions/joinArgumentList"), Pattern.compile("^([\\w\\-_]+)\\.(kt|kts)$"), null, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("hasEndOfLineComment.kt")
|
||||||
|
public void testHasEndOfLineComment() throws Exception {
|
||||||
|
runTest("idea/testData/intentions/joinArgumentList/hasEndOfLineComment.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("hasLineBreakBeforeFirstArg.kt")
|
@TestMetadata("hasLineBreakBeforeFirstArg.kt")
|
||||||
public void testHasLineBreakBeforeFirstArg() throws Exception {
|
public void testHasLineBreakBeforeFirstArg() throws Exception {
|
||||||
runTest("idea/testData/intentions/joinArgumentList/hasLineBreakBeforeFirstArg.kt");
|
runTest("idea/testData/intentions/joinArgumentList/hasLineBreakBeforeFirstArg.kt");
|
||||||
@@ -10613,6 +10618,11 @@ public class IntentionTestGenerated extends AbstractIntentionTest {
|
|||||||
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/testData/intentions/joinParameterList"), Pattern.compile("^([\\w\\-_]+)\\.(kt|kts)$"), null, true);
|
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/testData/intentions/joinParameterList"), Pattern.compile("^([\\w\\-_]+)\\.(kt|kts)$"), null, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("hasEndOfLineComment.kt")
|
||||||
|
public void testHasEndOfLineComment() throws Exception {
|
||||||
|
runTest("idea/testData/intentions/joinParameterList/hasEndOfLineComment.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("hasLineBreakBeforeFirstParam.kt")
|
@TestMetadata("hasLineBreakBeforeFirstParam.kt")
|
||||||
public void testHasLineBreakBeforeFirstParam() throws Exception {
|
public void testHasLineBreakBeforeFirstParam() throws Exception {
|
||||||
runTest("idea/testData/intentions/joinParameterList/hasLineBreakBeforeFirstParam.kt");
|
runTest("idea/testData/intentions/joinParameterList/hasLineBreakBeforeFirstParam.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user