.gitignore added
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / stylelint / lib / utils / functionArgumentsSearch.js
diff --git a/.config/coc/extensions/node_modules/coc-prettier/node_modules/stylelint/lib/utils/functionArgumentsSearch.js b/.config/coc/extensions/node_modules/coc-prettier/node_modules/stylelint/lib/utils/functionArgumentsSearch.js
new file mode 100644 (file)
index 0000000..6c120f3
--- /dev/null
@@ -0,0 +1,40 @@
+/* @flow */
+"use strict";
+
+const balancedMatch = require("balanced-match");
+const styleSearch = require("style-search");
+
+/**
+ * Search a CSS string for functions by name.
+ * For every match, invoke the callback, passing the function's
+ * "argument(s) string" (whatever is inside the parentheses)
+ * as an argument.
+ *
+ * Callback will be called once for every matching function found,
+ * with the function's "argument(s) string" and its starting index
+ * as the arguments.
+ */
+module.exports = function(
+  source /*: string*/,
+  functionName /*: string*/,
+  callback /*: Function*/
+) {
+  styleSearch(
+    {
+      source,
+      target: functionName,
+      functionNames: "check"
+    },
+    match => {
+      if (source[match.endIndex] !== "(") {
+        return;
+      }
+      const parensMatch = balancedMatch(
+        "(",
+        ")",
+        source.substr(match.startIndex)
+      );
+      callback(parensMatch.body, match.endIndex + 1);
+    }
+  );
+};