Output strings with the minimum amount of escaped quotes (#390)
* Add tests for quotes * Update test snapshots * Output strings with the minimum amount of escaped quotes * Update test snapshots * Move tests/prettier/quotes.js into tests/quotes/strings.js * Update test snapshots
This commit is contained in:
1 parent
e31203f4bf
commit
8ed75acf46
4 files changed
+336
-115
No files matched your search
@@ -29,95 +29,259 @@ function b(object, key) {
|
||||
`;
|
||||
|
||||
exports[`test strings.js 1`] = `
|
||||
"\"abc\"
|
||||
"// Every string will be changed to double quotes, unless we end up with fewer
|
||||
// escaped quotes by using single quotes. (Vice versa if the \"singleQuote\"
|
||||
// option is true).
|
||||
//
|
||||
// Note that even if a string already has the correct enclosing quotes, it is
|
||||
// still processed in order to remove unnecessarily escaped quotes within it,
|
||||
// for consistency.
|
||||
|
||||
// Simple strings.
|
||||
\"abc\"
|
||||
\'abc\'
|
||||
|
||||
// Escape.
|
||||
\'\\0\'
|
||||
|
||||
// Emoji.
|
||||
\'🐶\'
|
||||
|
||||
// Empty string.
|
||||
\"\"
|
||||
\'\'
|
||||
|
||||
// Single double quote.
|
||||
\"\\\"\"
|
||||
\'\"\'
|
||||
|
||||
// Single single quote.
|
||||
\"\'\"
|
||||
\'\\\'\'
|
||||
|
||||
\'\"\'
|
||||
\'\\\"\'
|
||||
\'\\\\\"\'
|
||||
|
||||
\"\'\"
|
||||
// Unnecessary escapes.
|
||||
\"\\\'\"
|
||||
\"\\\\\'\"
|
||||
\'\\\"\'
|
||||
|
||||
\"\'\\\"\"
|
||||
\'\\\'\"\'
|
||||
// One of each.
|
||||
\"\\\"\'\"
|
||||
\'\"\\\'\'
|
||||
|
||||
// One of each with unnecessary escapes.
|
||||
\"\\\"\\\'\"
|
||||
\'\\\"\\\'\'
|
||||
|
||||
// More double quotes than single quotes.
|
||||
\"\\\"\'\\\"\"
|
||||
\'\"\\\'\"\'
|
||||
|
||||
// More single quotes than double quotes.
|
||||
\"\\\"\'\'\"
|
||||
\'\"\\\'\\\'\'
|
||||
|
||||
// Two of each.
|
||||
\"\\\"\\\"\'\'\"
|
||||
\'\"\"\\\'\\\'\'
|
||||
|
||||
// Single backslash.
|
||||
\'\\\\\'
|
||||
\"\\\\\"
|
||||
|
||||
\'\\0\'
|
||||
\'🐶\'
|
||||
// Backslases.
|
||||
\"\\\"\\\\\\\"\\\\\\\\\\\" \'\\\'\\\\\'\\\\\\\'\\\\\\\\\'\"
|
||||
\'\\\'\\\\\\\'\\\\\\\\\\\' \"\\\"\\\\\"\\\\\\\"\\\\\\\\\"\'
|
||||
|
||||
// Somewhat more real-word example.
|
||||
\"He\'s sayin\': \\\"How\'s it goin\'?\\\" Don\'t ask me why.\"
|
||||
\'He\\\'s sayin\\\': \"How\\\'s it goin\\\'?\" Don\\\'t ask me why.\'
|
||||
|
||||
// Somewhat more real-word example 2.
|
||||
\"var backslash = \\\"\\\\\\\", doubleQuote = \'\\\"\';\"
|
||||
\'var backslash = \"\\\\\", doubleQuote = \\\'\"\\\';\'
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Every string will be changed to double quotes, unless we end up with fewer
|
||||
// escaped quotes by using single quotes. (Vice versa if the \"singleQuote\"
|
||||
// option is true).
|
||||
//
|
||||
// Note that even if a string already has the correct enclosing quotes, it is
|
||||
// still processed in order to remove unnecessarily escaped quotes within it,
|
||||
// for consistency.
|
||||
|
||||
// Simple strings.
|
||||
\"abc\";
|
||||
\"abc\";
|
||||
|
||||
\"\'\";
|
||||
|
||||
\'\"\';
|
||||
\'\\\"\';
|
||||
\'\\\\\"\';
|
||||
|
||||
\"\'\";
|
||||
\"\\\'\";
|
||||
\"\\\\\'\";
|
||||
|
||||
\"\'\\\"\";
|
||||
\"\'\\\"\";
|
||||
|
||||
\"\\\\\";
|
||||
\"\\\\\";
|
||||
|
||||
// Escape.
|
||||
\"\\0\";
|
||||
\"🐶\";
|
||||
|
||||
// Emoji.
|
||||
\"🐶\"; // Empty string.
|
||||
\"\";
|
||||
|
||||
\"\"; // Single double quote.
|
||||
\'\"\';
|
||||
|
||||
\'\"\'; // Single single quote.
|
||||
\"\'\";
|
||||
|
||||
\"\'\"; // Unnecessary escapes.
|
||||
\"\'\";
|
||||
|
||||
\'\"\'; // One of each.
|
||||
\"\\\"\'\";
|
||||
|
||||
\"\\\"\'\"; // One of each with unnecessary escapes.
|
||||
\"\\\"\'\";
|
||||
|
||||
\"\\\"\'\"; // More double quotes than single quotes.
|
||||
\'\"\\\'\"\';
|
||||
|
||||
\'\"\\\'\"\'; // More single quotes than double quotes.
|
||||
\"\\\"\'\'\";
|
||||
|
||||
\"\\\"\'\'\"; // Two of each.
|
||||
\"\\\"\\\"\'\'\";
|
||||
|
||||
\"\\\"\\\"\'\'\"; // Single backslash.
|
||||
\"\\\\\";
|
||||
|
||||
\"\\\\\"; // Backslases.
|
||||
\"\\\"\\\\\\\"\\\\\\\\\\\" \'\'\\\\\'\\\\\'\\\\\\\\\'\";
|
||||
|
||||
\'\\\'\\\\\\\'\\\\\\\\\\\' \"\"\\\\\"\\\\\"\\\\\\\\\"\'; // Somewhat more real-word example.
|
||||
\"He\'s sayin\': \\\"How\'s it goin\'?\\\" Don\'t ask me why.\";
|
||||
|
||||
\"He\'s sayin\': \\\"How\'s it goin\'?\\\" Don\'t ask me why.\"; // Somewhat more real-word example 2.
|
||||
\'var backslash = \"\\\\\", doubleQuote = \\\'\"\\\';\';
|
||||
\'var backslash = \"\\\\\", doubleQuote = \\\'\"\\\';\';
|
||||
"
|
||||
`;
|
||||
|
||||
exports[`test strings.js 2`] = `
|
||||
"\"abc\"
|
||||
"// Every string will be changed to double quotes, unless we end up with fewer
|
||||
// escaped quotes by using single quotes. (Vice versa if the \"singleQuote\"
|
||||
// option is true).
|
||||
//
|
||||
// Note that even if a string already has the correct enclosing quotes, it is
|
||||
// still processed in order to remove unnecessarily escaped quotes within it,
|
||||
// for consistency.
|
||||
|
||||
// Simple strings.
|
||||
\"abc\"
|
||||
\'abc\'
|
||||
|
||||
// Escape.
|
||||
\'\\0\'
|
||||
|
||||
// Emoji.
|
||||
\'🐶\'
|
||||
|
||||
// Empty string.
|
||||
\"\"
|
||||
\'\'
|
||||
|
||||
// Single double quote.
|
||||
\"\\\"\"
|
||||
\'\"\'
|
||||
|
||||
// Single single quote.
|
||||
\"\'\"
|
||||
\'\\\'\'
|
||||
|
||||
\'\"\'
|
||||
\'\\\"\'
|
||||
\'\\\\\"\'
|
||||
|
||||
\"\'\"
|
||||
// Unnecessary escapes.
|
||||
\"\\\'\"
|
||||
\"\\\\\'\"
|
||||
\'\\\"\'
|
||||
|
||||
\"\'\\\"\"
|
||||
\'\\\'\"\'
|
||||
// One of each.
|
||||
\"\\\"\'\"
|
||||
\'\"\\\'\'
|
||||
|
||||
// One of each with unnecessary escapes.
|
||||
\"\\\"\\\'\"
|
||||
\'\\\"\\\'\'
|
||||
|
||||
// More double quotes than single quotes.
|
||||
\"\\\"\'\\\"\"
|
||||
\'\"\\\'\"\'
|
||||
|
||||
// More single quotes than double quotes.
|
||||
\"\\\"\'\'\"
|
||||
\'\"\\\'\\\'\'
|
||||
|
||||
// Two of each.
|
||||
\"\\\"\\\"\'\'\"
|
||||
\'\"\"\\\'\\\'\'
|
||||
|
||||
// Single backslash.
|
||||
\'\\\\\'
|
||||
\"\\\\\"
|
||||
|
||||
\'\\0\'
|
||||
\'🐶\'
|
||||
// Backslases.
|
||||
\"\\\"\\\\\\\"\\\\\\\\\\\" \'\\\'\\\\\'\\\\\\\'\\\\\\\\\'\"
|
||||
\'\\\'\\\\\\\'\\\\\\\\\\\' \"\\\"\\\\\"\\\\\\\"\\\\\\\\\"\'
|
||||
|
||||
// Somewhat more real-word example.
|
||||
\"He\'s sayin\': \\\"How\'s it goin\'?\\\" Don\'t ask me why.\"
|
||||
\'He\\\'s sayin\\\': \"How\\\'s it goin\\\'?\" Don\\\'t ask me why.\'
|
||||
|
||||
// Somewhat more real-word example 2.
|
||||
\"var backslash = \\\"\\\\\\\", doubleQuote = \'\\\"\';\"
|
||||
\'var backslash = \"\\\\\", doubleQuote = \\\'\"\\\';\'
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Every string will be changed to double quotes, unless we end up with fewer
|
||||
// escaped quotes by using single quotes. (Vice versa if the \"singleQuote\"
|
||||
// option is true).
|
||||
//
|
||||
// Note that even if a string already has the correct enclosing quotes, it is
|
||||
// still processed in order to remove unnecessarily escaped quotes within it,
|
||||
// for consistency.
|
||||
|
||||
// Simple strings.
|
||||
\'abc\';
|
||||
\'abc\';
|
||||
|
||||
\"\'\";
|
||||
|
||||
\'\"\';
|
||||
\'\\\"\';
|
||||
\'\\\\\"\';
|
||||
|
||||
\"\'\";
|
||||
\"\\\'\";
|
||||
\"\\\\\'\";
|
||||
|
||||
\'\\\'\"\';
|
||||
\'\\\'\"\';
|
||||
|
||||
\'\\\\\';
|
||||
\'\\\\\';
|
||||
|
||||
// Escape.
|
||||
\'\\0\';
|
||||
\'🐶\';
|
||||
|
||||
// Emoji.
|
||||
\'🐶\'; // Empty string.
|
||||
\'\';
|
||||
|
||||
\'\'; // Single double quote.
|
||||
\'\"\';
|
||||
|
||||
\'\"\'; // Single single quote.
|
||||
\"\'\";
|
||||
|
||||
\"\'\"; // Unnecessary escapes.
|
||||
\"\'\";
|
||||
|
||||
\'\"\'; // One of each.
|
||||
\'\"\\\'\';
|
||||
|
||||
\'\"\\\'\'; // One of each with unnecessary escapes.
|
||||
\'\"\\\'\';
|
||||
|
||||
\'\"\\\'\'; // More double quotes than single quotes.
|
||||
\'\"\\\'\"\';
|
||||
|
||||
\'\"\\\'\"\'; // More single quotes than double quotes.
|
||||
\"\\\"\'\'\";
|
||||
|
||||
\"\\\"\'\'\"; // Two of each.
|
||||
\'\"\"\\\'\\\'\';
|
||||
|
||||
\'\"\"\\\'\\\'\'; // Single backslash.
|
||||
\'\\\\\';
|
||||
|
||||
\'\\\\\'; // Backslases.
|
||||
\"\\\"\\\\\\\"\\\\\\\\\\\" \'\'\\\\\'\\\\\'\\\\\\\\\'\";
|
||||
|
||||
\'\\\'\\\\\\\'\\\\\\\\\\\' \"\"\\\\\"\\\\\"\\\\\\\\\"\'; // Somewhat more real-word example.
|
||||
\"He\'s sayin\': \\\"How\'s it goin\'?\\\" Don\'t ask me why.\";
|
||||
|
||||
\"He\'s sayin\': \\\"How\'s it goin\'?\\\" Don\'t ask me why.\"; // Somewhat more real-word example 2.
|
||||
\'var backslash = \"\\\\\", doubleQuote = \\\'\"\\\';\';
|
||||
\'var backslash = \"\\\\\", doubleQuote = \\\'\"\\\';\';
|
||||
"
|
||||
`;
|
||||
+58
-10
@@ -1,21 +1,69 @@
|
||||
// Every string will be changed to double quotes, unless we end up with fewer
|
||||
// escaped quotes by using single quotes. (Vice versa if the "singleQuote"
|
||||
// option is true).
|
||||
//
|
||||
// Note that even if a string already has the correct enclosing quotes, it is
|
||||
// still processed in order to remove unnecessarily escaped quotes within it,
|
||||
// for consistency.
|
||||
|
||||
// Simple strings.
|
||||
"abc"
|
||||
'abc'
|
||||
|
||||
// Escape.
|
||||
'\0'
|
||||
|
||||
// Emoji.
|
||||
'🐶'
|
||||
|
||||
// Empty string.
|
||||
""
|
||||
''
|
||||
|
||||
// Single double quote.
|
||||
"\""
|
||||
'"'
|
||||
|
||||
// Single single quote.
|
||||
"'"
|
||||
'\''
|
||||
|
||||
'"'
|
||||
'\"'
|
||||
'\\"'
|
||||
|
||||
"'"
|
||||
// Unnecessary escapes.
|
||||
"\'"
|
||||
"\\'"
|
||||
'\"'
|
||||
|
||||
"'\""
|
||||
'\'"'
|
||||
// One of each.
|
||||
"\"'"
|
||||
'"\''
|
||||
|
||||
// One of each with unnecessary escapes.
|
||||
"\"\'"
|
||||
'\"\''
|
||||
|
||||
// More double quotes than single quotes.
|
||||
"\"'\""
|
||||
'"\'"'
|
||||
|
||||
// More single quotes than double quotes.
|
||||
"\"''"
|
||||
'"\'\''
|
||||
|
||||
// Two of each.
|
||||
"\"\"''"
|
||||
'""\'\''
|
||||
|
||||
// Single backslash.
|
||||
'\\'
|
||||
"\\"
|
||||
|
||||
'\0'
|
||||
'🐶'
|
||||
// Backslases.
|
||||
"\"\\\"\\\\\" '\'\\'\\\'\\\\'"
|
||||
'\'\\\'\\\\\' "\"\\"\\\"\\\\"'
|
||||
|
||||
// Somewhat more real-word example.
|
||||
"He's sayin': \"How's it goin'?\" Don't ask me why."
|
||||
'He\'s sayin\': "How\'s it goin\'?" Don\'t ask me why.'
|
||||
|
||||
// Somewhat more real-word example 2.
|
||||
"var backslash = \"\\\", doubleQuote = '\"';"
|
||||
'var backslash = "\\", doubleQuote = \'"\';'
|
||||
@@ -30,10 +30,10 @@ exports[`test strings.js 1`] = `
|
||||
\"abc\",
|
||||
\"\'\",
|
||||
\'\"\',
|
||||
\'\\\"\',
|
||||
\'\"\',
|
||||
\'\\\\\"\',
|
||||
\"\'\",
|
||||
\"\\\'\",
|
||||
\"\'\",
|
||||
\"\\\\\'\",
|
||||
\"\'\\\"\",
|
||||
\"\'\\\"\",
|
||||
|
||||
Reference in new issue
Block a user