.gitignore added
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / postcss-less / dist / tokenizer / tokenize-at-rule.js
diff --git a/.config/coc/extensions/node_modules/coc-prettier/node_modules/postcss-less/dist/tokenizer/tokenize-at-rule.js b/.config/coc/extensions/node_modules/coc-prettier/node_modules/postcss-less/dist/tokenizer/tokenize-at-rule.js
new file mode 100644 (file)
index 0000000..ad4b4c3
--- /dev/null
@@ -0,0 +1,73 @@
+'use strict';
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = tokenizeAtRule;
+
+var _globals = require('./globals');
+
+var _unclosed = require('./unclosed');
+
+var _unclosed2 = _interopRequireDefault(_unclosed);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function tokenizeAtRule(state) {
+  // it's an interpolation
+  if (state.css.charCodeAt(state.pos + 1) === _globals.openedCurlyBracket) {
+    state.nextPos = state.css.indexOf('}', state.pos + 2);
+
+    if (state.nextPos === -1) {
+      (0, _unclosed2.default)(state, 'interpolation');
+    }
+
+    state.cssPart = state.css.slice(state.pos, state.nextPos + 1);
+    state.lines = state.cssPart.split('\n');
+    state.lastLine = state.lines.length - 1;
+
+    if (state.lastLine > 0) {
+      state.nextLine = state.line + state.lastLine;
+      state.nextOffset = state.nextPos - state.lines[state.lastLine].length;
+    } else {
+      state.nextLine = state.line;
+      state.nextOffset = state.offset;
+    }
+
+    state.tokens.push(['word', state.cssPart, state.line, state.pos - state.offset, state.nextLine, state.nextPos - state.nextOffset]);
+
+    state.offset = state.nextOffset;
+    state.line = state.nextLine;
+  } else {
+    _globals.atEndPattern.lastIndex = state.pos + 1;
+    _globals.atEndPattern.test(state.css);
+
+    if (_globals.atEndPattern.lastIndex === 0) {
+      state.nextPos = state.css.length - 1;
+    } else {
+      state.nextPos = _globals.atEndPattern.lastIndex - 2;
+    }
+
+    state.cssPart = state.css.slice(state.pos, state.nextPos + 1);
+    state.token = 'at-word';
+
+    // check if it's a variable
+    if (_globals.variablePattern.test(state.cssPart)) {
+      _globals.wordEndPattern.lastIndex = state.pos + 1;
+      _globals.wordEndPattern.test(state.css);
+      if (_globals.wordEndPattern.lastIndex === 0) {
+        state.nextPos = state.css.length - 1;
+      } else {
+        state.nextPos = _globals.wordEndPattern.lastIndex - 2;
+      }
+
+      state.cssPart = state.css.slice(state.pos, state.nextPos + 1);
+      state.token = 'word';
+    }
+
+    state.tokens.push([state.token, state.cssPart, state.line, state.pos - state.offset, state.line, state.nextPos - state.offset]);
+  }
+
+  state.pos = state.nextPos;
+}
+module.exports = exports['default'];
\ No newline at end of file