Indent for ?. calls (KT-3913)
#KT-3913 Fixed
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2010-2013 JetBrains s.r.o.
|
* Copyright 2010-2014 JetBrains s.r.o.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2010-2013 JetBrains s.r.o.
|
* Copyright 2010-2014 JetBrains s.r.o.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -157,7 +157,7 @@ public class JetBlock extends AbstractBlock {
|
|||||||
// In try - try BLOCK catch BLOCK finally BLOCK
|
// In try - try BLOCK catch BLOCK finally BLOCK
|
||||||
return new ChildAttributes(Indent.getNoneIndent(), null);
|
return new ChildAttributes(Indent.getNoneIndent(), null);
|
||||||
}
|
}
|
||||||
else if (type == DOT_QUALIFIED_EXPRESSION) {
|
else if (type == DOT_QUALIFIED_EXPRESSION || type == SAFE_ACCESS_EXPRESSION) {
|
||||||
return new ChildAttributes(Indent.getContinuationWithoutFirstIndent(), null);
|
return new ChildAttributes(Indent.getContinuationWithoutFirstIndent(), null);
|
||||||
}
|
}
|
||||||
else if (type == VALUE_PARAMETER_LIST || type == VALUE_ARGUMENT_LIST) {
|
else if (type == VALUE_PARAMETER_LIST || type == VALUE_ARGUMENT_LIST) {
|
||||||
@@ -286,6 +286,10 @@ public class JetBlock extends AbstractBlock {
|
|||||||
.notForType(BLOCK, FUN_KEYWORD, VAL_KEYWORD, VAR_KEYWORD)
|
.notForType(BLOCK, FUN_KEYWORD, VAL_KEYWORD, VAR_KEYWORD)
|
||||||
.set(Indent.getContinuationWithoutFirstIndent()),
|
.set(Indent.getContinuationWithoutFirstIndent()),
|
||||||
|
|
||||||
|
ASTIndentStrategy.forNode("Chained calls")
|
||||||
|
.in(DOT_QUALIFIED_EXPRESSION, SAFE_ACCESS_EXPRESSION)
|
||||||
|
.set(Indent.getContinuationWithoutFirstIndent(true)),
|
||||||
|
|
||||||
ASTIndentStrategy.forNode("KDoc comment indent")
|
ASTIndentStrategy.forNode("KDoc comment indent")
|
||||||
.in(DOC_COMMENT)
|
.in(DOC_COMMENT)
|
||||||
.forType(KDocTokens.LEADING_ASTERISK, KDocTokens.END)
|
.forType(KDocTokens.LEADING_ASTERISK, KDocTokens.END)
|
||||||
@@ -317,12 +321,6 @@ public class JetBlock extends AbstractBlock {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Try to rewrite other rules to declarative style
|
// TODO: Try to rewrite other rules to declarative style
|
||||||
if (childParent != null && childParent.getElementType() == DOT_QUALIFIED_EXPRESSION) {
|
|
||||||
if (childParent.getFirstChildNode() != child && childParent.getLastChildNode() != child) {
|
|
||||||
return Indent.getContinuationWithoutFirstIndent(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (childParent != null) {
|
if (childParent != null) {
|
||||||
IElementType parentType = childParent.getElementType();
|
IElementType parentType = childParent.getElementType();
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,11 @@
|
|||||||
|
class Some {
|
||||||
|
fun some(): Some? = this
|
||||||
|
}
|
||||||
|
|
||||||
|
public fun bar(): String? =
|
||||||
|
Some()
|
||||||
|
?.some()
|
||||||
|
?.some()
|
||||||
|
?.some()!!
|
||||||
|
.toString()
|
||||||
|
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
class Some {
|
||||||
|
fun some(): Some? = this
|
||||||
|
}
|
||||||
|
|
||||||
|
public fun bar(): String? =
|
||||||
|
Some()
|
||||||
|
?.some()
|
||||||
|
?.some()
|
||||||
|
?.some()!!
|
||||||
|
.toString()
|
||||||
|
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
class Some {
|
||||||
|
fun some(): Some? = this
|
||||||
|
}
|
||||||
|
|
||||||
|
public fun bar(): String? = Some()?.some()
|
||||||
|
<caret>
|
||||||
|
?.some()
|
||||||
|
?.some()
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
class Some {
|
||||||
|
fun some(): Some? = this
|
||||||
|
}
|
||||||
|
|
||||||
|
public fun bar(): String? = Some()?.some()<caret>
|
||||||
|
?.some()
|
||||||
|
?.some()
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
fun test() {
|
||||||
|
some.test()?.
|
||||||
|
<caret>
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
fun test() {
|
||||||
|
some.test()?.<caret>
|
||||||
|
}
|
||||||
@@ -74,6 +74,11 @@ public class JetFormatterTestGenerated extends AbstractJetFormatterTest {
|
|||||||
doTest("idea/testData/formatter/ConsecutiveCalls.after.kt");
|
doTest("idea/testData/formatter/ConsecutiveCalls.after.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("ConsecutiveSafeCallsIndent.after.kt")
|
||||||
|
public void testConsecutiveSafeCallsIndent() throws Exception {
|
||||||
|
doTest("idea/testData/formatter/ConsecutiveSafeCallsIndent.after.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("DoWhileLineBreak.after.kt")
|
@TestMetadata("DoWhileLineBreak.after.kt")
|
||||||
public void testDoWhileLineBreak() throws Exception {
|
public void testDoWhileLineBreak() throws Exception {
|
||||||
doTest("idea/testData/formatter/DoWhileLineBreak.after.kt");
|
doTest("idea/testData/formatter/DoWhileLineBreak.after.kt");
|
||||||
|
|||||||
@@ -56,7 +56,9 @@ public class JetTypingIndentationTestBaseGenerated extends AbstractJetTypingInde
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void testAllFilesPresentInDirectSettings() throws Exception {
|
public void testAllFilesPresentInDirectSettings() throws Exception {
|
||||||
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.TestsPackage", new File("idea/testData/indentationOnNewline"), Pattern.compile("^([^\\.]+)\\.after\\.kt.*$"), true);
|
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.TestsPackage",
|
||||||
|
new File("idea/testData/indentationOnNewline"),
|
||||||
|
Pattern.compile("^([^\\.]+)\\.after\\.kt.*$"), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@TestMetadata("ConsecutiveCallsAfterDot.after.kt")
|
@TestMetadata("ConsecutiveCallsAfterDot.after.kt")
|
||||||
@@ -64,6 +66,16 @@ public class JetTypingIndentationTestBaseGenerated extends AbstractJetTypingInde
|
|||||||
doNewlineTest("idea/testData/indentationOnNewline/ConsecutiveCallsAfterDot.after.kt");
|
doNewlineTest("idea/testData/indentationOnNewline/ConsecutiveCallsAfterDot.after.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("ConsecutiveCallsInSaeCallsMiddle.after.kt")
|
||||||
|
public void testConsecutiveCallsInSaeCallsMiddle() throws Exception {
|
||||||
|
doNewlineTest("idea/testData/indentationOnNewline/ConsecutiveCallsInSaeCallsMiddle.after.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("ConsecutiveCallsInSafeCallsEnd.after.kt")
|
||||||
|
public void testConsecutiveCallsInSafeCallsEnd() throws Exception {
|
||||||
|
doNewlineTest("idea/testData/indentationOnNewline/ConsecutiveCallsInSafeCallsEnd.after.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("DoInFun.after.kt")
|
@TestMetadata("DoInFun.after.kt")
|
||||||
public void testDoInFun() throws Exception {
|
public void testDoInFun() throws Exception {
|
||||||
doNewlineTest("idea/testData/indentationOnNewline/DoInFun.after.kt");
|
doNewlineTest("idea/testData/indentationOnNewline/DoInFun.after.kt");
|
||||||
@@ -154,7 +166,9 @@ public class JetTypingIndentationTestBaseGenerated extends AbstractJetTypingInde
|
|||||||
@InnerTestClasses({})
|
@InnerTestClasses({})
|
||||||
public static class InvertedSettings extends AbstractJetTypingIndentationTestBase {
|
public static class InvertedSettings extends AbstractJetTypingIndentationTestBase {
|
||||||
public void testAllFilesPresentInInvertedSettings() throws Exception {
|
public void testAllFilesPresentInInvertedSettings() throws Exception {
|
||||||
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.TestsPackage", new File("idea/testData/indentationOnNewline"), Pattern.compile("^([^\\.]+)\\.after\\.inv\\.kt.*$"), true);
|
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.TestsPackage",
|
||||||
|
new File("idea/testData/indentationOnNewline"),
|
||||||
|
Pattern.compile("^([^\\.]+)\\.after\\.inv\\.kt.*$"), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@TestMetadata("SettingAlignMultilineParametersInCalls.after.inv.kt")
|
@TestMetadata("SettingAlignMultilineParametersInCalls.after.inv.kt")
|
||||||
|
|||||||
Reference in New Issue
Block a user