ESLint v8.x reached end-of-life on 2024-10-05 and is no longer maintained. Upgrade or consider long-term support options
Versions

line-comment-position

Enforce position of line comments

Line comments can be positioned above or beside code. This rule helps teams maintain a consistent style.

// above comment
var foo = "bar";  // beside comment

Rule Details

This rule enforces consistent position of line comments. Block comments are not affected by this rule. By default, this rule ignores comments starting with the following words: eslint, jshint, jslint, istanbul, global, exported, jscs, falls through.

Options

This rule takes one argument, which can be a string or an object. The string settings are the same as those of the position property (explained below). The object option has the following properties:

position

The position option has two settings:

  • above (default) enforces line comments only above code, in its own line.
  • beside enforces line comments only at the end of code lines.

position: above

Examples of correct code for the { "position": "above" } option:

Open in Playground
/*eslint line-comment-position: ["error", { "position": "above" }]*/
// valid comment
1 + 1;

Examples of incorrect code for the { "position": "above" } option:

Open in Playground
/*eslint line-comment-position: ["error", { "position": "above" }]*/
1 + 1; // invalid comment

position: beside

Examples of correct code for the { "position": "beside" } option:

Open in Playground
/*eslint line-comment-position: ["error", { "position": "beside" }]*/
1 + 1; // valid comment

Examples of incorrect code for the { "position": "beside" } option:

Open in Playground
/*eslint line-comment-position: ["error", { "position": "beside" }]*/
// invalid comment
1 + 1;

ignorePattern

By default this rule ignores comments starting with the following words: eslint, jshint, jslint, istanbul, global, exported, jscs, falls through. An alternative regular expression can be provided.

Examples of correct code for the ignorePattern option:

Open in Playground
/*eslint line-comment-position: ["error", { "ignorePattern": "pragma" }]*/
1 + 1; // pragma valid comment

Examples of incorrect code for the ignorePattern option:

Open in Playground
/*eslint line-comment-position: ["error", { "ignorePattern": "pragma" }]*/
1 + 1; // invalid comment

applyDefaultIgnorePatterns

Default ignore patterns are applied even when ignorePattern is provided. If you want to omit default patterns, set this option to false.

Examples of correct code for the { "applyDefaultIgnorePatterns": false } option:

Open in Playground
/*eslint line-comment-position: ["error", { "ignorePattern": "pragma", "applyDefaultIgnorePatterns": false }]*/
1 + 1; // pragma valid comment

Examples of incorrect code for the { "applyDefaultIgnorePatterns": false } option:

Open in Playground
/*eslint line-comment-position: ["error", { "ignorePattern": "pragma", "applyDefaultIgnorePatterns": false }]*/
1 + 1; // falls through

Deprecated: the object property applyDefaultPatterns is deprecated. Please use the property applyDefaultIgnorePatterns instead.

When Not To Use It

If you aren’t concerned about having different line comment styles, then you can turn off this rule.

Compatibility

JSCS: validateCommentPosition

Version

This rule was introduced in ESLint v3.5.0.

Resources

Change Language