Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/fourtyone11/origin-hugo-theme.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'assets/node_modules/stylelint/lib/rules/max-line-length/index.js')
-rw-r--r--assets/node_modules/stylelint/lib/rules/max-line-length/index.js187
1 files changed, 0 insertions, 187 deletions
diff --git a/assets/node_modules/stylelint/lib/rules/max-line-length/index.js b/assets/node_modules/stylelint/lib/rules/max-line-length/index.js
deleted file mode 100644
index fc8312d..0000000
--- a/assets/node_modules/stylelint/lib/rules/max-line-length/index.js
+++ /dev/null
@@ -1,187 +0,0 @@
-'use strict';
-
-const _ = require('lodash');
-const execall = require('execall');
-const optionsMatches = require('../../utils/optionsMatches');
-const report = require('../../utils/report');
-const ruleMessages = require('../../utils/ruleMessages');
-const styleSearch = require('style-search');
-const validateOptions = require('../../utils/validateOptions');
-
-const ruleName = 'max-line-length';
-const EXCLUDED_PATTERNS = [
- /url\(\s*([^\s].*[^\s])\s*\)/gi, // allow tab, whitespace in url content
- /@import\s+(['"].*['"])/gi,
-];
-
-const messages = ruleMessages(ruleName, {
- expected: (max) =>
- `Expected line length to be no more than ${max} ${max === 1 ? 'character' : 'characters'}`,
-});
-
-function rule(maxLength, options, context) {
- return (root, result) => {
- const validOptions = validateOptions(
- result,
- ruleName,
- {
- actual: maxLength,
- possible: _.isNumber,
- },
- {
- actual: options,
- possible: {
- ignore: ['non-comments', 'comments'],
- ignorePattern: [_.isString, _.isRegExp],
- },
- optional: true,
- },
- );
-
- if (!validOptions) {
- return;
- }
-
- const ignoreNonComments = optionsMatches(options, 'ignore', 'non-comments');
- const ignoreComments = optionsMatches(options, 'ignore', 'comments');
- const rootString = context.fix ? root.toString() : root.source.input.css;
- // Array of skipped sub strings, i.e `url(...)`, `@import "..."`
- let skippedSubStrings = [];
- let skippedSubStringsIndex = 0;
-
- EXCLUDED_PATTERNS.forEach((pattern) =>
- execall(pattern, rootString).forEach((match) => {
- const startOfSubString =
- match.index + match.match.indexOf(_.get(match, 'subMatches[0]', ''));
-
- return skippedSubStrings.push([
- startOfSubString,
- startOfSubString + _.get(match, 'subMatches[0].length', 0),
- ]);
- }),
- );
-
- skippedSubStrings = skippedSubStrings.sort((a, b) => a[0] - b[0]);
-
- // Check first line
- checkNewline(rootString, { endIndex: 0 }, root);
- // Check subsequent lines
- styleSearch({ source: rootString, target: ['\n'], comments: 'check' }, (match) =>
- checkNewline(rootString, match, root),
- );
-
- function complain(index, root) {
- report({
- index,
- result,
- ruleName,
- message: messages.expected(maxLength),
- node: root,
- });
- }
-
- function tryToPopSubString(start, end) {
- const [startSubString, endSubString] = skippedSubStrings[skippedSubStringsIndex];
-
- // Excluded substring does not presented in current line
- if (end < startSubString) {
- return 0;
- }
-
- // Compute excluded substring size regarding to current line indexes
- const excluded = Math.min(end, endSubString) - Math.max(start, startSubString);
-
- // Current substring is out of range for next lines
- if (endSubString <= end) {
- skippedSubStringsIndex++;
- }
-
- return excluded;
- }
-
- function checkNewline(rootString, match, root) {
- let nextNewlineIndex = rootString.indexOf('\n', match.endIndex);
-
- if (rootString[nextNewlineIndex - 1] === '\r') {
- nextNewlineIndex -= 1;
- }
-
- // Accommodate last line
- if (nextNewlineIndex === -1) {
- nextNewlineIndex = rootString.length;
- }
-
- const rawLineLength = nextNewlineIndex - match.endIndex;
- const excludedLength = skippedSubStrings[skippedSubStringsIndex]
- ? tryToPopSubString(match.endIndex, nextNewlineIndex)
- : 0;
- const lineText = rootString.slice(match.endIndex, nextNewlineIndex);
-
- // Case sensitive ignorePattern match
- if (optionsMatches(options, 'ignorePattern', lineText)) {
- return;
- }
-
- // If the line's length is less than or equal to the specified
- // max, ignore it ... So anything below is liable to be complained about.
- // **Note that the length of any url arguments or import urls
- // are excluded from the calculation.**
- if (rawLineLength - excludedLength <= maxLength) {
- return;
- }
-
- const complaintIndex = nextNewlineIndex - 1;
-
- if (ignoreComments) {
- if (match.insideComment) {
- return;
- }
-
- // This trimming business is to notice when the line starts a
- // comment but that comment is indented, e.g.
- // /* something here */
- const nextTwoChars = rootString
- .slice(match.endIndex)
- .trim()
- .slice(0, 2);
-
- if (nextTwoChars === '/*' || nextTwoChars === '//') {
- return;
- }
- }
-
- if (ignoreNonComments) {
- if (match.insideComment) {
- return complain(complaintIndex, root);
- }
-
- // This trimming business is to notice when the line starts a
- // comment but that comment is indented, e.g.
- // /* something here */
- const nextTwoChars = rootString
- .slice(match.endIndex)
- .trim()
- .slice(0, 2);
-
- if (nextTwoChars !== '/*' && nextTwoChars !== '//') {
- return;
- }
-
- return complain(complaintIndex, root);
- }
-
- // If there are no spaces besides initial (indent) spaces, ignore it
- const lineString = rootString.slice(match.endIndex, nextNewlineIndex);
-
- if (!lineString.replace(/^\s+/, '').includes(' ')) {
- return;
- }
-
- return complain(complaintIndex, root);
- }
- };
-}
-
-rule.ruleName = ruleName;
-rule.messages = messages;
-module.exports = rule;