From 6a07b6af6b294f87f2cc06a41f88738d6b7961dc Mon Sep 17 00:00:00 2001 From: Naman Kumar Date: Mon, 18 May 2020 11:05:54 +0530 Subject: [PATCH] block-string: print multi line for trailing backslash --- src/language/__tests__/.blockString-test.js.swp | Bin 0 -> 16384 bytes src/language/__tests__/blockString-test.js | 7 +++++++ src/language/blockString.js | 6 +++++- 3 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 src/language/__tests__/.blockString-test.js.swp diff --git a/src/language/__tests__/.blockString-test.js.swp b/src/language/__tests__/.blockString-test.js.swp new file mode 100644 index 0000000000000000000000000000000000000000..bbad20578d107cd2b79f23d25a1e880c8a4afead GIT binary patch literal 16384 zcmeI3O^g&p6vqoxzL5nJ_Fy!{f|(iInOPt~5eh|!}5Pac36nZ5n_l$)sz0WBc6ZoWAR1DW{I;jN zt6$ao*Q=_2y*<^jpeI)0PSGgK}t9u?NO z?>CFj27YnJ?vm?U!p&Uyx-wXP!4I0{M(A7RMj+agC*9&ySPlcL>UMF(K_x zh7%LzDy%f0lY!$kigc_r6=qDD9ixCzU@;1GWWBg&J=?W&#~2mgIdhqkvJsC}0#Y3K#{90!9I&fKk9G@IO>Q)EIkuEn`;!{r^A7??2zb*sI`0a009a zKi<#SHE&a?K)n~_N0)G?Nzr>v-}`HGu#=j8WJigyau0kyjSn;}ATD_cG|%x@)9H#j6Ud8M-2z*TbFLB?0*wwuOZX?HWHN+>XshPIi2WJqk>(0hMB1 zlt+Dp?v;07+ZnYMarFQqy0)m1hRRniyc#DblYw|=)Qt2?#o&!9MUc<@?|gI14s|^T_!> z0Plk;7zew-HZTPKM*e>T&@+KA!DrwC_z*k_9s%3HjWvv&1DnAR*Z_WA&DcfoF*pZ0 zpaKqp?O-EV1Fo&YGYilLQ=krP@EBMLuB>G2Tks8d2b=)IU?Ug;zpP;FJ#Y-H01W(d zAAAKN*b1)R%h>neJMbT#rU36R-tqWZJ zpd_A-LN2gQs5w$KO!Ky8hgRTJ?R>6xUDFD&>{1&K$cC*igNM7TbpEBBz}2*ZWo*DkRAg3)=z3buYCiXT$)#x8+-|kyjOwM3<3_{h z!m|91C-v@_vxN8S3e^i0$yJxoAc{UcitbvxGi30l_6F#o$X@^EMPU=I{Sbp!ecbIx zQB|u_ygsENZcU0nSkew|O|w|BDz(p=uj|sK>8A3hrZNFEz*wL*Bt6*Eb6sfyTXq63 z#axs0yQQ|y=DhKuloVQ zC?0qs2*ivgQ+Iw`u#>gYJriX-rZOqdQ?~2+qiPJQPUZNOpj+F51JQ0gJfqzcekTa^ z!iVUGgvXAQcu!JNv#G1KtmHV|mF5F6t-k0pFrymMmZ{t;t&?h1=kX;v*sU;gBGa(! z6{)daQ<|gt6&XSF6RDxJRnZ!lIF-q)aA7o)+M$|Dg^Tfz1SU=c)D#iwJvCY?g5zEq`1Djj%*>Sw2_ssBh{W&!Wd{+7qi%sYJyJ^yJ8Cwf#WyGsraNTWv=9 zf=lFRl$2=e6QAX39?F$U`fuNn&*;@exydL7R$9L0NW`&G { ); }); + 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.