Actualizacion maquina principal
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / postcss-html / lib / get-syntax.js
diff --git a/.config/coc/extensions/node_modules/coc-prettier/node_modules/postcss-html/lib/get-syntax.js b/.config/coc/extensions/node_modules/coc-prettier/node_modules/postcss-html/lib/get-syntax.js
new file mode 100644 (file)
index 0000000..0431d9c
--- /dev/null
@@ -0,0 +1,54 @@
+"use strict";
+
+const cssSyntax = require("./css-syntax");
+const extname = {
+       styl: "stylus",
+       sss: "sugarss",
+};
+
+function defaultConfig (opts, lang) {
+       let syntax;
+       if (lang === "scss" || lang === "sass" || lang === "less") {
+               syntax = require("postcss-" + lang);
+       } else if (lang === "sugarss") {
+               syntax = require("sugarss");
+       } else {
+               syntax = cssSyntax(opts);
+       }
+       return syntax;
+}
+
+function getSyntax (opts, lang) {
+       if (!lang) {
+               lang = opts.from && /\.(\w+)(?:\?.+)?$/.exec(opts.from);
+               if (lang) {
+                       lang = lang[1].toLowerCase();
+                       lang = extname[lang] || lang;
+               } else {
+                       lang = "css";
+               }
+       }
+
+       let config = opts.syntax.config;
+
+       if (!config) {
+               return defaultConfig(opts, lang);
+       }
+
+       if (typeof config === "function") {
+               config = config(opts, lang);
+       }
+
+       if (config) {
+               config = config[lang] || config.css || config;
+               if (typeof config === "string") {
+                       config = require(config);
+               }
+       } else {
+               return defaultConfig(opts, lang);
+       }
+
+       return Object.assign(cssSyntax(opts), config);
+}
+
+module.exports = getSyntax;