Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 159906 Details for
Bug 284789
[formatter] Does not line-break method declaration exception with parameters
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
New proposed patch
v02.txt (text/plain), 22.17 KB, created by
Frederic Fusier
on 2010-02-23 05:22:50 EST
(
hide
)
Description:
New proposed patch
Filename:
MIME Type:
Creator:
Frederic Fusier
Created:
2010-02-23 05:22:50 EST
Size:
22.17 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.jdt.core >Index: formatter/org/eclipse/jdt/core/formatter/DefaultCodeFormatterConstants.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/formatter/org/eclipse/jdt/core/formatter/DefaultCodeFormatterConstants.java,v >retrieving revision 1.102 >diff -u -r1.102 DefaultCodeFormatterConstants.java >--- formatter/org/eclipse/jdt/core/formatter/DefaultCodeFormatterConstants.java 22 Feb 2010 16:44:31 -0000 1.102 >+++ formatter/org/eclipse/jdt/core/formatter/DefaultCodeFormatterConstants.java 23 Feb 2010 10:17:42 -0000 >@@ -197,6 +197,17 @@ > public static final String FORMATTER_ALIGNMENT_FOR_EXPRESSIONS_IN_ARRAY_INITIALIZER = JavaCore.PLUGIN_ID + ".formatter.alignment_for_expressions_in_array_initializer"; //$NON-NLS-1$ > /** > * <pre> >+ * FORMATTER / Option for alignment of method declaration >+ * - option id: "org.eclipse.jdt.core.formatter.alignment_for_method_declaration" >+ * - possible values: values returned by <code>createAlignmentValue(boolean, int, int)</code> call >+ * - default: createAlignmentValue(false, WRAP_COMPACT, INDENT_DEFAULT) >+ * </pre> >+ * @see #createAlignmentValue(boolean, int, int) >+ * @since 3.6 >+ */ >+ public static final String FORMATTER_ALIGNMENT_FOR_METHOD_DECLARATION = JavaCore.PLUGIN_ID + ".formatter.alignment_for_method_declaration"; //$NON-NLS-1$ >+ /** >+ * <pre> > * FORMATTER / Option for alignment of multiple fields > * - option id: "org.eclipse.jdt.core.formatter.alignment_for_multiple_fields" > * - possible values: values returned by <code>createAlignmentValue(boolean, int, int)</code> call >Index: formatter/org/eclipse/jdt/internal/formatter/CodeFormatterVisitor.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/CodeFormatterVisitor.java,v >retrieving revision 1.228 >diff -u -r1.228 CodeFormatterVisitor.java >--- formatter/org/eclipse/jdt/internal/formatter/CodeFormatterVisitor.java 22 Feb 2010 16:44:32 -0000 1.228 >+++ formatter/org/eclipse/jdt/internal/formatter/CodeFormatterVisitor.java 23 Feb 2010 10:17:44 -0000 >@@ -4126,84 +4126,109 @@ > return false; > } > >- /* >- * Print comments to get proper line number >- */ >- this.scribe.printComment(); >- int line = this.scribe.line; >- >- this.scribe.printModifiers(methodDeclaration.annotations, this, ICodeFormatterConstants.ANNOTATION_ON_MEMBER); >- >- if (this.scribe.line > line) { >- // annotations introduced new line, but this is not a line wrapping >- // see 158267 >- line = this.scribe.line; >- } >- this.scribe.space(); >- >- TypeParameter[] typeParameters = methodDeclaration.typeParameters; >- if (typeParameters != null) { >- this.scribe.printNextToken(TerminalTokens.TokenNameLESS, this.preferences.insert_space_before_opening_angle_bracket_in_type_parameters); >- if (this.preferences.insert_space_after_opening_angle_bracket_in_type_parameters) { >- this.scribe.space(); >- } >- int length = typeParameters.length; >- for (int i = 0; i < length - 1; i++) { >- typeParameters[i].traverse(this, methodDeclaration.scope); >- this.scribe.printNextToken(TerminalTokens.TokenNameCOMMA, this.preferences.insert_space_before_comma_in_type_parameters); >- if (this.preferences.insert_space_after_comma_in_type_parameters) { >- this.scribe.space(); >- } >- } >- typeParameters[length - 1].traverse(this, methodDeclaration.scope); >- if (isClosingGenericToken()) { >- this.scribe.printNextToken(CLOSING_GENERICS_EXPECTEDTOKENS, this.preferences.insert_space_before_closing_angle_bracket_in_type_parameters); >- } >- if (this.preferences.insert_space_after_closing_angle_bracket_in_type_parameters) { >- this.scribe.space(); >- } >- } >- > /* >- * Print the method return type >+ * Print comments to get proper line number > */ >- final TypeReference returnType = methodDeclaration.returnType; >+ this.scribe.printComment(); >+ int line = this.scribe.line; >+ >+ // Create alignment >+ Alignment methodDeclAlignment = this.scribe.createAlignment( >+ "methodDeclaration",//$NON-NLS-1$ >+ this.preferences.alignment_for_method_declaration, >+ Alignment.R_INNERMOST, >+ 3, >+ this.scribe.scanner.currentPosition); >+ this.scribe.enterAlignment(methodDeclAlignment); >+ boolean ok = false; > final MethodScope methodDeclarationScope = methodDeclaration.scope; >+ do { >+ try { > >- if (returnType != null) { >- returnType.traverse(this, methodDeclarationScope); >- } >- /* >- * Print the method name >- */ >- this.scribe.printNextToken(TerminalTokens.TokenNameIdentifier, true); >+ this.scribe.printModifiers(methodDeclaration.annotations, this, ICodeFormatterConstants.ANNOTATION_ON_MEMBER); >+ int fragmentIndex = 0; >+ this.scribe.alignFragment(methodDeclAlignment, fragmentIndex); >+ >+ if (this.scribe.line > line) { >+ // annotations introduced new line, but this is not a line wrapping >+ // see 158267 >+ line = this.scribe.line; >+ } >+ this.scribe.space(); >+ >+ TypeParameter[] typeParameters = methodDeclaration.typeParameters; >+ if (typeParameters != null) { >+ this.scribe.printNextToken(TerminalTokens.TokenNameLESS, this.preferences.insert_space_before_opening_angle_bracket_in_type_parameters); >+ if (this.preferences.insert_space_after_opening_angle_bracket_in_type_parameters) { >+ this.scribe.space(); >+ } >+ int length = typeParameters.length; >+ for (int i = 0; i < length - 1; i++) { >+ typeParameters[i].traverse(this, methodDeclaration.scope); >+ this.scribe.printNextToken(TerminalTokens.TokenNameCOMMA, this.preferences.insert_space_before_comma_in_type_parameters); >+ if (this.preferences.insert_space_after_comma_in_type_parameters) { >+ this.scribe.space(); >+ } >+ } >+ typeParameters[length - 1].traverse(this, methodDeclaration.scope); >+ if (isClosingGenericToken()) { >+ this.scribe.printNextToken(CLOSING_GENERICS_EXPECTEDTOKENS, this.preferences.insert_space_before_closing_angle_bracket_in_type_parameters); >+ } >+ if (this.preferences.insert_space_after_closing_angle_bracket_in_type_parameters) { >+ this.scribe.space(); >+ } >+ this.scribe.alignFragment(methodDeclAlignment, ++fragmentIndex); >+ } > >- formatMethodArguments( >- methodDeclaration, >- this.preferences.insert_space_before_opening_paren_in_method_declaration, >- this.preferences.insert_space_between_empty_parens_in_method_declaration, >- this.preferences.insert_space_before_closing_paren_in_method_declaration, >- this.preferences.insert_space_after_opening_paren_in_method_declaration, >- this.preferences.insert_space_before_comma_in_method_declaration_parameters, >- this.preferences.insert_space_after_comma_in_method_declaration_parameters, >- this.preferences.alignment_for_parameters_in_method_declaration); >+ /* >+ * Print the method return type >+ */ >+ final TypeReference returnType = methodDeclaration.returnType; >+ >+ if (returnType != null) { >+ returnType.traverse(this, methodDeclarationScope); >+ } >+ this.scribe.alignFragment(methodDeclAlignment, ++fragmentIndex); > >- /* >- * Check for extra dimensions >- */ >- int extraDimensions = getDimensions(); >- if (extraDimensions != 0) { >- for (int i = 0; i < extraDimensions; i++) { >- this.scribe.printNextToken(TerminalTokens.TokenNameLBRACKET); >- this.scribe.printNextToken(TerminalTokens.TokenNameRBRACKET); >- } >- } >+ /* >+ * Print the method name >+ */ >+ this.scribe.printNextToken(TerminalTokens.TokenNameIdentifier, true); >+ >+ // Format arguments >+ formatMethodArguments( >+ methodDeclaration, >+ this.preferences.insert_space_before_opening_paren_in_method_declaration, >+ this.preferences.insert_space_between_empty_parens_in_method_declaration, >+ this.preferences.insert_space_before_closing_paren_in_method_declaration, >+ this.preferences.insert_space_after_opening_paren_in_method_declaration, >+ this.preferences.insert_space_before_comma_in_method_declaration_parameters, >+ this.preferences.insert_space_after_comma_in_method_declaration_parameters, >+ this.preferences.alignment_for_parameters_in_method_declaration); >+ >+ /* >+ * Check for extra dimensions >+ */ >+ int extraDimensions = getDimensions(); >+ if (extraDimensions != 0) { >+ for (int i = 0; i < extraDimensions; i++) { >+ this.scribe.printNextToken(TerminalTokens.TokenNameLBRACKET); >+ this.scribe.printNextToken(TerminalTokens.TokenNameRBRACKET); >+ } >+ } > >- formatThrowsClause( >- methodDeclaration, >- this.preferences.insert_space_before_comma_in_method_declaration_throws, >- this.preferences.insert_space_after_comma_in_method_declaration_throws, >- this.preferences.alignment_for_throws_clause_in_method_declaration); >+ // Format throws >+ formatThrowsClause( >+ methodDeclaration, >+ this.preferences.insert_space_before_comma_in_method_declaration_throws, >+ this.preferences.insert_space_after_comma_in_method_declaration_throws, >+ this.preferences.alignment_for_throws_clause_in_method_declaration); >+ ok = true; >+ } catch (AlignmentException e) { >+ this.scribe.redoAlignment(e); >+ } >+ } while (!ok); >+ this.scribe.exitAlignment(methodDeclAlignment, true); > > if (!methodDeclaration.isNative() && !methodDeclaration.isAbstract() && ((methodDeclaration.modifiers & ExtraCompilerModifiers.AccSemicolonBody) == 0)) { > /* >@@ -4249,6 +4274,7 @@ > } > return false; > } >+ > public boolean visit(NormalAnnotation annotation, BlockScope scope) { > this.scribe.printNextToken(TerminalTokens.TokenNameAT); > if (this.preferences.insert_space_after_at_in_annotation) { >Index: formatter/org/eclipse/jdt/internal/formatter/DefaultCodeFormatterOptions.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/DefaultCodeFormatterOptions.java,v >retrieving revision 1.98 >diff -u -r1.98 DefaultCodeFormatterOptions.java >--- formatter/org/eclipse/jdt/internal/formatter/DefaultCodeFormatterOptions.java 22 Feb 2010 16:44:32 -0000 1.98 >+++ formatter/org/eclipse/jdt/internal/formatter/DefaultCodeFormatterOptions.java 23 Feb 2010 10:17:46 -0000 >@@ -58,6 +58,7 @@ > public int alignment_for_conditional_expression; > public int alignment_for_enum_constants; > public int alignment_for_expressions_in_array_initializer; >+ public int alignment_for_method_declaration; > public int alignment_for_multiple_fields; > public int alignment_for_parameters_in_constructor_declaration; > public int alignment_for_parameters_in_method_declaration; >@@ -348,6 +349,7 @@ > options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_CONDITIONAL_EXPRESSION, getAlignment(this.alignment_for_conditional_expression)); > options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_ENUM_CONSTANTS, getAlignment(this.alignment_for_enum_constants)); > options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_EXPRESSIONS_IN_ARRAY_INITIALIZER, getAlignment(this.alignment_for_expressions_in_array_initializer)); >+ options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_METHOD_DECLARATION, getAlignment(this.alignment_for_method_declaration)); > options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_MULTIPLE_FIELDS, getAlignment(this.alignment_for_multiple_fields)); > options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_PARAMETERS_IN_CONSTRUCTOR_DECLARATION, getAlignment(this.alignment_for_parameters_in_constructor_declaration)); > options.put(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_PARAMETERS_IN_METHOD_DECLARATION, getAlignment(this.alignment_for_parameters_in_method_declaration)); >@@ -732,6 +734,16 @@ > this.alignment_for_expressions_in_array_initializer = Alignment.M_COMPACT_SPLIT; > } > } >+ final Object alignmentForMethodDeclarationOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_METHOD_DECLARATION); >+ if (alignmentForMethodDeclarationOption != null) { >+ try { >+ this.alignment_for_method_declaration = Integer.parseInt((String) alignmentForMethodDeclarationOption); >+ } catch (NumberFormatException e) { >+ this.alignment_for_method_declaration = Alignment.M_COMPACT_SPLIT; >+ } catch(ClassCastException e) { >+ this.alignment_for_method_declaration = Alignment.M_COMPACT_SPLIT; >+ } >+ } > final Object alignmentForMultipleFieldsOption = settings.get(DefaultCodeFormatterConstants.FORMATTER_ALIGNMENT_FOR_MULTIPLE_FIELDS); > if (alignmentForMultipleFieldsOption != null) { > try { >#P org.eclipse.jdt.core.tests.model >Index: src/org/eclipse/jdt/core/tests/formatter/FormatterBugsTests.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/FormatterBugsTests.java,v >retrieving revision 1.21 >diff -u -r1.21 FormatterBugsTests.java >--- src/org/eclipse/jdt/core/tests/formatter/FormatterBugsTests.java 22 Feb 2010 16:44:26 -0000 1.21 >+++ src/org/eclipse/jdt/core/tests/formatter/FormatterBugsTests.java 23 Feb 2010 10:17:49 -0000 >@@ -977,6 +977,252 @@ > } > > /** >+ * @bug 284789: [formatter] Does not line-break method declaration exception with parameters >+ * @test Verify that the new preference to split method declaration works properly >+ * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=284789" >+ */ >+public void testBug284789() throws JavaModelException { >+ this.formatterPrefs.alignment_for_method_declaration = Alignment.M_COMPACT_SPLIT; >+ String source = >+ "public class Test {\n" + >+ "public synchronized List<FantasticallyWonderfulContainer<FantasticallyWonderfulClass>> getMeTheFantasticContainer() {\n" + >+ " return null;\n" + >+ "}\n" + >+ "}\n"; >+ formatSource(source, >+ "public class Test {\n" + >+ " public synchronized\n" + >+ " List<FantasticallyWonderfulContainer<FantasticallyWonderfulClass>>\n" + >+ " getMeTheFantasticContainer() {\n" + >+ " return null;\n" + >+ " }\n" + >+ "}\n" >+ ); >+} >+public void testBug284789_01a() throws JavaModelException { >+ // default is no wrapping for method declaration >+ String source = >+ "class X01 {\n" + >+ " public final synchronized java.lang.String a_method_which_have_a_very_long_name() {\n" + >+ " return null;\n" + >+ " }\n" + >+ "}\n"; >+ formatSource(source, >+ "class X01 {\n" + >+ " public final synchronized java.lang.String a_method_which_have_a_very_long_name() {\n" + >+ " return null;\n" + >+ " }\n" + >+ "}\n" >+ ); >+} >+public void testBug284789_01b() throws JavaModelException { >+ this.formatterPrefs.alignment_for_method_declaration = Alignment.M_COMPACT_SPLIT; >+ String source = >+ "class X01 {\n" + >+ " public final synchronized java.lang.String a_method_which_have_a_very_long_name() {\n" + >+ " return null;\n" + >+ " }\n" + >+ "}\n"; >+ formatSource(source, >+ "class X01 {\n" + >+ " public final synchronized java.lang.String\n" + >+ " a_method_which_have_a_very_long_name() {\n" + >+ " return null;\n" + >+ " }\n" + >+ "}\n" >+ ); >+} >+public void testBug284789_01c() throws JavaModelException { >+ this.formatterPrefs.alignment_for_method_declaration = Alignment.M_COMPACT_FIRST_BREAK_SPLIT; >+ String source = >+ "class X01 {\n" + >+ " public final synchronized java.lang.String a_method_which_have_a_very_long_name() {\n" + >+ " return null;\n" + >+ " }\n" + >+ "}\n"; >+ formatSource(source, >+ "class X01 {\n" + >+ " public final synchronized\n" + >+ " java.lang.String a_method_which_have_a_very_long_name() {\n" + >+ " return null;\n" + >+ " }\n" + >+ "}\n" >+ ); >+} >+public void testBug284789_01d() throws JavaModelException { >+ this.formatterPrefs.alignment_for_method_declaration = Alignment.M_ONE_PER_LINE_SPLIT; >+ String source = >+ "class X01 {\n" + >+ " public final synchronized java.lang.String a_method_which_have_a_very_long_name() {\n" + >+ " return null;\n" + >+ " }\n" + >+ "}\n"; >+ formatSource(source, >+ "class X01 {\n" + >+ " public final synchronized\n" + >+ " java.lang.String\n" + >+ " a_method_which_have_a_very_long_name() {\n" + >+ " return null;\n" + >+ " }\n" + >+ "}\n" >+ ); >+} >+public void testBug284789_01e() throws JavaModelException { >+ this.formatterPrefs.alignment_for_method_declaration = Alignment.M_NEXT_SHIFTED_SPLIT; >+ String source = >+ "class X01 {\n" + >+ " public final synchronized java.lang.String a_method_which_have_a_very_long_name() {\n" + >+ " return null;\n" + >+ " }\n" + >+ "}\n"; >+ formatSource(source, >+ "class X01 {\n" + >+ " public final synchronized\n" + >+ " java.lang.String\n" + >+ " a_method_which_have_a_very_long_name() {\n" + >+ " return null;\n" + >+ " }\n" + >+ "}\n" >+ ); >+} >+public void testBug284789_01f() throws JavaModelException { >+ this.formatterPrefs.alignment_for_method_declaration = Alignment.M_NEXT_PER_LINE_SPLIT; >+ String source = >+ "class X01 {\n" + >+ " public final synchronized java.lang.String a_method_which_have_a_very_long_name() {\n" + >+ " return null;\n" + >+ " }\n" + >+ "}\n"; >+ formatSource(source, >+ "class X01 {\n" + >+ " public final synchronized java.lang.String\n" + >+ " a_method_which_have_a_very_long_name() {\n" + >+ " return null;\n" + >+ " }\n" + >+ "}\n" >+ ); >+} >+public void testBug284789_02a() throws JavaModelException { >+ // default is no wrapping for method declaration >+ String source = >+ "class X02 {\n" + >+ " public final synchronized java.lang.String a_method_which_have_a_very_long_name(String first, String second, String third) {\n" + >+ " return null;\n" + >+ " }\n" + >+ "}\n"; >+ formatSource(source, >+ "class X02 {\n" + >+ " public final synchronized java.lang.String a_method_which_have_a_very_long_name(\n" + >+ " String first, String second, String third) {\n" + >+ " return null;\n" + >+ " }\n" + >+ "}\n" >+ ); >+} >+public void testBug284789_02b() throws JavaModelException { >+ this.formatterPrefs.alignment_for_method_declaration = Alignment.M_COMPACT_SPLIT; >+ this.formatterPrefs.alignment_for_parameters_in_method_declaration = Alignment.M_COMPACT_SPLIT; >+ String source = >+ "class X02 {\n" + >+ " public final synchronized java.lang.String a_method_which_have_a_very_long_name(String first, String second, String third) {\n" + >+ " return null;\n" + >+ " }\n" + >+ "}\n"; >+ formatSource(source, >+ "class X02 {\n" + >+ " public final synchronized java.lang.String\n" + >+ " a_method_which_have_a_very_long_name(String first, String second,\n" + >+ " String third) {\n" + >+ " return null;\n" + >+ " }\n" + >+ "}\n" >+ ); >+} >+public void testBug284789_02c() throws JavaModelException { >+ this.formatterPrefs.alignment_for_method_declaration = Alignment.M_COMPACT_FIRST_BREAK_SPLIT; >+ this.formatterPrefs.alignment_for_parameters_in_method_declaration = Alignment.M_COMPACT_FIRST_BREAK_SPLIT; >+ String source = >+ "class X02 {\n" + >+ " public final synchronized java.lang.String a_method_which_have_a_very_long_name(String first, String second, String third) {\n" + >+ " return null;\n" + >+ " }\n" + >+ "}\n"; >+ formatSource(source, >+ "class X02 {\n" + >+ " public final synchronized\n" + >+ " java.lang.String a_method_which_have_a_very_long_name(\n" + >+ " String first, String second, String third) {\n" + >+ " return null;\n" + >+ " }\n" + >+ "}\n" >+ ); >+} >+public void testBug284789_02d() throws JavaModelException { >+ this.formatterPrefs.alignment_for_method_declaration = Alignment.M_ONE_PER_LINE_SPLIT; >+ this.formatterPrefs.alignment_for_parameters_in_method_declaration = Alignment.M_ONE_PER_LINE_SPLIT; >+ String source = >+ "class X02 {\n" + >+ " public final synchronized java.lang.String a_method_which_have_a_very_long_name(String first, String second, String third) {\n" + >+ " return null;\n" + >+ " }\n" + >+ "}\n"; >+ formatSource(source, >+ "class X02 {\n" + >+ " public final synchronized\n" + >+ " java.lang.String\n" + >+ " a_method_which_have_a_very_long_name(\n" + >+ " String first,\n" + >+ " String second,\n" + >+ " String third) {\n" + >+ " return null;\n" + >+ " }\n" + >+ "}\n" >+ ); >+} >+public void testBug284789_02e() throws JavaModelException { >+ this.formatterPrefs.alignment_for_method_declaration = Alignment.M_NEXT_SHIFTED_SPLIT; >+ this.formatterPrefs.alignment_for_parameters_in_method_declaration = Alignment.M_NEXT_SHIFTED_SPLIT; >+ String source = >+ "class X02 {\n" + >+ " public final synchronized java.lang.String a_method_which_have_a_very_long_name(String first, String second, String third) {\n" + >+ " return null;\n" + >+ " }\n" + >+ "}\n"; >+ formatSource(source, >+ "class X02 {\n" + >+ " public final synchronized\n" + >+ " java.lang.String\n" + >+ " a_method_which_have_a_very_long_name(\n" + >+ " String first,\n" + >+ " String second,\n" + >+ " String third) {\n" + >+ " return null;\n" + >+ " }\n" + >+ "}\n" >+ ); >+} >+public void testBug284789_02f() throws JavaModelException { >+ this.formatterPrefs.alignment_for_method_declaration = Alignment.M_NEXT_PER_LINE_SPLIT; >+ this.formatterPrefs.alignment_for_parameters_in_method_declaration = Alignment.M_NEXT_PER_LINE_SPLIT; >+ String source = >+ "class X02 {\n" + >+ " public final synchronized java.lang.String a_method_which_have_a_very_long_name(String first, String second, String third) {\n" + >+ " return null;\n" + >+ " }\n" + >+ "}\n"; >+ formatSource(source, >+ "class X02 {\n" + >+ " public final synchronized java.lang.String\n" + >+ " a_method_which_have_a_very_long_name(String first,\n" + >+ " String second,\n" + >+ " String third) {\n" + >+ " return null;\n" + >+ " }\n" + >+ "}\n" >+ ); >+} >+ >+/** > * @bug 285565: [formatter] wrong indentation with 'Never join lines' selected > * @test Test to make sure that use either formatter or {@link IndentManipulation} > * API methods an indentation set to zero does not thrown any exception.
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 284789
:
159574
|
159906
|
159929