Enforces lines (or no lines) between tags.
If you only want lines preceding all tags or after all tags, you can use
the "any" option along with startLines
and/or endLines
.
The "always" or "never" options of this rule should not
be used with the linebreak-setting options of the sort-tags
rule as both
may try to impose a conflicting number of lines.
(TODO)
The first option is a single string set to "always", "never", or "any" (defaults to "never").
"any" is only useful with tags
(allowing non-enforcement of lines except
for particular tags) or with startLines
or endLines
. It is also
necessary if using the linebreak-setting options of the sort-tags
rule
so that the two rules won't conflict in both attempting to set lines
between tags.
The second option is an object with the following optional properties.
Use with "always" to indicate the number of lines to require be present.
Set to false
and use with "always" to indicate the normal lines to be
added after tags should not be added after the final tag.
If not set to null
, will enforce end lines to the given count before the
first tag only, unless there is only whitespace content, in which case,
a line count will not be enforced.
If not set to null
, will enforce end lines to the given count on the
final tag only.
Overrides the default behavior depending on specific tags.
An object whose keys are tag names and whose values are objects with the following keys:
lines
- Set toalways
,never
, orany
to override.count
- Overrides maincount
(for "always")
Context | everywhere |
Tags | Any |
Recommended | true |
Settings | N/A |
Options | string ("always", "any", "never") followed by object with applyToEndTag , count , endLines , startLines , tags |
The following patterns are considered problems:
/**
* Some description
* @param {string} a
* @param {number} b
*/
// "jsdoc/tag-lines": ["error"|"warn", "always"]
// Message: Expected 1 line between tags but found 0
/**
* Some description
* @param {string} a
* @param {number} b
*/
// "jsdoc/tag-lines": ["error"|"warn", "always",{"count":2}]
// Message: Expected 2 lines between tags but found 0
/**
* Some description
* @param {string} a
*
* @param {number} b
*/
// "jsdoc/tag-lines": ["error"|"warn", "always",{"count":2}]
// Message: Expected 2 lines between tags but found 1
/**
* Some description
* @param {string} a
* @param {number} b
*/
// "jsdoc/tag-lines": ["error"|"warn", "always",{"applyToEndTag":false}]
// Message: Expected 1 line between tags but found 0
/**
* Some description
* @param {string} a
*
* @param {number} b
*
*/
// "jsdoc/tag-lines": ["error"|"warn", "never"]
// Message: Expected no lines between tags
/**
* Some description
* @param {string} a
*
* @param {number} b
*
*/
// Message: Expected no lines between tags
/**
* Some description
* @param {string} a
*
* @param {number} b
* @param {number} c
*/
// "jsdoc/tag-lines": ["error"|"warn", "always"]
// Message: Expected 1 line between tags but found 0
/**
* Some description
* @param {string} a
* @param {number} b
*/
// "jsdoc/tag-lines": ["error"|"warn", "never",{"tags":{"param":{"lines":"always"}}}]
// Message: Expected 1 line between tags but found 0
/**
* Some description
* @param {string} a
* @param {number} b
*
*/
// "jsdoc/tag-lines": ["error"|"warn", "always",{"tags":{"param":{"lines":"never"}}}]
// Message: Expected no lines between tags
/**
* Some description
* @param {string} a
*
* @param {number} b
*/
// "jsdoc/tag-lines": ["error"|"warn", "never",{"count":2,"tags":{"param":{"lines":"always"}}}]
// Message: Expected 2 lines between tags but found 1
/**
* Some description
* @param {string} a
*
* @param {number} b
*/
// "jsdoc/tag-lines": ["error"|"warn", "never",{"count":5,"tags":{"param":{"count":2,"lines":"always"}}}]
// Message: Expected 2 lines between tags but found 1
/**
* Some description
* @param {string} a
* @param {number} b
*/
// "jsdoc/tag-lines": ["error"|"warn", "always",{"tags":{"anotherTag":{"lines":"never"}}}]
// Message: Expected 1 line between tags but found 0
/**
* Some description
* @param {string} A broken up
*
* tag description.
* @param {number} b
*
*/
// "jsdoc/tag-lines": ["error"|"warn", "always",{"endLines":null}]
// Message: Expected 1 line between tags but found 0
/**
* Some description
* @param {number} b
*
* @returns {string} A broken up
*
* tag description.
*/
// "jsdoc/tag-lines": ["error"|"warn", "always"]
// Message: Expected 1 line between tags but found 0
/**
* Some description
* @param {string} a
* @param {string} b
*
* @returns {SomeType} An extended
* description.
*
* This is still part of `@returns`.
*
*/
// "jsdoc/tag-lines": ["error"|"warn", "any",{"endLines":0}]
// Message: Expected 0 trailing lines
/**
* Some description
* @param {string} a
* @param {string} b
*
* @returns {SomeType} An extended
* description.
*
* This is still part of `@returns`.
*
*
*
*/
// "jsdoc/tag-lines": ["error"|"warn", "any",{"endLines":1}]
// Message: Expected 1 trailing lines
/**
* Some description
* @param {string} a
* @param {string} b
*
* @returns {SomeType} An extended
* description.
*
* This is still part of `@returns`.
*
*/
// "jsdoc/tag-lines": ["error"|"warn", "any",{"endLines":2}]
// Message: Expected 2 trailing lines
/**
* Some description
*
*
* @param {string} a
*/
// "jsdoc/tag-lines": ["error"|"warn", "any",{"startLines":1}]
// Message: Expected only 1 line after block description
/**
* Some description
*
* @param {string} a
*/
// "jsdoc/tag-lines": ["error"|"warn", "any",{"startLines":0}]
// Message: Expected only 0 line after block description
/**
* Some description
*
* @param {string} a
*/
// "jsdoc/tag-lines": ["error"|"warn", "any",{"startLines":2}]
// Message: Expected 2 lines after block description
/**
* Some description
* @param {string} a
*/
// "jsdoc/tag-lines": ["error"|"warn", "any",{"startLines":1}]
// Message: Expected 1 lines after block description
The following patterns are not considered problems:
/**
* Some description
* @param {string} a
* @param {number} b
*/
/**
* Some description
* @param {string} a
* @param {number} b
*/
// "jsdoc/tag-lines": ["error"|"warn", "never"]
/**
* @param {string} a
*
* @param {string} a
*/
// "jsdoc/tag-lines": ["error"|"warn", "always",{"applyToEndTag":false}]
/**
* @param {string} a
*/
// "jsdoc/tag-lines": ["error"|"warn", "never",{"applyToEndTag":false}]
/** @param {number} b */
// "jsdoc/tag-lines": ["error"|"warn", "never",{"applyToEndTag":false}]
/**
* Some description
* @param {string} a
*
* @param {number} b
*
*/
// "jsdoc/tag-lines": ["error"|"warn", "always",{"endLines":null}]
/**
* Some description
* @param {string} a
*
*
* @param {number} b
*
*
*/
// "jsdoc/tag-lines": ["error"|"warn", "always",{"count":2,"endLines":null}]
/**
* Some description
* @param {string} a
* @param {number} b
*/
// "jsdoc/tag-lines": ["error"|"warn", "never",{"tags":{"param":{"lines":"any"}}}]
/**
* Some description
* @param {string} a
* @param {number} b
*/
// "jsdoc/tag-lines": ["error"|"warn", "always",{"tags":{"param":{"lines":"any"}}}]
/**
* Some description
* @param {string} a
* @param {number} b
*/
// "jsdoc/tag-lines": ["error"|"warn", "always",{"tags":{"param":{"lines":"never"}}}]
/**
* Some description
* @param {number} a
* @param {number} b
*/
// "jsdoc/tag-lines": ["error"|"warn", "never",{"tags":{"param":{"lines":"any"}}}]
/**
* Some description
* @param {number} a
*
* @param {number} b
*/
// "jsdoc/tag-lines": ["error"|"warn", "never",{"tags":{"param":{"lines":"any"}}}]
/**
* Some description
* @param {number} a
* @param {number} b
*/
// "jsdoc/tag-lines": ["error"|"warn", "never",{"tags":{"param":{"lines":"never"}}}]
/**
* Some description
* @param {string} a
*
*
* @param {number} b
*
*
*/
// "jsdoc/tag-lines": ["error"|"warn", "never",{"count":5,"tags":{"param":{"count":2,"lines":"always"}}}]
/**
* Some description
* @param {string} a
* @param {number} b
*/
// "jsdoc/tag-lines": ["error"|"warn", "never",{"tags":{"anotherTag":{"lines":"always"}}}]
/**
* Some description
* @param {string} a
*
* This is still part of `@param`.
* @returns {SomeType} An extended
* description.
*/
// "jsdoc/tag-lines": ["error"|"warn", "never"]
/**
* Some description
* @param {string} a
* @returns {SomeType} An extended
* description.
*
* This is still part of `@returns`.
*/
// "jsdoc/tag-lines": ["error"|"warn", "never"]
/**
* Some description
* @param {string} a
*
* This is still part of `@param`.
*
* @returns {SomeType} An extended
* description.
*
*/
// "jsdoc/tag-lines": ["error"|"warn", "always",{"endLines":null}]
/**
* Some description
* @param {string} a
*
* @returns {SomeType} An extended
* description.
*
* This is still part of `@returns`.
*
*/
// "jsdoc/tag-lines": ["error"|"warn", "always",{"endLines":null}]
/**
* Some description
* @param {string} a
* @param {string} b
*
* @returns {SomeType} An extended
* description.
*
* This is still part of `@returns`.
*/
// "jsdoc/tag-lines": ["error"|"warn", "any",{"endLines":0}]
/**
* Some description
*
* @param {string} a
*/
// "jsdoc/tag-lines": ["error"|"warn", "any",{"startLines":1}]
/**
* Some description
* @param {string} a
*
*/
// "jsdoc/tag-lines": ["error"|"warn", "any",{"endLines":1}]
/**
* Some description
*
*
* @param {string} a
*/
// "jsdoc/tag-lines": ["error"|"warn", "never",{"startLines":null}]
/**
* Some description
* @param {string} a
*/
// "jsdoc/tag-lines": ["error"|"warn", "never",{"startLines":null}]
/**
* @param {string} input
*/
function processSass (input) {
}
// "jsdoc/tag-lines": ["error"|"warn", "never",{"startLines":1}]
/**
*
* @param {string} input
*/
function processSass (input) {
}
// "jsdoc/tag-lines": ["error"|"warn", "never",{"startLines":1}]
/**
* Toggles the deselect all icon button action
*/
function updateIconButton () {
}
// "jsdoc/tag-lines": ["error"|"warn", "never",{"startLines":1}]
/** A class. */
class _Foo {
/** @param arg Argument. */
conststructor(arg: string) {
console.log(arg);
}
}
// "jsdoc/tag-lines": ["error"|"warn", "any",{"startLines":1}]