diff --git a/.ci/jsoref-spellchecker/whitelist.words b/.ci/jsoref-spellchecker/whitelist.words
index 1287d1daea24..5219fe346de0 100644
--- a/.ci/jsoref-spellchecker/whitelist.words
+++ b/.ci/jsoref-spellchecker/whitelist.words
@@ -641,6 +641,7 @@ javadocblocktaglocation
javadoccontentlocation
javadocdetailnodeparser
javadocmethod
+javadocmissingwhitespaceafterasterisk
javadocpackage
javadocparagraph
javadocpropertiesgenerator
diff --git a/config/checkstyle_checks.xml b/config/checkstyle_checks.xml
index b339309d5cc2..29eec0307ce9 100644
--- a/config/checkstyle_checks.xml
+++ b/config/checkstyle_checks.xml
@@ -513,6 +513,7 @@
Example:
+ *
* Checks whether files end with a line separator.
*
diff --git a/src/main/java/com/puppycrawl/tools/checkstyle/checks/coding/FinalLocalVariableCheck.java b/src/main/java/com/puppycrawl/tools/checkstyle/checks/coding/FinalLocalVariableCheck.java
index 643b428b109e..f39b95cb2343 100644
--- a/src/main/java/com/puppycrawl/tools/checkstyle/checks/coding/FinalLocalVariableCheck.java
+++ b/src/main/java/com/puppycrawl/tools/checkstyle/checks/coding/FinalLocalVariableCheck.java
@@ -794,7 +794,7 @@ public Optional
+ * }
* Tree:
* {@docRoot
- *}
*
+ *
*
* @since 3.1
*/
diff --git a/src/main/java/com/puppycrawl/tools/checkstyle/checks/imports/RedundantImportCheck.java b/src/main/java/com/puppycrawl/tools/checkstyle/checks/imports/RedundantImportCheck.java
index 6c3a1bf3cfa4..4c71e4eeb688 100644
--- a/src/main/java/com/puppycrawl/tools/checkstyle/checks/imports/RedundantImportCheck.java
+++ b/src/main/java/com/puppycrawl/tools/checkstyle/checks/imports/RedundantImportCheck.java
@@ -33,14 +33,14 @@
* Checks for redundant import statements. An import statement is
* considered redundant if:
* |--JAVADOC_INLINE_TAG[1x0] : [{@docRoot \n}]
diff --git a/src/main/java/com/puppycrawl/tools/checkstyle/checks/NewlineAtEndOfFileCheck.java b/src/main/java/com/puppycrawl/tools/checkstyle/checks/NewlineAtEndOfFileCheck.java
index ede15cb0ab02..9500003513c9 100644
--- a/src/main/java/com/puppycrawl/tools/checkstyle/checks/NewlineAtEndOfFileCheck.java
+++ b/src/main/java/com/puppycrawl/tools/checkstyle/checks/NewlineAtEndOfFileCheck.java
@@ -29,7 +29,7 @@
import com.puppycrawl.tools.checkstyle.api.FileText;
/**
- *
* To configure the check: *
diff --git a/src/main/java/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocContentLocationCheck.java b/src/main/java/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocContentLocationCheck.java index 8b4a9416b2e9..50edadc73f24 100644 --- a/src/main/java/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocContentLocationCheck.java +++ b/src/main/java/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocContentLocationCheck.java @@ -110,7 +110,7 @@ * * This comment is OK because it starts from the second line. * */ * /** This comment is OK because it is on the single line. */ - * + * ** To ensure that Javadoc content starts from the first line: *
diff --git a/src/main/java/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocMissingWhitespaceAfterAsteriskCheck.java b/src/main/java/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocMissingWhitespaceAfterAsteriskCheck.java new file mode 100644 index 000000000000..ed888a4b2f47 --- /dev/null +++ b/src/main/java/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocMissingWhitespaceAfterAsteriskCheck.java @@ -0,0 +1,134 @@ +//////////////////////////////////////////////////////////////////////////////// +// checkstyle: Checks Java source code for adherence to a set of rules. +// Copyright (C) 2001-2020 the original author or authors. +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +//////////////////////////////////////////////////////////////////////////////// + +package com.puppycrawl.tools.checkstyle.checks.javadoc; + +import com.puppycrawl.tools.checkstyle.StatelessCheck; +import com.puppycrawl.tools.checkstyle.api.DetailAST; +import com.puppycrawl.tools.checkstyle.api.DetailNode; +import com.puppycrawl.tools.checkstyle.api.JavadocTokenTypes; +import com.puppycrawl.tools.checkstyle.utils.JavadocUtil; +import com.puppycrawl.tools.checkstyle.utils.TokenUtil; + +/** + *+ * Checks that at there is least one whitespace after the leading asterisk. + *
+ *+ * To configure the default check: + *
+ *+ * <module name="JavadocMissingWhitespaceAfterAsterisk"/> + *+ *
+ * Code Example: + *
+ *+ * class TestClass { + * /** + * *This is invalid java doc. + * */ + * void invalidJavaDocMethod() { + * } + * /** + * * This is valid java doc. + * */ + * void validJavaDocMethod() { + * } + * /**This is invalid single linejava doc. */ + * void InvalidSingleLineJavaDocMethod() { + * } + * } + *+ * + * @since 8.31 + */ +@StatelessCheck +public class JavadocMissingWhitespaceAfterAsteriskCheck extends AbstractJavadocCheck { + + /** + * A key is pointing to the warning message text in "messages.properties" file. + */ + public static final String MSG_KEY = "javadoc.missing.whitespace"; + + @Override + public int[] getDefaultJavadocTokens() { + return new int[] { + JavadocTokenTypes.JAVADOC, + JavadocTokenTypes.LEADING_ASTERISK, + }; + } + + @Override + public int[] getAcceptableJavadocTokens() { + return getDefaultJavadocTokens(); + } + + @Override + public int[] getRequiredJavadocTokens() { + return getDefaultJavadocTokens(); + } + + @Override + public void visitJavadocToken(DetailNode detailNode) { + if (detailNode.getType() == JavadocTokenTypes.JAVADOC + && isSingleLineJavadoc(getBlockCommentAst())) { + checkWhitespaceAfterAsterisk(JavadocUtil.getFirstChild(detailNode)); + } + else { + final DetailNode nextSibling = JavadocUtil.getNextSibling(detailNode); + if (nextSibling != null && nextSibling.getType() != JavadocTokenTypes.EOF) { + checkWhitespaceAfterAsterisk(nextSibling); + } + } + } + + /** + * Checks if there is at least one whitespace after leading asterisk. + * + * @param node the node after the leading asterisk. + */ + private void checkWhitespaceAfterAsterisk(DetailNode node) { + final String tagText = node.getText(); + + if (!Character.isWhitespace(tagText.charAt(0))) { + log(node.getLineNumber(), node.getColumnNumber(), MSG_KEY); + } + } + + /** + * Checks if comment is single line comment. + * + * @param blockCommentStart the AST tree in which a block comment starts + * @return true, if comment is single line comment. + */ + private static boolean isSingleLineJavadoc(DetailAST blockCommentStart) { + final DetailAST blockCommentEnd = blockCommentStart.getLastChild(); + return TokenUtil.areOnSameLine(blockCommentStart, blockCommentEnd); + } + +} diff --git a/src/main/java/com/puppycrawl/tools/checkstyle/checks/javadoc/SummaryJavadocCheck.java b/src/main/java/com/puppycrawl/tools/checkstyle/checks/javadoc/SummaryJavadocCheck.java index 30630939d010..52594cd79eb6 100644 --- a/src/main/java/com/puppycrawl/tools/checkstyle/checks/javadoc/SummaryJavadocCheck.java +++ b/src/main/java/com/puppycrawl/tools/checkstyle/checks/javadoc/SummaryJavadocCheck.java @@ -32,7 +32,7 @@ import com.puppycrawl.tools.checkstyle.utils.JavadocUtil; /** - *
+ *
* Checks that * * Javadoc summary sentence does not contain phrases that are not recommended to use. diff --git a/src/main/java/com/puppycrawl/tools/checkstyle/filters/SuppressionXpathFilter.java b/src/main/java/com/puppycrawl/tools/checkstyle/filters/SuppressionXpathFilter.java index 29c505fed1ae..093a81a0df5b 100644 --- a/src/main/java/com/puppycrawl/tools/checkstyle/filters/SuppressionXpathFilter.java +++ b/src/main/java/com/puppycrawl/tools/checkstyle/filters/SuppressionXpathFilter.java @@ -199,6 +199,9 @@ * JavadocBlockTagLocation * *
tag should be preceded with an empty line. diff --git a/src/main/resources/com/puppycrawl/tools/checkstyle/checks/javadoc/messages_de.properties b/src/main/resources/com/puppycrawl/tools/checkstyle/checks/javadoc/messages_de.properties index 54a43a8f57bf..9829cbb343c5 100644 --- a/src/main/resources/com/puppycrawl/tools/checkstyle/checks/javadoc/messages_de.properties +++ b/src/main/resources/com/puppycrawl/tools/checkstyle/checks/javadoc/messages_de.properties @@ -13,6 +13,7 @@ javadoc.invalidInheritDoc=Unerlaubte Verwendung des Tags '{'@inheritDoc'}'. javadoc.legacyPackageHtml=Die veraltete Datei package.html sollte entfernt werden. javadoc.missed.html.close=Der Javadoc-Kommentar an Position {0} führt zu einem Parserfehler. Fehlendes schließendes HTML-Tag ''{1}''. Manchmal bedeutet dies, dass das schließende Tag eines vorgehenden Tags fehlt. javadoc.missing=Es fehlt ein Javadoc-Kommentar. +javadoc.missing.whitespace=Nach dem Sternchen fehlt ein Leerzeichen. javadoc.noPeriod=Der erste Satz sollte mit einem Punkt enden. javadoc.packageInfo=Es fehlt eine package-info.java. javadoc.paragraph.line.before=Einem
-Tag im Javadoc sollte eine leere Zeile vorangestellt werden. diff --git a/src/main/resources/com/puppycrawl/tools/checkstyle/checks/javadoc/messages_es.properties b/src/main/resources/com/puppycrawl/tools/checkstyle/checks/javadoc/messages_es.properties index 4cf75c105b2b..6fadafa25588 100644 --- a/src/main/resources/com/puppycrawl/tools/checkstyle/checks/javadoc/messages_es.properties +++ b/src/main/resources/com/puppycrawl/tools/checkstyle/checks/javadoc/messages_es.properties @@ -13,6 +13,7 @@ javadoc.invalidInheritDoc=Uso no válido del '{'inheritDoc '}' etiqueta. javadoc.legacyPackageHtml=Archivo package.html legado debe ser eliminado. javadoc.missed.html.close=Javadoc comentario en la columna {0} tiene parse error. Perdidas HTML cerca etiqueta ''{1}''. A veces esto significa que cerca de la etiqueta se perdió por una de las etiquetas anteriores. javadoc.missing=Falta el comentario Javadoc. +javadoc.missing.whitespace=Falta un espacio en blanco después del asterisco principal. javadoc.noPeriod=La primera frase debería finalizar con un punto. javadoc.packageInfo=Falta el archivo package-info.java. javadoc.paragraph.line.before=
etiqueta debe ir precedida de una línea vacía. diff --git a/src/main/resources/com/puppycrawl/tools/checkstyle/checks/javadoc/messages_fi.properties b/src/main/resources/com/puppycrawl/tools/checkstyle/checks/javadoc/messages_fi.properties index ddbaddc7af73..9162337168a8 100644 --- a/src/main/resources/com/puppycrawl/tools/checkstyle/checks/javadoc/messages_fi.properties +++ b/src/main/resources/com/puppycrawl/tools/checkstyle/checks/javadoc/messages_fi.properties @@ -13,6 +13,7 @@ javadoc.invalidInheritDoc=Virheellinen käyttö '{'inheritDoc '}' tag. javadoc.legacyPackageHtml=Legacy package.html tiedosto tulisi poistaa. javadoc.missed.html.close=Javadoc kommentti sarakkeessa {0} on Jäsennysvirhe. Missed HTML lähellä tag ''{1}''. Joskus se tarkoittaa, että lähellä tag jäi yhden edellisen tunnisteita. javadoc.missing=Javadoc-kommentti puuttuu. +javadoc.missing.whitespace=Valkoinen tila puuttuu edessä olevan tähden jälkeen. javadoc.noPeriod=Ensimmäinen virke pitäisi päättyä aikana. javadoc.packageInfo=Puuttuu package-info.java tiedosto. javadoc.paragraph.line.before=
tag pitäisi edeltää tyhjä rivi. diff --git a/src/main/resources/com/puppycrawl/tools/checkstyle/checks/javadoc/messages_fr.properties b/src/main/resources/com/puppycrawl/tools/checkstyle/checks/javadoc/messages_fr.properties index 4d0952535d50..b582258a84e9 100644 --- a/src/main/resources/com/puppycrawl/tools/checkstyle/checks/javadoc/messages_fr.properties +++ b/src/main/resources/com/puppycrawl/tools/checkstyle/checks/javadoc/messages_fr.properties @@ -13,6 +13,7 @@ javadoc.invalidInheritDoc=Utilisation invalide de la balise '{'@inheritDoc '}'. javadoc.legacyPackageHtml=L''ancien fichier package.html doit être supprimé. javadoc.missed.html.close=Le commentaire Javadoc à la colonne {0} ne peut être analysé. La balise HTML fermante ''{1}'' n''a pas été trouvée. Parfois, cela signifie qu''une des balises fermantes précédentes est manquante. javadoc.missing=Commentaire Javadoc manquant. +javadoc.missing.whitespace=Manque un espace après l'astérisque de tête. javadoc.noPeriod=La première ligne de la Javadoc doit se terminer avec un point. javadoc.packageInfo=Le fichier package-info.java est manquant. javadoc.paragraph.line.before=La balise
doit être précédée d''une ligne vide. diff --git a/src/main/resources/com/puppycrawl/tools/checkstyle/checks/javadoc/messages_ja.properties b/src/main/resources/com/puppycrawl/tools/checkstyle/checks/javadoc/messages_ja.properties index 8b41deae92e6..499840f8ef8f 100644 --- a/src/main/resources/com/puppycrawl/tools/checkstyle/checks/javadoc/messages_ja.properties +++ b/src/main/resources/com/puppycrawl/tools/checkstyle/checks/javadoc/messages_ja.properties @@ -13,6 +13,7 @@ javadoc.invalidInheritDoc='{' @inheritDoc '}'タグの使用が無効です。 javadoc.legacyPackageHtml=古い形式のpackage.htmlファイルは削除してください。 javadoc.missed.html.close={0} 桁目の Javadoc コメントでパースエラーが発生しました。HTML タグ ''{1}'' が閉じていません。どこかもっと前のタグが閉じていない可能性もあります。 javadoc.missing=Javadoc コメントがありません。 +javadoc.missing.whitespace=先頭のアスタリスクの後に空白がありません。 javadoc.noPeriod=最初の一文はピリオドで終わらなければなりません。 javadoc.packageInfo=package-info.javaファイルがありません。 javadoc.paragraph.line.before=
タグの前には空行を入れてください。 diff --git a/src/main/resources/com/puppycrawl/tools/checkstyle/checks/javadoc/messages_pt.properties b/src/main/resources/com/puppycrawl/tools/checkstyle/checks/javadoc/messages_pt.properties index 08f3e618ed89..c70bbcaa71d8 100644 --- a/src/main/resources/com/puppycrawl/tools/checkstyle/checks/javadoc/messages_pt.properties +++ b/src/main/resources/com/puppycrawl/tools/checkstyle/checks/javadoc/messages_pt.properties @@ -13,6 +13,7 @@ javadoc.invalidInheritDoc=Uso inválido da tag '{'inheritDoc '}'. javadoc.legacyPackageHtml=O arquivo package.html legado deve ser removido. javadoc.missed.html.close=O comentário de Javadoc na coluna {0} tem erro sintático. Faltou uma etiqueta de fechamento HTML ''{1}''. Às vezes, isso significa que uma etiqueta de fechamento foi esquecida em uma das etiquetas HTML anteriores. javadoc.missing=Falta o comentário Javadoc. +javadoc.missing.whitespace=Falta um espaço em branco após o asterisco inicial. javadoc.noPeriod=A primeira frase deve acabar num ponto final. javadoc.packageInfo=O arquivo package-info.java está faltando. javadoc.paragraph.line.before=A tag
deveria ser precedida por uma linha vazia. diff --git a/src/main/resources/com/puppycrawl/tools/checkstyle/checks/javadoc/messages_tr.properties b/src/main/resources/com/puppycrawl/tools/checkstyle/checks/javadoc/messages_tr.properties index 1e3abcfabda6..a7c8dae599dd 100644 --- a/src/main/resources/com/puppycrawl/tools/checkstyle/checks/javadoc/messages_tr.properties +++ b/src/main/resources/com/puppycrawl/tools/checkstyle/checks/javadoc/messages_tr.properties @@ -13,6 +13,7 @@ javadoc.invalidInheritDoc='{'@inheritDoc'}' etiketi kullanımı geçersiz. javadoc.legacyPackageHtml=Eskide kalan package.html dosyaları kaldırılmalı. javadoc.missed.html.close=Sütununda Javadoc comment {0} hatası ayrıştırmak vardır. Cevapsız HTML yakın etiketi ''{1}'' Bazen yakın etiketi önceki etiketler biri için kaçırmış demektir. javadoc.missing=Javadoc açıklaması eksik. +javadoc.missing.whitespace=Önde gelen yıldız işaretinden sonra boşluk bırakma. javadoc.noPeriod=İlk cümle nokta ile bitmeli. javadoc.packageInfo=package-info.java dosyası eksik. javadoc.paragraph.line.before=
etiketi boş bir çizgi ile gelmelidir. diff --git a/src/main/resources/com/puppycrawl/tools/checkstyle/checks/javadoc/messages_zh.properties b/src/main/resources/com/puppycrawl/tools/checkstyle/checks/javadoc/messages_zh.properties index 1e2ea4f2b64d..6f44cc2900e2 100644 --- a/src/main/resources/com/puppycrawl/tools/checkstyle/checks/javadoc/messages_zh.properties +++ b/src/main/resources/com/puppycrawl/tools/checkstyle/checks/javadoc/messages_zh.properties @@ -13,6 +13,7 @@ javadoc.invalidInheritDoc='{'@inheritDoc'}' 标签使用方式错误。 javadoc.legacyPackageHtml=文件 package.html 应被删除。 javadoc.missed.html.close=Javadoc 第 {0} 个字符解析错误。缺少 HTML 闭合标签: ''{1}''。 有时这代表前一标签未闭合。 javadoc.missing=缺少 Javadoc 。 +javadoc.missing.whitespace=前导星号后缺少空格。 javadoc.noPeriod=Javadoc 首句应以句号结尾。 javadoc.packageInfo=缺少 package-info.java 文件。 javadoc.paragraph.line.before=
标签前应有空行。 diff --git a/src/test/java/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocMissingWhitespaceAfterAsteriskCheckTest.java b/src/test/java/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocMissingWhitespaceAfterAsteriskCheckTest.java new file mode 100644 index 000000000000..56401076ad9e --- /dev/null +++ b/src/test/java/com/puppycrawl/tools/checkstyle/checks/javadoc/JavadocMissingWhitespaceAfterAsteriskCheckTest.java @@ -0,0 +1,92 @@ +//////////////////////////////////////////////////////////////////////////////// +// checkstyle: Checks Java source code for adherence to a set of rules. +// Copyright (C) 2001-2020 the original author or authors. +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +//////////////////////////////////////////////////////////////////////////////// + +package com.puppycrawl.tools.checkstyle.checks.javadoc; + +import static com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocMissingWhitespaceAfterAsteriskCheck.MSG_KEY; +import static org.junit.jupiter.api.Assertions.assertArrayEquals; + +import org.junit.jupiter.api.Test; + +import com.puppycrawl.tools.checkstyle.AbstractModuleTestSupport; +import com.puppycrawl.tools.checkstyle.DefaultConfiguration; +import com.puppycrawl.tools.checkstyle.api.JavadocTokenTypes; + +public class JavadocMissingWhitespaceAfterAsteriskCheckTest + extends AbstractModuleTestSupport { + + @Override + protected String getPackageLocation() { + return "com/puppycrawl/tools/checkstyle/checks/javadoc" + + + "/javadocmissingwhitespaceafterasterisk"; + } + + @Test + public void testGetDefaultJavadocTokens() { + final JavadocMissingWhitespaceAfterAsteriskCheck checkObj = + new JavadocMissingWhitespaceAfterAsteriskCheck(); + final int[] expected = { + JavadocTokenTypes.JAVADOC, + JavadocTokenTypes.LEADING_ASTERISK, + }; + assertArrayEquals(expected, checkObj.getDefaultJavadocTokens(), + "Default tokens are invalid"); + } + + @Test + public void testGetAcceptableJavadocTokens() { + final JavadocMissingWhitespaceAfterAsteriskCheck checkObj = + new JavadocMissingWhitespaceAfterAsteriskCheck(); + final int[] expected = { + JavadocTokenTypes.JAVADOC, + JavadocTokenTypes.LEADING_ASTERISK, + }; + assertArrayEquals(expected, checkObj.getAcceptableJavadocTokens(), + "Default acceptable tokens are invalid"); + } + + @Test + public void testGetRequiredJavadocTokens() { + final JavadocMissingWhitespaceAfterAsteriskCheck checkObj = + new JavadocMissingWhitespaceAfterAsteriskCheck(); + final int[] expected = { + JavadocTokenTypes.JAVADOC, + JavadocTokenTypes.LEADING_ASTERISK, + }; + assertArrayEquals(expected, checkObj.getRequiredJavadocTokens(), + "Default required tokens are invalid"); + } + + @Test + public void testDefault() throws Exception { + final DefaultConfiguration checkConfig = + createModuleConfig(JavadocMissingWhitespaceAfterAsteriskCheck.class); + final String[] expected = { + "16:7: " + getCheckMessage(MSG_KEY), + "22:7: " + getCheckMessage(MSG_KEY), + "28:7: " + getCheckMessage(MSG_KEY), + "34:7: " + getCheckMessage(MSG_KEY), + "45:8: " + getCheckMessage(MSG_KEY), + "48:8: " + getCheckMessage(MSG_KEY), + }; + verify(checkConfig, getPath("InputJavadocMissingWhitespaceAfterAsterisk.java"), expected); + } + +} diff --git a/src/test/java/com/puppycrawl/tools/checkstyle/internal/XpathRegressionTest.java b/src/test/java/com/puppycrawl/tools/checkstyle/internal/XpathRegressionTest.java index 092a63dfd480..68fe5efcc10b 100644 --- a/src/test/java/com/puppycrawl/tools/checkstyle/internal/XpathRegressionTest.java +++ b/src/test/java/com/puppycrawl/tools/checkstyle/internal/XpathRegressionTest.java @@ -110,6 +110,7 @@ public class XpathRegressionTest extends AbstractModuleTestSupport { Collections.unmodifiableSet(new HashSet<>(Arrays.asList( "AtclauseOrder", "JavadocBlockTagLocation", + "JavadocMissingWhitespaceAfterAsterisk", "JavadocParagraph", "JavadocTagContinuationIndentation", "MissingDeprecated", diff --git a/src/test/resources/com/puppycrawl/tools/checkstyle/checks/javadoc/javadocmissingwhitespaceafterasterisk/InputJavadocMissingWhitespaceAfterAsterisk.java b/src/test/resources/com/puppycrawl/tools/checkstyle/checks/javadoc/javadocmissingwhitespaceafterasterisk/InputJavadocMissingWhitespaceAfterAsterisk.java new file mode 100644 index 000000000000..85e557cac8cd --- /dev/null +++ b/src/test/resources/com/puppycrawl/tools/checkstyle/checks/javadoc/javadocmissingwhitespaceafterasterisk/InputJavadocMissingWhitespaceAfterAsterisk.java @@ -0,0 +1,53 @@ +package com.puppycrawl.tools.checkstyle.checks.javadoc.javadocmissingwhitespaceafterasterisk; +class InputJavadocMissingWhitespaceAfterAsterisk +{ + /** + * + * This is ok. + **/ + void foo() {} + + /** + * This is ok. + */ + void foo1() {} + + /** + *This is not ok. + */ + void foo2() {} + + /** + * This is not ok. + *@see Something + */ + void foo3() {} + + /** + * @see + *This is not ok. + */ + void foo4() {} + + /** + *
+ *This is not ok. + *+ */ + void foo5() {} + + /** This is ok. */ + void bar() {} + + /** @see Something */ + void bar1() {} + + /**@see Something*/ + void bar2() {} + + /**This is not ok. */ + void bar4() {} + + /** This is ok. **/ + void bar5() {} +} diff --git a/src/xdocs/checks.xml b/src/xdocs/checks.xml index c441c0206047..1b8a29eeb11e 100644 --- a/src/xdocs/checks.xml +++ b/src/xdocs/checks.xml @@ -404,6 +404,11 @@
Since Checkstyle 8.31
++ Checks that at there is least one whitespace after the leading asterisk. +
+name | +description | +type | +default value | +since | +
---|---|---|---|---|
violateExecutionOnNonTightHtml | ++ Control when to print violations if the Javadoc being examined by this check + violates the tight html rules defined at + Tight-HTML Rules. | +Boolean | +false |
+ 8.3 | +
+ To configure the default check: +
+ ++ Code Example: +
+ ++ All messages can be customized if the default message doesn't suit you. + Please see the documentation to learn how to. +
++ com.puppycrawl.tools.checkstyle.checks.javadoc +
++ TreeWalker +
+Since Checkstyle 5.0