multiline-comment-style
Enforce a particular style for multiline comments
Some problems reported by this rule are automatically fixable by the --fix
command line option
Many style guides require a particular style for comments that span multiple lines. For example, some style guides prefer the use of a single block comment for multiline comments, whereas other style guides prefer consecutive line comments.
Rule Details
This rule aims to enforce a particular style for multiline comments.
Options
This rule has a string option, which can have one of the following values:
"starred-block"
(default): Disallows consecutive line comments in favor of block comments. Additionally, requires block comments to have an aligned*
character before each line."bare-block"
: Disallows consecutive line comments in favor of block comments, and disallows block comments from having a"*"
character before each line. This option ignores JSDoc comments."separate-lines"
: Disallows block comments in favor of consecutive line comments. By default, this option ignores JSDoc comments. To also apply this rule to JSDoc comments, set thecheckJSDoc
option totrue
.
The rule always ignores directive comments such as /* eslint-disable */
.
Examples of incorrect code for this rule with the default "starred-block"
option:
/* eslint multiline-comment-style: ["error", "starred-block"] */
// this line
// calls foo()
foo();
/* this line
calls foo() */
foo();
/* this comment
* is missing a newline after /*
*/
/*
* this comment
* is missing a newline at the end */
/*
* the star in this line should have a space before it
*/
/*
* the star on the following line should have a space before it
*/
Examples of correct code for this rule with the default "starred-block"
option:
/* eslint multiline-comment-style: ["error", "starred-block"] */
/*
* this line
* calls foo()
*/
foo();
// single-line comment
Examples of incorrect code for this rule with the "bare-block"
option:
/* eslint multiline-comment-style: ["error", "bare-block"] */
// this line
// calls foo()
foo();
/*
* this line
* calls foo()
*/
foo();
Examples of correct code for this rule with the "bare-block"
option:
/* eslint multiline-comment-style: ["error", "bare-block"] */
/* this line
calls foo() */
foo();
Examples of incorrect code for this rule with the "separate-lines"
option:
/* eslint multiline-comment-style: ["error", "separate-lines"] */
/* This line
calls foo() */
foo();
/*
* This line
* calls foo()
*/
foo();
Examples of correct code for this rule with the "separate-lines"
option:
/* eslint multiline-comment-style: ["error", "separate-lines"] */
// This line
// calls foo()
foo();
Examples of incorrect code for this rule with the "separate-lines"
option and checkJSDoc
set to true
:
/* eslint multiline-comment-style: ["error", "separate-lines", { "checkJSDoc": true }] */
/**
* I am a JSDoc comment
* and I'm not allowed
*/
foo();
Examples of correct code for this rule with the "separate-lines"
option and checkJSDoc
set to true
:
/* eslint multiline-comment-style: ["error", "separate-lines", { "checkJSDoc": true }] */
// I am a JSDoc comment
// and I'm not allowed
foo();
When Not To Use It
If you don’t want to enforce a particular style for multiline comments, you can disable the rule.
Version
This rule was introduced in ESLint v4.10.0.