Skip to content

line-comment-position ​

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

js
// 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.

above ​

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

js
/* eslint @stylistic/line-comment-position: ["error", { "position": "above" }] */

1 + 1; 
// invalid comment
incorrect

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

js
/* eslint @stylistic/line-comment-position: ["error", { "position": "above" }] */

// valid comment
1 + 1;
correct

beside ​

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

js
/* eslint @stylistic/line-comment-position: ["error", { "position": "beside" }] */

// invalid comment
1 + 1;
incorrect

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

js
/* eslint @stylistic/line-comment-position: ["error", { "position": "beside" }] */

1 + 1; // valid comment
correct

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 incorrect code for the ignorePattern option:

js
/* eslint @stylistic/line-comment-position: ["error", { "ignorePattern": "pragma" }] */

1 + 1; 
// invalid comment
incorrect

Examples of correct code for the ignorePattern option:

js
/* eslint @stylistic/line-comment-position: ["error", { "ignorePattern": "pragma" }] */

1 + 1; // pragma valid comment
correct

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 incorrect code for the { "applyDefaultIgnorePatterns": false } option:

js
/* eslint @stylistic/line-comment-position: ["error", { "ignorePattern": "pragma", "applyDefaultIgnorePatterns": false }] */

1 + 1; 
// falls through
incorrect

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

js
/* eslint @stylistic/line-comment-position: ["error", { "ignorePattern": "pragma", "applyDefaultIgnorePatterns": false }] */

1 + 1; // pragma valid comment
correct

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

Changelog ​

v6.0.0-beta.1 on

Released under the MIT License.