diff --git a/src/language/__tests__/.blockString-test.js.swp b/src/language/__tests__/.blockString-test.js.swp new file mode 100644 index 0000000000..bbad20578d Binary files /dev/null and b/src/language/__tests__/.blockString-test.js.swp differ diff --git a/src/language/__tests__/blockString-test.js b/src/language/__tests__/blockString-test.js index dced428f3a..efd7abbd45 100644 --- a/src/language/__tests__/blockString-test.js +++ b/src/language/__tests__/blockString-test.js @@ -155,6 +155,13 @@ describe('printBlockString', () => { ); }); + it('correctly prints single-line with trailing backslash', () => { + const str = 'backslash \\'; + + expect(printBlockString(str)).to.equal('"""\nbackslash \\\n"""'); + expect(printBlockString(str, '', true)).to.equal('"""\nbackslash \\\n"""'); + }); + it('correctly prints string with a first line indentation', () => { const str = joinLines( ' first ', diff --git a/src/language/blockString.js b/src/language/blockString.js index dba151a125..d8ec8fb49d 100644 --- a/src/language/blockString.js +++ b/src/language/blockString.js @@ -85,8 +85,12 @@ export function printBlockString( const isSingleLine = value.indexOf('\n') === -1; const hasLeadingSpace = value[0] === ' ' || value[0] === '\t'; const hasTrailingQuote = value[value.length - 1] === '"'; + const hasTrailingSlash = value[value.length - 1] === '\\'; const printAsMultipleLines = - !isSingleLine || hasTrailingQuote || preferMultipleLines; + !isSingleLine || + hasTrailingQuote || + hasTrailingSlash || + preferMultipleLines; let result = ''; // Format a multi-line block quote to account for leading space.