Spec-Zone.ru › ESLint

spaced-comment

Выполнять согласованное расстояние после // или /* в комментарии

🔧 Исправимо

Некоторые проблемы, сообщаемые этой правил, автоматически исправляются с помощью параметра --fix командной строки

Эта правила была устаревшей в ESLint v8.53.0. Используйте соответствующее правило в @stylistic/eslint-plugin-js.

Некоторые руководства по стилю требуют или запрещают пробел сразу после начального // или /* комментария. Пробел после // или /* облегчает чтение текста в комментариях. С другой стороны, выключение кода проще без необходимости размещения пробела сразу после // или /*.

Подробное описание правила

Это правило будет обеспечивать согласованность расстояния после начала комментария // или /*. Оно также предоставляет несколько исключений для различных стилей документации.

Параметры

Правило принимает два параметра.

  • Первый — это строка, которая может быть "always" или "never". По умолчанию "always".

    • Если "always", то // или /* должны быть последовать хотя бы одним пробелом.

    • Если "never", то пробел после него не должен быть.

  • Это правило также может принимать второй параметр, объект с любыми из следующих ключей: "exceptions" и "markers".

    • Значение "exceptions" — массив строковых шаблонов, которые считаются исключениями из правила. Правило не будет выводить предупреждение, когда шаблон начинается с начала комментария и повторяется до конца строки или */, если комментарий — комментарий на одной строке. Обратите внимание, что исключения игнорируются, если первый аргумент — "never".
    "spaced-comment": ["error", "always", { "exceptions": ["-", "+"] }]
    
    • Значение "markers" — массив строковых шаблонов, которые считаются маркерами комментариев в стиле документации, например, дополнительный /, используемый для обозначения документации, читаемой doxygen, vsdoc и т. д., которые должны иметь дополнительные символы. Массив "markers" будет применяться независимо от значения первого аргумента, например, "always" или "never".
    "spaced-comment": ["error", "always", { "markers": ["/"] }]
    

Разница между маркером и исключением заключается в том, что маркер появляется только в начале комментария, в то время как исключения могут встречаться где угодно в строке комментария.

Вы также можете определить отдельные исключения и маркеры для блочных и однострочных комментариев. Объект "block" может иметь дополнительный ключ "balanced", булево значение, указывающее, должны ли иметь сбалансированное расстояние встраиваемые блочные комментарии. По умолчанию false.

  • Если "balanced": true и "always", то /* должен следовать хотя бы один пробел, а */ — должен предшествовать хотя бы один пробел.

  • Если "balanced": true и "never", то после /* не должно быть пробела, и перед */ — тоже.

  • Если "balanced": false, то сбалансированные пробелы не навязываются.

"spaced-comment": ["error", "always", {
    "line": {
        "markers": ["/"],
        "exceptions": ["-", "+"]
    },
    "block": {
        "markers": ["!"],
        "exceptions": ["*"],
        "balanced": true
    }
}]

всегда

Примеры неправильного кода для этого правила с параметром "always":

Открыть в Playground
/*eslint spaced-comment: ["error", "always"]*/

//This is a comment with no whitespace at the beginning

/*This is a comment with no whitespace at the beginning */
Открыть в Playground
/* eslint spaced-comment: ["error", "always", { "block": { "balanced": true } }] */
/* This is a comment with whitespace at the beginning but not the end*/

Примеры правильного кода для этого правила с параметром "always":

Открыть в Playground
/* eslint spaced-comment: ["error", "always"] */

// This is a comment with a whitespace at the beginning

/* This is a comment with a whitespace at the beginning */

/*
 * This is a comment with a whitespace at the beginning
 */

/*
This comment has a newline
*/
Открыть в Playground
/* eslint spaced-comment: ["error", "always"] */

/**
* I am jsdoc
*/

никогда

Примеры неправильного кода для этого правила с параметром "never":

Открыть в Playground
/*eslint spaced-comment: ["error", "never"]*/

// This is a comment with a whitespace at the beginning

/* This is a comment with a whitespace at the beginning */

/* \nThis is a comment with a whitespace at the beginning */
Открыть в Playground
/*eslint spaced-comment: ["error", "never", { "block": { "balanced": true } }]*/
/*This is a comment with whitespace at the end */

Примеры правильного кода для этого правила с параметром "never":

Открыть в Playground
/*eslint spaced-comment: ["error", "never"]*/

/*This is a comment with no whitespace at the beginning */
Открыть в Playground
/*eslint spaced-comment: ["error", "never"]*/

/**
* I am jsdoc
*/

исключения

Примеры неправильного кода для этого правила с параметром "always" в сочетании с "exceptions":

Открыть в Playground
/* eslint spaced-comment: ["error", "always", { "block": { "exceptions": ["-"] } }] */

//--------------
// Comment block
//--------------
Открыть в Playground
/* eslint spaced-comment: ["error", "always", { "exceptions": ["-", "+"] }] */

//------++++++++
// Comment block
//------++++++++
Открыть в Playground
/* eslint spaced-comment: ["error", "always", { "exceptions": ["-", "+"] }] */

/*------++++++++*/
/* Comment block */
/*------++++++++*/
Открыть в Playground
/* eslint spaced-comment: ["error", "always", { "line": { "exceptions": ["-+"] } }] */

/*-+-+-+-+-+-+-+*/
// Comment block
/*-+-+-+-+-+-+-+*/
Открыть в Playground
/* eslint spaced-comment: ["error", "always", { "block": { "exceptions": ["*"] } }] */

/******** COMMENT *******/

Примеры правильного кода для этого правила с параметром "always" в сочетании с "exceptions":

Открыть в Playground
/* eslint spaced-comment: ["error", "always", { "exceptions": ["-"] }] */

//--------------
// Comment block
//--------------
Открыть в Playground
/* eslint spaced-comment: ["error", "always", { "line": { "exceptions": ["-"] } }] */

//--------------
// Comment block
//--------------
Открыть в Playground
/* eslint spaced-comment: ["error", "always", { "exceptions": ["*"] }] */

/****************
 * Comment block
 ****************/
END_OF_DOCUMENT_MARKER
Открыть в Playground
/* eslint spaced-comment: ["error", "always", { "exceptions": ["-+"] }] */

//-+-+-+-+-+-+-+
// Comment block
//-+-+-+-+-+-+-+

/*-+-+-+-+-+-+-+*/
// Comment block
/*-+-+-+-+-+-+-+*/
Открыть в Playground
/* eslint spaced-comment: ["error", "always", { "block": { "exceptions": ["-+"] } }] */

/*-+-+-+-+-+-+-+*/
// Comment block
/*-+-+-+-+-+-+-+*/
Открыть в Playground
/* eslint spaced-comment: ["error", "always", { "block": { "exceptions": ["*"] } }] */

/***************/

/********
COMMENT
*******/

метки

Примеры неправильного кода для этой правила с опцией "always" в сочетании с "markers".

Открыть в Playground
/* eslint spaced-comment: ["error", "always", { "markers": ["/"] }] */

///This is a comment with a marker but without whitespace
Открыть в Playground
/*eslint spaced-comment: ["error", "always", { "block": { "markers": ["!"], "balanced": true } }]*/
/*! This is a comment with a marker but without whitespace at the end*/
Открыть в Playground
/*eslint spaced-comment: ["error", "never", { "block": { "markers": ["!"], "balanced": true } }]*/
/*!This is a comment with a marker but with whitespace at the end */

Примеры правильного кода для этого правила с опцией "always" в сочетании с "markers".

Открыть в Playground
/* eslint spaced-comment: ["error", "always", { "markers": ["/"] }] */

/// This is a comment with a marker
Открыть в Playground
/*eslint spaced-comment: ["error", "never", { "markers": ["!<"] }]*/

//!<This is a line comment with a marker

/*!<this is a block comment with a marker
subsequent lines are ignored
*/
Открыть в Playground
/* eslint spaced-comment: ["error", "always", { "markers": ["global"] }] */

/*global ABC*/

Связанные правила

  • spaced-line-comment

Версия

Это правило было добавлено в ESLint v0.23.0.

Ресурсы

  • Исходный код правила
  • Исходный код тестов

© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/spaced-comment

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API