@prettier/plugin-pug
Advanced tools
Comparing version 1.0.0-alpha.10 to 1.0.0-alpha.11
# Next | ||
[diff](https://github.com/prettier/plugin-pug/compare/1.0.0-alpha.10...master) | ||
[diff](https://github.com/prettier/plugin-pug/compare/1.0.0-alpha.11...master) | ||
# 1.0.0-alpha.11 | ||
[diff](https://github.com/prettier/plugin-pug/compare/1.0.0-alpha.10...1.0.0-alpha.11) | ||
- Fix preceding div if there is a _normal_ class attribute | ||
- Improve interpolation in text and bindings | ||
- Introduce new option `attributeSeparator` ([#13]) | ||
Possible values: `always` and `as-needed` | ||
[#13]: https://github.com/prettier/plugin-pug/pull/13 | ||
# 1.0.0-alpha.10 | ||
@@ -6,0 +17,0 @@ |
"use strict"; | ||
var __assign = (this && this.__assign) || function () { | ||
__assign = Object.assign || function(t) { | ||
for (var s, i = 1, n = arguments.length; i < n; i++) { | ||
s = arguments[i]; | ||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) | ||
t[p] = s[p]; | ||
} | ||
return t; | ||
}; | ||
return __assign.apply(this, arguments); | ||
}; | ||
exports.__esModule = true; | ||
@@ -6,2 +17,3 @@ var prettier_1 = require("prettier"); | ||
var logger_1 = require("./logger"); | ||
var options_1 = require("./options"); | ||
var makeString = prettier_1.util.makeString; | ||
@@ -61,2 +73,33 @@ var logger = logger_1.createLogger(console); | ||
} | ||
function formatText(text, singleQuote) { | ||
var result = ''; | ||
while (text) { | ||
var start = text.indexOf('{{'); | ||
if (start !== -1) { | ||
result += text.slice(0, start); | ||
text = text.substring(start + 2); | ||
var end = text.indexOf('}}'); | ||
if (end !== -1) { | ||
var code = text.slice(0, end); | ||
code = code.trim(); | ||
code = prettier_1.format(code, { parser: 'babel', singleQuote: !singleQuote, printWidth: 9000 }); | ||
if (code.endsWith(';\n')) { | ||
code = code.slice(0, -2); | ||
} | ||
result += "{{ " + code + " }}"; | ||
text = text.slice(end + 2); | ||
} | ||
else { | ||
result += '{{'; | ||
result += text; | ||
text = ''; | ||
} | ||
} | ||
else { | ||
result += text; | ||
text = ''; | ||
} | ||
} | ||
return result; | ||
} | ||
exports.plugin = { | ||
@@ -104,3 +147,3 @@ languages: [ | ||
print: function (path, _a, print) { | ||
var printWidth = _a.printWidth, singleQuote = _a.singleQuote, tabWidth = _a.tabWidth, useTabs = _a.useTabs; | ||
var printWidth = _a.printWidth, singleQuote = _a.singleQuote, tabWidth = _a.tabWidth, useTabs = _a.useTabs, attributeSeparator = _a.attributeSeparator; | ||
var tokens = path.stack[0]; | ||
@@ -114,2 +157,3 @@ var result = ''; | ||
var pipelessText = false; | ||
var alwaysUseAttributeSeparator = options_1.resolveAttributeSeparatorOption(attributeSeparator); | ||
var startTagPosition = 0; | ||
@@ -119,2 +163,3 @@ var startAttributePosition = 0; | ||
var wrapAttributes = false; | ||
var codeInterpolationOptions = { singleQuote: !singleQuote, printWidth: 9000 }; | ||
for (var index = 0; index < tokens.length; index++) { | ||
@@ -153,11 +198,11 @@ var token = tokens[index]; | ||
break; | ||
case 'attribute': | ||
case 'attribute': { | ||
if (token.name === 'class' && | ||
typeof token.val === 'string' && | ||
(token.val.startsWith('"') || token.val.startsWith("'"))) { | ||
var val_1 = token.val; | ||
val_1 = val_1.substring(1, val_1.length - 1); | ||
val_1 = val_1.trim(); | ||
val_1 = val_1.replace(/\s\s+/g, ' '); | ||
var classes = val_1.split(' '); | ||
var val = token.val; | ||
val = val.substring(1, val.length - 1); | ||
val = val.trim(); | ||
val = val.replace(/\s\s+/g, ' '); | ||
var classes = val.split(' '); | ||
var specialClasses = []; | ||
@@ -171,5 +216,6 @@ var validClassNameRegex = /^-?[_a-zA-Z]+[_a-zA-Z0-9-]*$/; | ||
} | ||
var position_1 = startAttributePosition; | ||
result = [result.slice(0, position_1), "." + className, result.slice(position_1)].join(''); | ||
var position = startAttributePosition; | ||
result = [result.slice(0, position), "." + className, result.slice(position)].join(''); | ||
startAttributePosition += 1 + className.length; | ||
result = result.replace(/div\./, '.'); | ||
} | ||
@@ -188,8 +234,8 @@ if (specialClasses.length > 0) { | ||
(token.val.startsWith('"') || token.val.startsWith("'"))) { | ||
var val_2 = token.val; | ||
val_2 = val_2.substring(1, val_2.length - 1); | ||
val_2 = val_2.trim(); | ||
var position_2 = startTagPosition; | ||
result = [result.slice(0, position_2), "#" + val_2, result.slice(position_2)].join(''); | ||
startAttributePosition += 1 + val_2.length; | ||
var val = token.val; | ||
val = val.substring(1, val.length - 1); | ||
val = val.trim(); | ||
var position = startTagPosition; | ||
result = [result.slice(0, position), "#" + val, result.slice(position)].join(''); | ||
startAttributePosition += 1 + val.length; | ||
result = result.replace(/div#/, '#'); | ||
@@ -205,3 +251,5 @@ if (previousToken.type === 'attribute' && previousToken.name !== 'class') { | ||
(!previousAttributeRemapped || hasNormalPreviousToken)) { | ||
result += ','; | ||
if (alwaysUseAttributeSeparator || /^(\(|\[|:).*/.test(token.name)) { | ||
result += ','; | ||
} | ||
if (!wrapAttributes) { | ||
@@ -223,30 +271,42 @@ result += ' '; | ||
else { | ||
var val_3 = token.val; | ||
if (token.name.startsWith(':') || token.name.startsWith('v-bind:')) { | ||
val_3 = val_3.trim(); | ||
val_3 = val_3.replace(/\s\s+/g, ' '); | ||
val_3 = val_3.replace('[ {', '[{').replace('} ]', '}]'); | ||
val_3 = val_3.replace('[ (', '[(').replace(') ]', ')]'); | ||
val_3 = val_3.replace('[ ', '[').replace(' ]', ']'); | ||
var type = quotationType(val_3); | ||
if ((type === 'SINGLE' && !singleQuote) || (type === 'DOUBLE' && singleQuote)) { | ||
val_3 = val_3.replace(/['"]/g, function (match) { return (match === '"' ? "'" : '"'); }); | ||
} | ||
var val = token.val; | ||
if (/^((v-bind|v-on)?:|v-model|@).*/.test(token.name)) { | ||
val = val.trim(); | ||
val = val.slice(1, -1); | ||
val = prettier_1.format(val, __assign({ parser: '__vue_expression' }, codeInterpolationOptions)); | ||
var quotes = singleQuote ? "'" : '"'; | ||
val = "" + quotes + val + quotes; | ||
} | ||
else if (/^(["']{{)(.*)(}}["'])$/.test(val_3)) { | ||
val_3 = val_3.slice(3, -3); | ||
val_3 = val_3.trim(); | ||
else if (/^(\(.*\)|\[.*\])$/.test(token.name)) { | ||
val = val.trim(); | ||
val = val.slice(1, -1); | ||
val = prettier_1.format(val, __assign({ parser: '__ng_interpolation' }, codeInterpolationOptions)); | ||
var quotes = singleQuote ? "'" : '"'; | ||
val_3 = quotes + "{{ " + val_3 + " }}" + quotes; | ||
val = "" + quotes + val + quotes; | ||
} | ||
else if (/^["'](.*)["']$/.test(val_3)) { | ||
val_3 = makeString(val_3.slice(1, -1), singleQuote ? "'" : '"', false); | ||
else if (/^\*.*$/.test(token.name)) { | ||
val = val.trim(); | ||
val = val.slice(1, -1); | ||
val = prettier_1.format(val, __assign({ parser: '__ng_directive' }, codeInterpolationOptions)); | ||
var quotes = singleQuote ? "'" : '"'; | ||
val = "" + quotes + val + quotes; | ||
} | ||
else if (val_3 === 'true') { | ||
else if (/^(["']{{)(.*)(}}["'])$/.test(val)) { | ||
val = val.slice(3, -3); | ||
val = val.trim(); | ||
val = val.replace(/\s\s+/g, ' '); | ||
var quotes = singleQuote ? "'" : '"'; | ||
val = quotes + "{{ " + val + " }}" + quotes; | ||
} | ||
else if (/^["'](.*)["']$/.test(val)) { | ||
val = makeString(val.slice(1, -1), singleQuote ? "'" : '"', false); | ||
} | ||
else if (val === 'true') { | ||
break; | ||
} | ||
else { | ||
val_3 = val_3.trim().replace(/\s\s+/g, ' '); | ||
if (val_3.startsWith('{ ')) { | ||
val_3 = "{" + val_3.substring(2, val_3.length); | ||
val = val.trim(); | ||
val = val.replace(/\s\s+/g, ' '); | ||
if (val.startsWith('{ ')) { | ||
val = "{" + val.substring(2, val.length); | ||
} | ||
@@ -257,5 +317,6 @@ } | ||
} | ||
result += "=" + val_3; | ||
result += "=" + val; | ||
} | ||
break; | ||
} | ||
case 'end-attributes': | ||
@@ -314,3 +375,3 @@ if (wrapAttributes) { | ||
break; | ||
case 'text': | ||
case 'text': { | ||
var val = token.val; | ||
@@ -359,11 +420,3 @@ val = val.replace(/\s\s+/g, ' '); | ||
val = val.trim(); | ||
if (val.startsWith('{{') && val.endsWith('}}')) { | ||
var code = val.substring(2, val.length - 2); | ||
code = code.trim(); | ||
code = prettier_1.format(code, { parser: 'babel', singleQuote: !singleQuote, printWidth: 9000 }); | ||
if (code.endsWith(';\n')) { | ||
code = code.slice(0, -2); | ||
} | ||
val = "{{ " + code + " }}"; | ||
} | ||
val = formatText(val, singleQuote); | ||
if (previousToken && (previousToken.type === 'tag' || previousToken.type === 'id')) { | ||
@@ -377,2 +430,3 @@ val = " " + val; | ||
break; | ||
} | ||
case 'interpolated-code': | ||
@@ -389,3 +443,3 @@ if (previousToken && previousToken.type === 'tag') { | ||
break; | ||
case 'id': | ||
case 'id': { | ||
var lastPositionOfNewline = result.lastIndexOf('\n'); | ||
@@ -413,2 +467,3 @@ if (lastPositionOfNewline === -1) { | ||
break; | ||
} | ||
case 'start-pipeless-text': | ||
@@ -460,22 +515,24 @@ pipelessText = true; | ||
break; | ||
case 'call': | ||
case 'call': { | ||
result = printIndent(previousToken, result, indent, indentLevel); | ||
result += "+" + token.val; | ||
var callArgs = token.args; | ||
if (callArgs) { | ||
callArgs = callArgs.trim(); | ||
callArgs = callArgs.replace(/\s\s+/g, ' '); | ||
result += "(" + callArgs + ")"; | ||
var args = token.args; | ||
if (args) { | ||
args = args.trim(); | ||
args = args.replace(/\s\s+/g, ' '); | ||
result += "(" + args + ")"; | ||
} | ||
break; | ||
case 'mixin': | ||
} | ||
case 'mixin': { | ||
result = printIndent(previousToken, result, indent, indentLevel); | ||
result += "mixin " + token.val; | ||
var mixinArgs = token.args; | ||
if (mixinArgs) { | ||
mixinArgs = mixinArgs.trim(); | ||
mixinArgs = mixinArgs.replace(/\s\s+/g, ' '); | ||
result += "(" + mixinArgs + ")"; | ||
var args = token.args; | ||
if (args) { | ||
args = args.trim(); | ||
args = args.replace(/\s\s+/g, ' '); | ||
result += "(" + args + ")"; | ||
} | ||
break; | ||
} | ||
case 'if': | ||
@@ -493,2 +550,5 @@ result = printIndent(previousToken, result, indent, indentLevel); | ||
break; | ||
case '&attributes': | ||
result += "&attributes(" + token.val + ")"; | ||
break; | ||
default: | ||
@@ -509,3 +569,3 @@ throw new Error('Unhandled token: ' + JSON.stringify(token)); | ||
}, | ||
options: [], | ||
options: options_1.options, | ||
defaultOptions: {} | ||
@@ -518,2 +578,2 @@ }; | ||
exports.defaultOptions = exports.plugin.defaultOptions; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxxQ0FBb0c7QUFFcEcsK0JBQWlDO0FBQ2pDLG1DQUEwRDtBQUdsRCxJQUFBLHVDQUFVLENBQVU7QUFFNUIsSUFBTSxNQUFNLEdBQVcscUJBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM3QyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxLQUFLLE1BQU0sRUFBRTtJQUNwQyxNQUFNLENBQUMsV0FBVyxDQUFDLGlCQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7Q0FDbkM7QUFJRCxTQUFTLGFBQWEsQ0FBQyxJQUFZO0lBQ2xDLElBQU0sa0JBQWtCLEdBQVcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyRCxJQUFNLGtCQUFrQixHQUFXLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckQsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksTUFBQSxFQUFFLGtCQUFrQixvQkFBQSxFQUFFLGtCQUFrQixvQkFBQSxFQUFFLENBQUMsQ0FBQztJQUMvRCxJQUFJLGtCQUFrQixLQUFLLENBQUMsQ0FBQyxJQUFJLGtCQUFrQixLQUFLLENBQUMsQ0FBQyxFQUFFO1FBQzNELE9BQU8sU0FBUyxDQUFDO0tBQ2pCO1NBQU0sSUFBSSxrQkFBa0IsS0FBSyxDQUFDLENBQUMsSUFBSSxrQkFBa0IsS0FBSyxDQUFDLENBQUMsRUFBRTtRQUNsRSxPQUFPLFFBQVEsQ0FBQztLQUNoQjtTQUFNLElBQUksa0JBQWtCLEtBQUssQ0FBQyxDQUFDLElBQUksa0JBQWtCLEtBQUssQ0FBQyxDQUFDLEVBQUU7UUFDbEUsT0FBTyxRQUFRLENBQUM7S0FDaEI7U0FBTSxJQUFJLGtCQUFrQixHQUFHLGtCQUFrQixFQUFFO1FBQ25ELE9BQU8sUUFBUSxDQUFDO0tBQ2hCO1NBQU0sSUFBSSxrQkFB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 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBLHFDQUFvRztBQUVwRywrQkFBaUM7QUFDakMsbUNBQTBEO0FBQzFELHFDQUFxRztBQUc3RixJQUFBLHVDQUFVLENBQVU7QUFFNUIsSUFBTSxNQUFNLEdBQVcscUJBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM3QyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxLQUFLLE1BQU0sRUFBRTtJQUNwQyxNQUFNLENBQUMsV0FBVyxDQUFDLGlCQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7Q0FDbkM7QUFJRCxTQUFTLGFBQWEsQ0FBQyxJQUFZO0lBQ2xDLElBQU0sa0JBQWtCLEdBQVcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyRCxJQUFNLGtCQUFrQixHQUFXLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckQsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksTUFBQSxFQUFFLGtCQUFrQixvQkFBQSxFQUFFLGtCQUFrQixvQkFBQSxFQUFFLENBQUMsQ0FBQztJQUMvRCxJQUFJLGtCQUFrQixLQUFLLENBQUMsQ0FBQyxJQUFJLGtCQUFrQixLQUFLLENBQUMsQ0FBQyxFQUFFO1FBQzNELE9BQU8sU0FBUyxDQUFDO0tBQ2pCO1NBQU0sSUFBSSxrQkFBa0IsS0FBSyxDQUFDLENBQUMsSUFBSSxrQkFBa0IsS0FBSyxDQUFDLENBQUMsRUFBRTtRQUNsRSxPQUFPLFFBQVEsQ0FBQztLQUNoQjtTQUFNLElBQUksa0JBQWtCLEtBQUssQ0FBQyxDQUFDLElBQUksa0JBQWtCLEtBQUssQ0FBQyxDQUFDLEVBQUU7UUFDbEUsT0FBTyxRQUFRLENBQUM7S0FDaEI7U0FBTSxJQUFJLGtCQUFrQixHQUFHLGtCQUFrQixFQUFFO1FBQ25ELE9BQU8sUUFBUSxD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 |
{ | ||
"name": "@prettier/plugin-pug", | ||
"version": "1.0.0-alpha.10", | ||
"version": "1.0.0-alpha.11", | ||
"description": "Prettier Pug Plugin", | ||
@@ -33,3 +33,3 @@ "main": "dist/index.js", | ||
"@types/jest": "~24.0.15", | ||
"@types/node": "~12.6.2", | ||
"@types/node": "~12.6.6", | ||
"@types/prettier": "~1.16.4", | ||
@@ -36,0 +36,0 @@ "@typescript-eslint/eslint-plugin": "~1.12.0", |
141
src/index.ts
@@ -5,2 +5,3 @@ import { AST, Doc, FastPath, format, Options, Parser, ParserOptions, Plugin, util } from 'prettier'; | ||
import { createLogger, Logger, LogLevel } from './logger'; | ||
import { options as pugOptions, PugParserOptions, resolveAttributeSeparatorOption } from './options'; | ||
import { AttributeToken, EndAttributesToken, Token } from './pug-token'; | ||
@@ -65,2 +66,32 @@ | ||
function formatText(text: string, singleQuote: boolean): string { | ||
let result: string = ''; | ||
while (text) { | ||
const start = text.indexOf('{{'); | ||
if (start !== -1) { | ||
result += text.slice(0, start); | ||
text = text.substring(start + 2); | ||
const end = text.indexOf('}}'); | ||
if (end !== -1) { | ||
let code = text.slice(0, end); | ||
code = code.trim(); | ||
code = format(code, { parser: 'babel', singleQuote: !singleQuote, printWidth: 9000 }); | ||
if (code.endsWith(';\n')) { | ||
code = code.slice(0, -2); | ||
} | ||
result += `{{ ${code} }}`; | ||
text = text.slice(end + 2); | ||
} else { | ||
result += '{{'; | ||
result += text; | ||
text = ''; | ||
} | ||
} else { | ||
result += text; | ||
text = ''; | ||
} | ||
} | ||
return result; | ||
} | ||
export const plugin: Plugin = { | ||
@@ -112,3 +143,3 @@ languages: [ | ||
path: FastPath, | ||
{ printWidth, singleQuote, tabWidth, useTabs }: ParserOptions, | ||
{ printWidth, singleQuote, tabWidth, useTabs, attributeSeparator }: ParserOptions & PugParserOptions, | ||
print: (path: FastPath) => Doc | ||
@@ -126,2 +157,4 @@ ): Doc { | ||
const alwaysUseAttributeSeparator: boolean = resolveAttributeSeparatorOption(attributeSeparator); | ||
let startTagPosition: number = 0; | ||
@@ -132,2 +165,4 @@ let startAttributePosition: number = 0; | ||
const codeInterpolationOptions = { singleQuote: !singleQuote, printWidth: 9000 }; | ||
for (let index: number = 0; index < tokens.length; index++) { | ||
@@ -166,3 +201,3 @@ const token: Token = tokens[index]; | ||
break; | ||
case 'attribute': | ||
case 'attribute': { | ||
if ( | ||
@@ -192,2 +227,3 @@ token.name === 'class' && | ||
startAttributePosition += 1 + className.length; | ||
result = result.replace(/div\./, '.'); | ||
} | ||
@@ -230,3 +266,5 @@ if (specialClasses.length > 0) { | ||
) { | ||
result += ','; | ||
if (alwaysUseAttributeSeparator || /^(\(|\[|:).*/.test(token.name)) { | ||
result += ','; | ||
} | ||
if (!wrapAttributes) { | ||
@@ -250,19 +288,38 @@ result += ' '; | ||
let val = token.val; | ||
if (token.name.startsWith(':') || token.name.startsWith('v-bind:')) { | ||
// Format Vue v-bind | ||
// Expect js-code | ||
if (/^((v-bind|v-on)?:|v-model|@).*/.test(token.name)) { | ||
// Format Vue expression | ||
val = val.trim(); | ||
val = val.replace(/\s\s+/g, ' '); | ||
val = val.replace('[ {', '[{').replace('} ]', '}]'); | ||
val = val.replace('[ (', '[(').replace(') ]', ')]'); | ||
val = val.replace('[ ', '[').replace(' ]', ']'); | ||
const type: QuotationType | undefined = quotationType(val); | ||
if ((type === 'SINGLE' && !singleQuote) || (type === 'DOUBLE' && singleQuote)) { | ||
// Swap single and double quotes | ||
val = val.replace(/['"]/g, (match) => (match === '"' ? "'" : '"')); | ||
} | ||
val = val.slice(1, -1); | ||
val = format(val, { | ||
parser: '__vue_expression' as any, | ||
...codeInterpolationOptions | ||
}); | ||
const quotes: "'" | '"' = singleQuote ? "'" : '"'; | ||
val = `${quotes}${val}${quotes}`; | ||
} else if (/^(\(.*\)|\[.*\])$/.test(token.name)) { | ||
// Format Angular action or binding | ||
val = val.trim(); | ||
val = val.slice(1, -1); | ||
val = format(val, { | ||
parser: '__ng_interpolation' as any, | ||
...codeInterpolationOptions | ||
}); | ||
const quotes: "'" | '"' = singleQuote ? "'" : '"'; | ||
val = `${quotes}${val}${quotes}`; | ||
} else if (/^\*.*$/.test(token.name)) { | ||
// Format Angular directive | ||
val = val.trim(); | ||
val = val.slice(1, -1); | ||
val = format(val, { parser: '__ng_directive' as any, ...codeInterpolationOptions }); | ||
const quotes: "'" | '"' = singleQuote ? "'" : '"'; | ||
val = `${quotes}${val}${quotes}`; | ||
} else if (/^(["']{{)(.*)(}}["'])$/.test(val)) { | ||
// Format Angular code | ||
// Format Angular interpolation | ||
val = val.slice(3, -3); | ||
val = val.trim(); | ||
val = val.replace(/\s\s+/g, ' '); | ||
// val = format(val, { | ||
// parser: '__ng_interpolation' as any, | ||
// ...codeInterpolationOptions | ||
// }); | ||
const quotes: "'" | '"' = singleQuote ? "'" : '"'; | ||
@@ -277,3 +334,4 @@ val = `${quotes}{{ ${val} }}${quotes}`; | ||
// The value is not quoted and may be js-code | ||
val = val.trim().replace(/\s\s+/g, ' '); | ||
val = val.trim(); | ||
val = val.replace(/\s\s+/g, ' '); | ||
if (val.startsWith('{ ')) { | ||
@@ -291,2 +349,3 @@ val = `{${val.substring(2, val.length)}`; | ||
break; | ||
} | ||
case 'end-attributes': | ||
@@ -349,3 +408,3 @@ if (wrapAttributes) { | ||
break; | ||
case 'text': | ||
case 'text': { | ||
let val = token.val; | ||
@@ -393,12 +452,3 @@ val = val.replace(/\s\s+/g, ' '); | ||
val = val.trim(); | ||
if (val.startsWith('{{') && val.endsWith('}}')) { | ||
// Format mustache code like in Vue | ||
let code: string = val.substring(2, val.length - 2); | ||
code = code.trim(); | ||
code = format(code, { parser: 'babel', singleQuote: !singleQuote, printWidth: 9000 }); | ||
if (code.endsWith(';\n')) { | ||
code = code.slice(0, -2); | ||
} | ||
val = `{{ ${code} }}`; | ||
} | ||
val = formatText(val, singleQuote); | ||
if (previousToken && (previousToken.type === 'tag' || previousToken.type === 'id')) { | ||
@@ -412,2 +462,3 @@ val = ` ${val}`; | ||
break; | ||
} | ||
case 'interpolated-code': | ||
@@ -424,3 +475,3 @@ if (previousToken && previousToken.type === 'tag') { | ||
break; | ||
case 'id': | ||
case 'id': { | ||
// Handle id attribute | ||
@@ -453,2 +504,3 @@ // Write css-id in front of css-classes | ||
break; | ||
} | ||
case 'start-pipeless-text': | ||
@@ -501,22 +553,24 @@ pipelessText = true; | ||
break; | ||
case 'call': | ||
case 'call': { | ||
result = printIndent(previousToken, result, indent, indentLevel); | ||
result += `+${token.val}`; | ||
let callArgs: string | null = token.args; | ||
if (callArgs) { | ||
callArgs = callArgs.trim(); | ||
callArgs = callArgs.replace(/\s\s+/g, ' '); | ||
result += `(${callArgs})`; | ||
let args: string | null = token.args; | ||
if (args) { | ||
args = args.trim(); | ||
args = args.replace(/\s\s+/g, ' '); | ||
result += `(${args})`; | ||
} | ||
break; | ||
case 'mixin': | ||
} | ||
case 'mixin': { | ||
result = printIndent(previousToken, result, indent, indentLevel); | ||
result += `mixin ${token.val}`; | ||
let mixinArgs: string | null = token.args; | ||
if (mixinArgs) { | ||
mixinArgs = mixinArgs.trim(); | ||
mixinArgs = mixinArgs.replace(/\s\s+/g, ' '); | ||
result += `(${mixinArgs})`; | ||
let args: string | null = token.args; | ||
if (args) { | ||
args = args.trim(); | ||
args = args.replace(/\s\s+/g, ' '); | ||
result += `(${args})`; | ||
} | ||
break; | ||
} | ||
case 'if': | ||
@@ -534,2 +588,5 @@ result = printIndent(previousToken, result, indent, indentLevel); | ||
break; | ||
case '&attributes': | ||
result += `&attributes(${token.val})`; | ||
break; | ||
default: | ||
@@ -557,3 +614,3 @@ throw new Error('Unhandled token: ' + JSON.stringify(token)); | ||
}, | ||
options: [], | ||
options: pugOptions as any, | ||
defaultOptions: {} | ||
@@ -560,0 +617,0 @@ }; |
@@ -183,2 +183,8 @@ export interface Loc { | ||
export interface AndAttributesToken { | ||
type: '&attributes'; | ||
loc: Loc; | ||
val: string; | ||
} | ||
export type Token = | ||
@@ -214,2 +220,3 @@ | TagToken | ||
| MixinBlockToken | ||
| ElseToken; | ||
| ElseToken | ||
| AndAttributesToken; |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
96654
13
1545