Skip to content
This repository has been archived by the owner on Sep 22, 2022. It is now read-only.

Commit

Permalink
Issue checkstyle#4934: Enforced WS in appropriate places for block ja…
Browse files Browse the repository at this point in the history
…vadoc tags
  • Loading branch information
voidfist authored and romani committed Aug 24, 2017
1 parent 1fb6107 commit e51c3b6
Show file tree
Hide file tree
Showing 13 changed files with 742 additions and 21 deletions.
1 change: 1 addition & 0 deletions .gitattributes
Expand Up @@ -2,3 +2,4 @@
/src/test/resources/com/puppycrawl/tools/checkstyle/checks/misc/newlineatendoffile/InputNewlineCrlfAtEndOfFile.java eol=crlf
/src/test/resources/com/puppycrawl/tools/checkstyle/grammars/InputNewlineCrAtEndOfFile.java -text
/src/test/resources/com/puppycrawl/tools/checkstyle/checks/misc/newlineatendoffile/InputNewlineCrAtEndOfFile.java -text
/src/test/resources/com/puppycrawl/tools/checkstyle/grammars/javadoc/javadocTags/InputSpaceBeforeDescriptionInBlockJavadocTags.javadoc eol=lf
Expand Up @@ -861,32 +861,36 @@ reference:
;
parameters: LEFT_BRACE (ARGUMENT | COMMA | WS | NEWLINE | LEADING_ASTERISK)* RIGHT_BRACE;

javadocTag: AUTHOR_LITERAL (WS | NEWLINE)* description?
javadocTag: AUTHOR_LITERAL (WS | NEWLINE)* ((WS | NEWLINE) description)?

| DEPRECATED_LITERAL (WS | NEWLINE)* description?
| DEPRECATED_LITERAL (WS | NEWLINE)* ((WS | NEWLINE) description)?

| EXCEPTION_LITERAL (WS | NEWLINE)* CLASS_NAME? (WS | NEWLINE)* description?
| EXCEPTION_LITERAL (WS | NEWLINE)* ((WS | NEWLINE) CLASS_NAME)? (WS | NEWLINE)*
((WS | NEWLINE) description)?

| PARAM_LITERAL (WS | NEWLINE)* PARAMETER_NAME? (WS | NEWLINE)* description?
| PARAM_LITERAL (WS | NEWLINE)* ((WS | NEWLINE) PARAMETER_NAME)? (WS | NEWLINE)*
((WS | NEWLINE) description)?

| RETURN_LITERAL (WS | NEWLINE)* description?
| RETURN_LITERAL (WS | NEWLINE)* ((WS | NEWLINE) description)?

| SEE_LITERAL (WS | NEWLINE)* reference? (STRING | htmlElement)* (WS | NEWLINE)* description?

| SERIAL_LITERAL (WS | NEWLINE)* (LITERAL_INCLUDE | LITERAL_EXCLUDE)? description?
| SERIAL_LITERAL (WS | NEWLINE)*
((WS | NEWLINE) description | LITERAL_INCLUDE | LITERAL_EXCLUDE)? (WS | NEWLINE)*

| SERIAL_DATA_LITERAL (WS | NEWLINE)* description?
| SERIAL_DATA_LITERAL (WS | NEWLINE)* ((WS | NEWLINE) description)?

| SERIAL_FIELD_LITERAL (WS | NEWLINE)* FIELD_NAME? (WS | NEWLINE)* FIELD_TYPE?
(WS | NEWLINE)* description?
| SERIAL_FIELD_LITERAL (WS | NEWLINE)* ((WS | NEWLINE) FIELD_NAME)? (WS | NEWLINE)*
((WS | NEWLINE) FIELD_TYPE)? (WS | NEWLINE)* ((WS | NEWLINE) description)?

| SINCE_LITERAL (WS | NEWLINE)* description?
| SINCE_LITERAL (WS | NEWLINE)* ((WS | NEWLINE) description)?

| THROWS_LITERAL (WS | NEWLINE)* CLASS_NAME? (WS | NEWLINE)* description?
| THROWS_LITERAL (WS | NEWLINE)* ((WS | NEWLINE) CLASS_NAME)? (WS | NEWLINE)*
((WS | NEWLINE) description)?

| VERSION_LITERAL (WS | NEWLINE)* description?
| VERSION_LITERAL (WS | NEWLINE)* ((WS | NEWLINE) description)?

| CUSTOM_NAME (WS | NEWLINE)* description?
| CUSTOM_NAME (WS | NEWLINE)* ((WS | NEWLINE) description)?
;
//////////////////////////////////////////////////////////////////////////////////////
////////////////////////// JAVADOC INLINE TAGS /////////////////////////////////////
Expand Down
Expand Up @@ -135,4 +135,12 @@ public void testAstTreeSingleLineComments() throws Exception {
getPath("InputFullOfSinglelineComments.java"),
AstTreeStringPrinter.PrintOptions.WITH_COMMENTS);
}

@Test
public void testJavadocTagsWithoutArgs() throws Exception {
verifyJavaAndJavadocAst(
getPath("expectedAstTreeStringPrinterJavadocTagsWithoutArgsAst.txt"),
getPath("InputAstTreeStringPrinterJavadocTagsWithoutArgs.java")
);
}
}
Expand Up @@ -233,4 +233,5 @@ public void testOmittedStartTagForHtmlElement() throws Exception {
expected, ex.getMessage());
}
}

}
Expand Up @@ -276,6 +276,27 @@ public void testVisitLeaveToken()
JavadocVisitLeaveCheck.visitCount, JavadocVisitLeaveCheck.leaveCount);
}

@Test
public void testNoWsBeforeDescriptionInJavadocTags() throws Exception {
final DefaultConfiguration checkConfig = createModuleConfig(TempCheck.class);
final String[] expected = {
"13: " + getCheckMessage(MSG_JAVADOC_PARSE_RULE_ERROR,
23, "mismatched input 'd' expecting <EOF>", "JAVADOC"),
"22: " + getCheckMessage(MSG_JAVADOC_PARSE_RULE_ERROR,
30, "mismatched input '-' expecting <EOF>", "JAVADOC"),
"28: " + getCheckMessage(MSG_JAVADOC_PARSE_RULE_ERROR,
39, "mismatched input '-' expecting <EOF>", "JAVADOC"),
"40: " + getCheckMessage(MSG_JAVADOC_PARSE_RULE_ERROR,
34, "mismatched input '-' expecting <EOF>", "JAVADOC"),
"48: " + getCheckMessage(MSG_JAVADOC_PARSE_RULE_ERROR,
31, "mismatched input '-' expecting <EOF>", "JAVADOC"),
"57: " + getCheckMessage(MSG_JAVADOC_PARSE_RULE_ERROR,
15, "mismatched input '-' expecting <EOF>", "JAVADOC"),
};
verify(checkConfig, getPath("InputAbstractJavadocNoWsBeforeDescriptionInJavadocTags.java"),
expected);
}

private static class TempCheck extends AbstractJavadocCheck {

@Override
Expand Down
Expand Up @@ -269,4 +269,10 @@ public void testHtmlVoidElementEmbed() throws Exception {
verifyJavadocTree(getHtmlPath("expectedHtmlVoidElementEmbedAst.txt"),
getHtmlPath("InputHtmlVoidElementEmbed.javadoc"));
}

@Test
public void testSpaceBeforeDescriptionInBlockJavadocTags() throws Exception {
verifyJavadocTree(getDocPath("expectedSpaceBeforeDescriptionInBlockJavadocTagsAst.txt"),
getDocPath("InputSpaceBeforeDescriptionInBlockJavadocTags.javadoc"));
}
}
@@ -0,0 +1,60 @@
package com.puppycrawl.tools.checkstyle.astprinter;

import java.io.Serializable;

/**@author*/
public class InputAstTreeStringPrinterJavadocTagsWithoutArgs implements Serializable{
/**@serial*/
private static final long serialVersionUID = 7556448691029650757L;

/**@see*/
private static int field2;

/**@since*/
private static String field3;

/**@version*/
private static Object field4;

/**serialField*/
private static Object field5;

/**@exception*/
public static void method1() {

}

/**@throws*/
public static void method2() {

}

/**@return*/
public static int method3() {
return -1;
}

/**@param*/
public static void method4(int a) {

}

/**@customTag*/
public static void method5(int a) {

}

/**@deprecated*/
public static void method6(int a) {

}

/**@serialData*/
private void readObject(java.io.ObjectInputStream inputStream) {

}

private void writeObject(java.io.ObjectOutputStream outputStream) {

}
}

0 comments on commit e51c3b6

Please sign in to comment.