From 67878c934c687daf4c62f08c29e2aaa5b2c27b91 Mon Sep 17 00:00:00 2001 From: SaschaNaz Date: Wed, 19 Aug 2015 17:46:01 +0900 Subject: [PATCH 01/23] adding tests for JSX attributes/closing bracket --- tests/cases/fourslash/formattingJsxElements.ts | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/tests/cases/fourslash/formattingJsxElements.ts b/tests/cases/fourslash/formattingJsxElements.ts index d0c77804ed5..3219fb396b9 100644 --- a/tests/cases/fourslash/formattingJsxElements.ts +++ b/tests/cases/fourslash/formattingJsxElements.ts @@ -10,10 +10,24 @@ //// ) ////} //// +////function () { +//// return
/*danglingBraketAutoformat*/ +////
+////} format.document(); goTo.marker("autoformat"); verify.currentLineContentIs(' Hello, World!'); goTo.marker("indent"); -verify.indentationIs(12); \ No newline at end of file +verify.indentationIs(12); + +goTo.marker("attrAutoformat"); +verify.currentLineContentIs(' className="">'); +goTo.marker("attrIndent"); +verify.indentationIs(8); +goTo.marker("danglingBracketAutoformat") +verify.currentLineContentIs(" >"); \ No newline at end of file From 2677b3fa2624c82c56843ac8b1109a3aecfa59ee Mon Sep 17 00:00:00 2001 From: SaschaNaz Date: Sat, 22 Aug 2015 03:37:48 +0900 Subject: [PATCH 02/23] fixing autoformat not working with empty JsxText --- src/services/formatting/formatting.ts | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/services/formatting/formatting.ts b/src/services/formatting/formatting.ts index 66cdbd53750..c508d8696ad 100644 --- a/src/services/formatting/formatting.ts +++ b/src/services/formatting/formatting.ts @@ -360,7 +360,9 @@ namespace ts.formatting { range: TextRange, inheritedIndentation: number): number { - if (rangeOverlapsWithStartEnd(range, startPos, endPos)) { + if (rangeOverlapsWithStartEnd(range, startPos, endPos) || + rangeContainsStartEnd(range, startPos, endPos) /* Not to miss zero-range nodes e.g. JsxText */) { + if (inheritedIndentation !== Constants.Unknown) { return inheritedIndentation; } @@ -387,7 +389,10 @@ namespace ts.formatting { let indentation = inheritedIndentation; if (indentation === Constants.Unknown) { - if (isSomeBlock(node.kind)) { + if (isIndentPreventedChildNode(parent.kind, node.kind)) { + indentation = parentDynamicIndentation.getIndentation(); + } + else if (isSomeBlock(node.kind)) { // blocks should be indented in // - other blocks // - source file @@ -1016,6 +1021,14 @@ namespace ts.formatting { return false; } + function isIndentPreventedChildNode(parent: SyntaxKind, child: SyntaxKind) { + switch (parent) { + case SyntaxKind.JsxElement: { + return child === SyntaxKind.JsxClosingElement; + } + } + } + function getOpenTokenForList(node: Node, list: Node[]) { switch (node.kind) { case SyntaxKind.Constructor: From eae30fd3de440dda52843b48f0929b24cf9a2651 Mon Sep 17 00:00:00 2001 From: SaschaNaz Date: Sat, 22 Aug 2015 03:39:15 +0900 Subject: [PATCH 03/23] adding JSX closing tag/attribute/expression test --- src/services/formatting/smartIndenter.ts | 2 + .../cases/fourslash/formattingJsxElements.ts | 39 ++++++++++++++++--- 2 files changed, 36 insertions(+), 5 deletions(-) diff --git a/src/services/formatting/smartIndenter.ts b/src/services/formatting/smartIndenter.ts index c7f762fea64..30211e0a910 100644 --- a/src/services/formatting/smartIndenter.ts +++ b/src/services/formatting/smartIndenter.ts @@ -429,6 +429,8 @@ namespace ts.formatting { case SyntaxKind.ArrayBindingPattern: case SyntaxKind.ObjectBindingPattern: case SyntaxKind.JsxElement: + case SyntaxKind.JsxOpeningElement: + case SyntaxKind.JsxExpression: return true; } return false; diff --git a/tests/cases/fourslash/formattingJsxElements.ts b/tests/cases/fourslash/formattingJsxElements.ts index 3219fb396b9..3b98e7b5ca4 100644 --- a/tests/cases/fourslash/formattingJsxElements.ts +++ b/tests/cases/fourslash/formattingJsxElements.ts @@ -6,7 +6,7 @@ ////
////Hello, World!/*autoformat*/ /////*indent*/ -////
+//// /*closingTagAutoformat*/ //// ) ////} //// @@ -14,20 +14,49 @@ //// return
/*danglingBraketAutoformat*/ +////id={ +////"abc" + "cde"/*expressionAutoformat*/ +/////*expressionIndent*/ +////} +//// >/*danglingBracketAutoformat*/ ////
////} - +//// +////let h5 =
+/////*childJsxElementAutoformat*/ +/////*childJsxElementIndent*/ +/////*grandchildJsxElementAutoformat*/ +/////*containedClosingTagAutoformat*/ +////
format.document(); goTo.marker("autoformat"); verify.currentLineContentIs(' Hello, World!'); goTo.marker("indent"); verify.indentationIs(12); +goTo.marker("closingTagAutoformat"); +verify.currentLineContentIs(" "); goTo.marker("attrAutoformat"); -verify.currentLineContentIs(' className="">'); +verify.currentLineContentIs(' className=""'); goTo.marker("attrIndent"); verify.indentationIs(8); +goTo.marker("expressionAutoformat"); +verify.currentLineContentIs(' "abc" + "cde"'); +goTo.marker("expressionIndent"); +verify.indentationIs(12); + + goTo.marker("danglingBracketAutoformat") -verify.currentLineContentIs(" >"); \ No newline at end of file +// TODO: verify.currentLineContentIs(" >"); +verify.currentLineContentIs(" >"); + + +goTo.marker("childJsxElementAutoformat"); +verify.currentLineContentIs(" "); +goTo.marker("childJsxElementIndent"); +verify.indentationIs(8); +goTo.marker("grandchildJsxElementAutoformat"); +verify.currentLineContentIs(" "); +goTo.marker("containedClosingTagAutoformat"); +verify.currentLineContentIs(" "); \ No newline at end of file From 060828c8b9b4747a83c89ca22bf8f2fd4695162f Mon Sep 17 00:00:00 2001 From: SaschaNaz Date: Sat, 22 Aug 2015 21:35:58 +0900 Subject: [PATCH 04/23] partially move getIndentationToken into new function --- src/services/formatting/formatting.ts | 42 +++++++++++++-------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/src/services/formatting/formatting.ts b/src/services/formatting/formatting.ts index c508d8696ad..0b1d08e8b05 100644 --- a/src/services/formatting/formatting.ts +++ b/src/services/formatting/formatting.ts @@ -389,7 +389,7 @@ namespace ts.formatting { let indentation = inheritedIndentation; if (indentation === Constants.Unknown) { - if (isIndentPreventedChildNode(parent.kind, node.kind)) { + if (isIndentPreventedCoreComponent(node.kind)) { indentation = parentDynamicIndentation.getIndentation(); } else if (isSomeBlock(node.kind)) { @@ -479,21 +479,12 @@ namespace ts.formatting { return indentation; } } - switch (kind) { - // open and close brace, 'else' and 'while' (in do statement) tokens has indentation of the parent - case SyntaxKind.OpenBraceToken: - case SyntaxKind.CloseBraceToken: - case SyntaxKind.OpenBracketToken: - case SyntaxKind.CloseBracketToken: - case SyntaxKind.OpenParenToken: - case SyntaxKind.CloseParenToken: - case SyntaxKind.ElseKeyword: - case SyntaxKind.WhileKeyword: - case SyntaxKind.AtToken: - return indentation; - default: - // if token line equals to the line of containing node (this is a first token in the node) - use node indentation - return nodeStartLine !== line ? indentation + delta : indentation; + if (isIndentPreventedCoreComponent(kind)) { + return indentation; + } + else { + // if token line equals to the line of containing node (this is a first token in the node) - use node indentation + return nodeStartLine !== line ? indentation + delta : indentation; } }, getIndentation: () => indentation, @@ -1021,11 +1012,20 @@ namespace ts.formatting { return false; } - function isIndentPreventedChildNode(parent: SyntaxKind, child: SyntaxKind) { - switch (parent) { - case SyntaxKind.JsxElement: { - return child === SyntaxKind.JsxClosingElement; - } + function isIndentPreventedCoreComponent(child: SyntaxKind) { + switch (child) { + // open and close brace, 'else' and 'while' (in do statement) tokens has indentation of the parent + case SyntaxKind.OpenBraceToken: + case SyntaxKind.CloseBraceToken: + case SyntaxKind.OpenBracketToken: + case SyntaxKind.CloseBracketToken: + case SyntaxKind.OpenParenToken: + case SyntaxKind.CloseParenToken: + case SyntaxKind.ElseKeyword: + case SyntaxKind.WhileKeyword: + case SyntaxKind.AtToken: + case SyntaxKind.JsxClosingElement: + return true; } } From 56fc7ec68d5117224c64d25ddf89a6fdcbce3fdf Mon Sep 17 00:00:00 2001 From: SaschaNaz Date: Sat, 22 Aug 2015 22:24:31 +0900 Subject: [PATCH 05/23] revert 060828c --- src/services/formatting/formatting.ts | 32 +++++++++++++++++++++------ 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/src/services/formatting/formatting.ts b/src/services/formatting/formatting.ts index 0b1d08e8b05..9a91c85db0b 100644 --- a/src/services/formatting/formatting.ts +++ b/src/services/formatting/formatting.ts @@ -389,7 +389,7 @@ namespace ts.formatting { let indentation = inheritedIndentation; if (indentation === Constants.Unknown) { - if (isIndentPreventedCoreComponent(node.kind)) { + if (isIndentPreventedChildNode(parent.kind, node.kind)) { indentation = parentDynamicIndentation.getIndentation(); } else if (isSomeBlock(node.kind)) { @@ -479,12 +479,21 @@ namespace ts.formatting { return indentation; } } - if (isIndentPreventedCoreComponent(kind)) { - return indentation; - } - else { - // if token line equals to the line of containing node (this is a first token in the node) - use node indentation - return nodeStartLine !== line ? indentation + delta : indentation; + switch (kind) { + // open and close brace, 'else' and 'while' (in do statement) tokens has indentation of the parent + case SyntaxKind.OpenBraceToken: + case SyntaxKind.CloseBraceToken: + case SyntaxKind.OpenBracketToken: + case SyntaxKind.CloseBracketToken: + case SyntaxKind.OpenParenToken: + case SyntaxKind.CloseParenToken: + case SyntaxKind.ElseKeyword: + case SyntaxKind.WhileKeyword: + case SyntaxKind.AtToken: + return indentation; + default: + // if token line equals to the line of containing node (this is a first token in the node) - use node indentation + return nodeStartLine !== line ? indentation + delta : indentation; } }, getIndentation: () => indentation, @@ -1012,6 +1021,14 @@ namespace ts.formatting { return false; } + function isIndentPreventedChildNode(parent: SyntaxKind, child: SyntaxKind) { + switch (parent) { + case SyntaxKind.JsxElement: { + return child === SyntaxKind.JsxClosingElement; + } + } + } + function isIndentPreventedCoreComponent(child: SyntaxKind) { switch (child) { // open and close brace, 'else' and 'while' (in do statement) tokens has indentation of the parent @@ -1027,6 +1044,7 @@ namespace ts.formatting { case SyntaxKind.JsxClosingElement: return true; } + return false; } function getOpenTokenForList(node: Node, list: Node[]) { From 92e3b3b5faad8531d381e54c5856879b29d6d3c0 Mon Sep 17 00:00:00 2001 From: SaschaNaz Date: Wed, 26 Aug 2015 01:06:37 +0900 Subject: [PATCH 06/23] remove isIndentPreventedChildNode --- src/services/formatting/formatting.ts | 29 ++------------------------- 1 file changed, 2 insertions(+), 27 deletions(-) diff --git a/src/services/formatting/formatting.ts b/src/services/formatting/formatting.ts index 9a91c85db0b..a3b32099cca 100644 --- a/src/services/formatting/formatting.ts +++ b/src/services/formatting/formatting.ts @@ -389,7 +389,8 @@ namespace ts.formatting { let indentation = inheritedIndentation; if (indentation === Constants.Unknown) { - if (isIndentPreventedChildNode(parent.kind, node.kind)) { + if (parent.kind === SyntaxKind.JsxElement && node.kind === SyntaxKind.JsxClosingElement) { + // JsxClosingElement should not be indented indentation = parentDynamicIndentation.getIndentation(); } else if (isSomeBlock(node.kind)) { @@ -1021,32 +1022,6 @@ namespace ts.formatting { return false; } - function isIndentPreventedChildNode(parent: SyntaxKind, child: SyntaxKind) { - switch (parent) { - case SyntaxKind.JsxElement: { - return child === SyntaxKind.JsxClosingElement; - } - } - } - - function isIndentPreventedCoreComponent(child: SyntaxKind) { - switch (child) { - // open and close brace, 'else' and 'while' (in do statement) tokens has indentation of the parent - case SyntaxKind.OpenBraceToken: - case SyntaxKind.CloseBraceToken: - case SyntaxKind.OpenBracketToken: - case SyntaxKind.CloseBracketToken: - case SyntaxKind.OpenParenToken: - case SyntaxKind.CloseParenToken: - case SyntaxKind.ElseKeyword: - case SyntaxKind.WhileKeyword: - case SyntaxKind.AtToken: - case SyntaxKind.JsxClosingElement: - return true; - } - return false; - } - function getOpenTokenForList(node: Node, list: Node[]) { switch (node.kind) { case SyntaxKind.Constructor: From 593503f6d57bee8452fccdb42d0350d2d70a51fa Mon Sep 17 00:00:00 2001 From: SaschaNaz Date: Wed, 9 Dec 2015 23:34:13 +0900 Subject: [PATCH 07/23] move blocker to nodeWillIndentChild --- src/services/formatting/smartIndenter.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/services/formatting/smartIndenter.ts b/src/services/formatting/smartIndenter.ts index fc2650b3b38..8e0fef884e7 100644 --- a/src/services/formatting/smartIndenter.ts +++ b/src/services/formatting/smartIndenter.ts @@ -450,10 +450,9 @@ namespace ts.formatting { case SyntaxKind.ConditionalExpression: case SyntaxKind.ArrayBindingPattern: case SyntaxKind.ObjectBindingPattern: - case SyntaxKind.JsxElement: case SyntaxKind.JsxOpeningElement: case SyntaxKind.JsxSelfClosingElement: - case SyntaxKind.JsxExpression: + case SyntaxKind.JsxExpression: case SyntaxKind.MethodSignature: case SyntaxKind.CallSignature: case SyntaxKind.ConstructSignature: @@ -469,6 +468,7 @@ namespace ts.formatting { return false; } + /* @internal */ export function nodeWillIndentChild(parent: TextRangeWithKind, child: TextRangeWithKind, indentByDefault: boolean) { let childKind = child ? child.kind : SyntaxKind.Unknown; switch (parent.kind) { @@ -486,6 +486,8 @@ namespace ts.formatting { case SyntaxKind.GetAccessor: case SyntaxKind.SetAccessor: return childKind !== SyntaxKind.Block; + case SyntaxKind.JsxElement: + return childKind !== SyntaxKind.JsxClosingElement; } // No explicit rule for given nodes so the result will follow the default value argument return indentByDefault; From 9e3ee5d716d439b40fe0f6838141e9890fe77c46 Mon Sep 17 00:00:00 2001 From: SaschaNaz Date: Wed, 9 Dec 2015 23:42:49 +0900 Subject: [PATCH 08/23] remove whitespace --- src/services/formatting/formatting.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/services/formatting/formatting.ts b/src/services/formatting/formatting.ts index 4bb3d13f653..4e48a4bf4f2 100644 --- a/src/services/formatting/formatting.ts +++ b/src/services/formatting/formatting.ts @@ -359,7 +359,7 @@ namespace ts.formatting { parentStartLine: number, range: TextRange, inheritedIndentation: number): number { - + if (rangeOverlapsWithStartEnd(range, startPos, endPos) || rangeContainsStartEnd(range, startPos, endPos) /* Not to miss zero-range nodes e.g. JsxText */) { From 3f65a31a4f998c950b46b4ab302dd89031fc6ab8 Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Thu, 17 Dec 2015 16:43:55 -0800 Subject: [PATCH 09/23] Property show images in Language Specification markdown --- doc/images/image1.png | Bin 0 -> 11672 bytes doc/images/image2.png | Bin 0 -> 10238 bytes doc/images/image3.png | Bin 0 -> 6003 bytes doc/images/image4.png | Bin 0 -> 16082 bytes doc/spec.md | 8 ++++---- scripts/word2md.js | 7 +++++++ scripts/word2md.ts | 14 ++++++++++++++ 7 files changed, 25 insertions(+), 4 deletions(-) create mode 100644 doc/images/image1.png create mode 100644 doc/images/image2.png create mode 100644 doc/images/image3.png create mode 100644 doc/images/image4.png diff --git a/doc/images/image1.png b/doc/images/image1.png new file mode 100644 index 0000000000000000000000000000000000000000..e1db88fa4f8637f06f77e971dcdee24d5cc9cf50 GIT binary patch literal 11672 zcma)i2Q-{f*X{@rB}fRO3nA)=9?^Rly(P+!=)D`gCLx6AM(@3MF$igdQAaN!34_59 zB^dRNl<&*^@49RKV~w@Wd(PSC+0Wi*?|t4gQQDfyBt*1C004kQRYgG;0KkD^znlbD zu>TpJ$dqF{a6EODX;e#Q%tL4!=@equ+#_OQ|L2s^rG zS8#5QR1wIA65PO*=L{uw%**CTE5K8an&R~*0KqKax{a#gU!QoPQ2{KPR?B@!Oq3~? ze?O%jswpWc1$!-Z9eeaJeQpPA|^HK&FW||<{%Ukxn&Ml z_8IuGVsJ9NZa=S`_-^QR((`bUt(6zV^gzd-*FC3dDV*$_MEvA^)~0e8T{0mDjoDxy zZ8d*+;^3c^Br_v>dyS2&e9)!kx7!ae&aBc_K`5gZhB<$P3DEi5fh>F+Th~pyXr=Y zj(ivQgtEnvR@Z{w{KKW1WgR>X^j(!zy@K-bNy4MR{E0cuu?ZeGOI) zHJ@4F&i5CKKbI21#_r@P!ABybf{w?r5F}mfwhB8A&$jz6Dyqn7otwKzyty~k7KLZi z8AZn(l6@r6F0-RmVKV=b73iTH>-X^8lAZ*S=VKyVVHlxPPsG;gcj_*;^0U1Gv#Z0K zYr!i@lFIEXS_P-)Gx0F53&Zm9nZin8pIeM=A&)?3h82#!yTJsDfCQ8IXLuq(aiw@I z0*urBzR4{fha6ovxwlhb5@POA$z?N3H8&?IT{?8u;G5uQBIP#RXZG5u>5%)P(PH=T zX5W4gbuFuwxQ*@`g}r&y=PsMsln6WB+`HE7?T4-zx>^6#FefJmMhSWET5Mu^-JxZ7 z>za91c6OV$4TZOW*kQD;mI-QdG9{;FH+E_Pt2o}e?$=*!#7S}2t_Wdg`coM&k(y@m z(uOy%DTv<1oxf~GZF?Q^VU0j6U!%!HjIPzp%i4cdt+fS9bPAT}qHkUj{jTObKlV_r z+;BV)qM@eRGzPoElypGmlyZCe`z_Cz_xA&GGnkPB;W;gc>S}ID=i*wBR-`x%_aatM zVC!pkBZSFJY)*^rLeclgxPf6ifzqfgls)&CSsr4vV@YYX`i;hv?Z*QuUj%;)%oD$z z2}Y4E-1H%wTu3hvb#O>(r#dp>4ovw%Cbp>c^G7z-@WCYe%THID`=~8qRjN0OM7|W+ z6u$BMRsnJ+%Z;4kbnhD9u_chnu=6JGKa)jUjXpWG|jwW^a91c?Yq% zk;=U1IJWPt;2aU=5Ur~1oRcltb@GndwevjqC#jC~4>r!=H(_#;fVu;>iCbowrKP0} z#5N){Gxwy_9YmVH5K(Qf(2_nXAUno&ikzOi#biE57kg0i)DIP?dase^;E zyVi^`N?ERBB^|zA&rbRm7-N;1hjZLkP1^Aql``$guN87jtXFV$h(g;KkLHjJ&fATZyQ%<^J@~U5cy(L+^gg;=4|NC zqn!ylAUBD~pIE64Ie=htQa1=Pq<=momD=|t4I!|)gI_i%Ea2v>*6%;CnQ*T`;aZsn zD%0!6YH!KWl!pA+mF%?ASQG(M=Y&}ItSPH}rN(i(CzEyrU0Ril+L&zAN43J_^ot+m z!VZiljXc~26|yugjR;H2Cb6d3(;pwmupj8A#z-vAB)b9Ig)<)03y-5nb@|sv*Xu;4 zK94x;VSSP}ml$<#HIOuFl0L3LplQ}C#85f48a!^J9$}cdFZig-i&X98L&9*>(1^p> znUSM~UGq#Z)LAic|9Z8^1X#p8h$5i#nbMh<^^xA`H#fH9fK)67)+Ui8qE;i+P5n&f z=M0M>d9elJ-SoTAD5zO=!difcg{3~q+(ofWimHZcw?asZW2UM^dA_pQFzBIE*?5_* z;mFpI*oKpB@3?^UIFbonVTf$0^f)J@#|y29QG!-v1>Au7{TwRnrw*3#$VDWilQ}L% zwC3X(6!Z5kc`l|5KVtJ^)6%`h-J`!YL43&9)}LsAIx!}R`dV>|P}s z_b8c|xdUXX_DK?d2yTY}QCYuT9#^4GMgLRZNmwXXVOT{Be(>n1jDZra0S$@1wUBno zWuvf!3sWF!hN$Ogcsm~ZjJGZBMr=k!a>aa3rYT&owj>w>-!nh!FP7!L0Tv3cKuC5q zN*#sWd3}<5VdTAL=6bp_#@Ch_Ua`Bmxmi86ce2rDd{320RYO`KHd#gmLD%FlH zZE__NwQ7bolbi}ipOe%0#M4s8H7Q0q#CH_|D|LhFmr^>pJ%l92J;uvoW>twFA+dp9 z)*E%lp#R<#XXl!_jYcw)l$B=c{YagW^8xedJKwi-a!~9H^W=IOE6%|bkpVQl3yi#x zj?svMyRj>-TW^q)9E*#xA6`^?bZV0v*TkEp>=o#CJ$>hW>-M&{Hqt-A0E4p444lrF zE;+{CrZ7rz$;4Wl3q^2_ezds9q?E=wWVgAvFTmL55;$X}aPi~WgjKc;IdZt9@WtCc z-KP%>X2x$PMl#fJtL;HG)D30>D>jfPStM#H8&?fzVr31Gw2PVw*DJY(b6y0F#_}MF zv0hoBpIceK?O$NoEOzuG>;>6|2u(V6q`&MhvtTD#PjGvxk+?}=jJC#0BJvH2JIw4I zN9a9$A23kpop;yMG_Q)?q%kyDhZL9hL-}lz2JV&}Jb)TRRXBY-lik4DHujsoH9939 z-{JLx(@Jyv3R$L0#q?9wMbg`#mT#-J%v>BDM&4Ryzo(Dr(F?dCda)= z@_lWwSJYFbRR#Bu@G`lQ4@Lt(gFVjo^+tXxLb>3$c{gBiSQE@15MZW=d zjOmGU1CD|9w6nm$$Qo8S92(r#KQKbyJ~+x=h?lF@FK)N>Qm7@;H$Zzg$_?Kj1zvah zl;OAMVq288Jj|kAk}?CuRXljlz=4DJ#$82qFv5QD?E|&~ zywVBI1edz#HaqgG#RiQHL@31CcH&8>mg=idKEY|?W>Bpf^F&Y1H79s+H;nT@0S_Gg zrDAcAOEanosMvR)$3l3*7Q#_pB`4nrWHLL9Iw5nuQlzF1c6s;%?iC7@jUM0d2(h)L zo&t9t+wFq_jjmMPTq7@1DFp6(Q?FBEmWpQ?VNuzM8%3U`X}q4Wda&~X-y@u1aC}_+CWU`-?nrtN8O<>75nVM}Y(&bZv5rV?Yf+YSe^qb; z^yaX?Ie_PC+hcJazWe64sOtz3H6~9ut3G?#*wf9Y{xA+43b>{;D70L@F<$%-bla>B z4`Y%dl?-H6ywgrXqFZ$50;ikrk;*IJ#cJ<`vO%0(^u_u1g}XpMsyPUie&`*VekP33 z%1tdBf-~*hUEzf^H?1KiZW6FJ0F9FAJ6i9WiDump5Lgv;@e)bd?pfJmJkQY0DY3}P zNzZ3c?{x@s1i)fcPM3T)eu6BYCk+sOCe;}7eaPlcS&^X;3!be-B~gL2;}e?--7>H(D?vaEKIV6K?Zs= zDr7C(Lpo@B&(48UH)Hs%b7o?XP03(dddYWxEo-VPSS(gxY<0YF zI>=PPlxOkyWf4e?0DSDpe6E>thJaGKqpUdm^58G?f_|+zVl9Mi?EBL*iHuk)ux#wk z)xKTbb65MZkT~6AAu>2%?KzZ>XRcp*aJQKAU8#alQPuYhjBh_R!cRy8JM-f>a(+WW z6RPC&y~mQ%`F7mBgPKA0b%9)d@c&%oR>wH`+d2W>vjc0PWGd@753jtFfsShbe%Qzbe(Spv9%14=rEISgQOSB^K+Vf< zR4(en2l=6=8AAd6w=@O@<$iamTY;ql4mNj@@VouF7pJR2m-U=qF25m^=fRi>kMx(F zbb(I4b^YI>DU6_jN9^9SlEr;5?3gR?>?J_lS_(?}fbjPk@?w4WPS^hS;G^Mof5e3W3-kXBe+wMl zuA=>IN}8k2Mq`mmVI#%=kR7ovE_i6e^F3I7=Rrx@@|H}$rY+}^!Q(U1+)G1c%t14^ z63A=cJ6ziIYsWp>Kg<=N$U|SsK$#V3z1tcsEofkaIq2;h?aI9pYO0!9OiXB7pb_%O zu9bsOBsbfq-_50E_yX9I_|OLO{8*(>GlvS112SN~(|+qVo)Q%37d&JSQ6m*}5bjqi zzH=2BfWGx<*XZ#bsoZZmR5X;@dJIk}RA%R-we8G~4eDziPi}+HS$ZA!Rp`l6fHXt; z%9?D=XMy8$^!JvpaMOdjs>;yQOp9zqme4Em`8|A5`d)pC#9yIvazQ7$>xs*X;o>bP zU{oUMfKVSipNv_>~!t@ zi+ihNu4Zr4P|A<^+-yjEY8E=&z7>kQ#2{|D6vdb_tHkDbp@z*KdR`QIJY5(Fx?=cu$rp4g$OpYw{ytq-DdnN(R=1K%%Avbvi6 zv~U_{n=8$%9M~CkK`RE-QCX}f`f!_Dc}-CW9uG4Ymw0imI&?M}eLX`s?0nmPn%NcI*>*0Sskhfis-ETg^Ob5hr!(br$QC z>|LjBflZY;rmh$u9zZ9p7Ieh6mJ0yu=C2&EF>Hc~LVcf?bIl#vH{MKNbv2+j#{+dVn?*Yi%)2)S&Qxs}OkXARt=XPT}uy;w-h9YTn`n(-S z1$V_Pal;C$s@kw8(Cld3 zOWyMk%6OyxAx2-k1*I|0_DWaH^C@^i^5Jy5#aL_Ymx&~))WU>p)*yk70 zE;Eb|MC}&_OYii0;+0_gh(?sJ74w-GMKQhfympuVH*d^Nv!w1sK8!%NirB3Vg@NLioDK(Qb_J-xitfbu zXPMK!5(-9n_c3yMqrgf1r0UR=Ae)GeOtg!qc+_DNgF{!7#}3=}Oq*}I=DQ{iV7hX? zQ$2!3PqUx;^N|Hm+Wd*|R{i*{+Z?l@t-zVFFYa0|b4iUERHF`fP5mWsCc4UeC17om zQlvtTUL=y-O1({>LyD-YDBol@jQ@`2+#6+Hv92y8`R0|Gf@O0Obatb~*dVR04&MCb+og?MvV z`3RBvj4KT93CHRTMcU(D4_`W3?!ZJ;me1kS$6%jHuj)u z(1tM@Q8YB>Sy7E zk|e`rd2P&HO3Cy=GEjz><#4#?akeljaW9DP6?rTyO9QhtJpDF_<3**4+H0viI4O38 z`4h3=l0wCFBfhdc$9R~SOHsxOInJkS%wL~q|s@xthw!&WVYjE8cO5g zB-nBw?ZXL=*`e=@U%z6Dg3nE7< z5*MpxWVMlSh+*@UcpZ7yT^&Y7Mvrh$of?-VNK& z<)Sc`6olSUUNNx|u@&O?Y42sfC-b>4@7GWnY%LpnI<1O`ZaCeK7-gf&KhsZd&)O2S zHYOFl%BIXTVtvhG9ns1|myx0yj^{;48&wXHI&qPja+ecQcJLH!7-3_Y$C%ix;KL+e z>jAymnyZR}W=H~R1E1;q(u?^H_B{Rn)iuF8D%f@ctIZ8PDF1Qxi)7VXe-}**(B@g# zRxg07A4QBf4F)mD|0asL0l0b~?#U$F=t}N%+)bm!Fz1+6bMgGs&v*CF?#(|!sLuv- z$BI|&TtOmysp`8a3w~>=4#pOeaA^nju>)gR=WNcZppE`o!#G83bl=n9s|)*QIw01M zS026mZ3OIgS~(DB-C!xN3u}9d#I?;Dj?Wm7K6n5;LlD*6-u;$is}I`4RQ|SS*k_n2 zHRpW2{{Ju~?x;1`#cR z9>x~qZ~1Y-;apg?jB~q^9R%gy#tlM0V#)@^M%Z5d@BA_-=kPlHUrZimU5yZt&CT}c z-+W&M|mLa8%9v{VE|WWx9Mw!S?&x)DF2XSD)8NhE}2Ji zw#OhPht!zFK{STnzGaFA%0RQD0v7~Z7t=ANYgbceG_4dL3E1WaUi)m7LGwoaxQ?h( z=#0Z_=92XrrQ=V(z9_o_+XP^b$G_1{R>Ea}?*thkur8W4wV(U#thW49)Ztcedz__>}AIK1Bp^l|tl5(cJUD?H{n4Sr}#UakaZ0Y2tBv@=; zW0L{B26!yq16=f5Wnk3N-;09``y7D%o15mWLz>9N-pb;3+_g3qv1AOIwO+#B({kQ;2Si@gSW+lpz`h)q{7P%$2XT1ijn@p67qKMe zrHV*$2eiEUfgT|h%7zpcEejC+u&>>PY=z(Tqrx7}Ko zH`aszV21;t$&Nha6BG3JI71AArgGgNa*&xfF94xbiA|sl|674RkEN!{A69Ry%Ft~# zpxfXp-aF5--Y&BQg{{|Xh;66!ECq+08AajGx z2I^@RH9kUJRy;V}P{WAUZ3a3TeFQq1Kw)jOF9Qxdzm;y{+^)O@KEp-EQD_md!RA-4>dqHMAsF{2*uu-n`p&iy8vZZ{wo~2 z>VIa`fdBx4EC16NzmX(1!m}A3JOD5&S_J5|)V|e_r6KN2xwM>0(x;B{pL&vm+eV^# za?(F=vBHb`0MI$&R8!Oy~664N(> zoSE^&E0BMHgHtD<+XRP#evHw1X_ATDo_%)jo-_~b-OLMruU%;E+mk;B7MbV0eLkg& zfhT7dV&^@6+JbeUc&cplZd`6~c`!bKf^U3q)-~azCU6erZ`)4AzTa(( zHWZt6>OdcjEgI3g=C!9M*h{{H&Woe5u|`|^v895d2%L-%p}zT- zPiL-%8)t0pVsG^6xpHwKQI7>g=78mj80_`QBDONc-gKT9URxZAM%D zCMT-et;gIG^nm(l`5fucOpV^;<$StTzn6)T;nwA|#iD9773!hj1?;;~aC@Zy^~*z2 zrNU=(Ecfifuvehm!zoT)wYh48RYIv>;xy`aAgH+%uEDDgedvbS{Uou8^5?@<>bx^n zCvx2lLe0Rr!b#xZ@boVBedm@fWMeIbrI)JR`;*OWQkR{Wg5`zL-j>^KjDzpx^;T+3 zUcY;wc;=cW!fdW%k1iZdIqd&Lk6Bm0Mc4Df@sWACH@f0Mt;let3kVS%e`VkReIzLuu~m4Cp%jb`|=BWmEQ68&~?1#?yI6Z z#hj75_FNa(iwhfQv2L)!AgGYYMXSPsnKWS&apB?MS)pfbW6gD@mYtB`-o&SXPx+&y zkVv!|K3uSyDMwWawh6G&3o8k{Sgm}YrS}m3d8B9vJZi`ifa?`=$JthWQ4L`@?`A)T^?C*U^S#w*iQ2DT@8^ zpHxINWdKz%3TRzPm5*`dkrFE71F)PEqbYyU+o)&#EY_bb>Odp7s1_jK#j=lU$3e|H zo~jr+u3WS+#(A{EVr9k)*4-$Nvms2@rNwTEQ9u}GR{eo6&9)X+giZu|9Q3iOjm0bD zq7f3eP}gl!t@mr|C7_mxn;MO%yQ0M`ddXgeKjRFe4PLgvF$Xj1qAZV0yhwLhi`BVI zVw~vyKz#zuyM|~6VWLS|hTrXG=u*}}HBv0N&*gk%8sbbDg4aV}vDMqPv-KSRbR;yPv9`fan`Q1t1&Z|OH z3>Z$c_`f&26QpfablvDWgwUVaz8!DwFS%IFaHiQ*NdI978;0or0r~{WELKFu^(y(! zt9L+IvTmTPhYFKE6{kGaGjKSg$}AAtCP*qm{f_|DtaYna=1;hx^j71;f2I~WLdOd> zf7lB~1+9#JI1(-VPPbhP zIl_^dHE@Vp-%RYb$YcEnCV4Y_C|3ktPMhAJKdQLdkUVO7{iDorUV{ov!|hG-eHlcn z|4X(7AEPYZ6Hn^~QRUdf@}`W=+muYQa8GvuM#_H_D4%1Smiq_z|Ij%U9KIYcRmP(m z!Gqt9CkbfB>-&e^C*7_7-6bsl@U7EsdOT*c!sz?sY<+qdcZcMt?A1KiKk|#_U>)?B zF&kbU7w7>_!TZ;s!umm)NUl{2M+9W&A7%9Zn717deBS6Q?(HxpdGcqYNhR`%!w~!X<5#m1HMwDbopSrr}6ku zB-Ge!<{-c7{@u&{_aDbni{*?OSl3UNw|@#%v_W??W0qt6X4(7nvT^*Uct)Fk@GAaU z_O1hTRLa?KH@AXj;`mlEvj1tuF_Vx5Y##D}uQ?=iXw$>CdVDDW?-GP@$J&D%9tkX`;gx=|(oir@dKC^n2y1vB zkM(v&l`lXP{prq9FO<*R##4U;<@W(3N@QM`9MI&xax$AHA=;Vdlp8THI3h)Z0xh?Z z2!_A;E7uFXi%o1^1-!9|S|4aK#*ZN^+wPNJi5wV4Y$v7o%}gE_%c}p;Mg|7yb6JZ` zJWVjpkl+k`59ctjzdG5T!()#CcD;2IBeD2PQ=$}2DL#8Tdws;*;))af>gA1gTx zROc|(@%Ga{MjmS$-X^~c`j;WCpGY2ChWY~_go*NhhFD-e~Kjy+3?ok#Z8oK1%8EQd@{vBn!o5Q$xX-%#UBG<(~}i6D`@v6LTGvPetVM^b3@yV)lSwM z&|pc@{BiU^;++gzhA-1R@HO*h^_;68mH!(Rb}8wcvccx{I=QJ@P-5z2wv;;}yc7z5 zcwX$wzNRW%{Q}Of`Oes1Qv*~LH5F>)o`nA&(08m5 literal 0 HcmV?d00001 diff --git a/doc/images/image2.png b/doc/images/image2.png new file mode 100644 index 0000000000000000000000000000000000000000..c032103805785e018ae0f10cfc9a263358e436c4 GIT binary patch literal 10238 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 literal 0 HcmV?d00001 diff --git a/doc/images/image3.png b/doc/images/image3.png new file mode 100644 index 0000000000000000000000000000000000000000..5fe2ecb8f3e9d86242f2eff83bf982b06104fddc GIT binary patch literal 6003 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 VmqMj#8kokCmsXZ~|MYp_{{cK?Wjz1@ literal 0 HcmV?d00001 diff --git a/doc/spec.md b/doc/spec.md index a7947b19926..8114398ae5b 100644 --- a/doc/spec.md +++ b/doc/spec.md @@ -262,7 +262,7 @@ function f() { To benefit from this inference, a programmer can use the TypeScript language service. For example, a code editor can incorporate the TypeScript language service and use the service to find the members of a string object as in the following screen shot. -/ +![](images/image1.png) In this example, the programmer benefits from type inference without providing type annotations. Some beneficial tools, however, do require the programmer to provide type annotations. In TypeScript, we can express a parameter requirement as in the following code fragment. @@ -410,7 +410,7 @@ This signature denotes that a function may be passed as the parameter of the '$' A typical client would not need to add any additional typing but could just use a community-supplied typing to discover (through statement completion with documentation tips) and verify (through static checking) correct use of the library, as in the following screen shot. -/ +![](images/image2.png) Section [3.3](#3.3) provides additional information about object types. @@ -627,7 +627,7 @@ An important goal of TypeScript is to provide accurate and straightforward types JavaScript programming interfaces often include functions whose behavior is discriminated by a string constant passed to the function. The Document Object Model makes heavy use of this pattern. For example, the following screen shot shows that the 'createElement' method of the 'document' object has multiple signatures, some of which identify the types returned when specific strings are passed into the method. -/ +![](images/image3.png) The following code fragment uses this feature. Because the 'span' variable is inferred to have the type 'HTMLSpanElement', the code can reference without static error the 'isMultiline' property of 'span'. @@ -638,7 +638,7 @@ span.isMultiLine = false; // OK: HTMLSpanElement has isMultiline property In the following screen shot, a programming tool combines information from overloading on string parameters with contextual typing to infer that the type of the variable 'e' is 'MouseEvent' and that therefore 'e' has a 'clientX' property. -/ +![](images/image4.png) Section [3.9.2.4](#3.9.2.4) provides details on how to use string literals in function signatures. diff --git a/scripts/word2md.js b/scripts/word2md.js index e80275d5b2d..2866c92d580 100644 --- a/scripts/word2md.js +++ b/scripts/word2md.js @@ -47,6 +47,7 @@ function convertDocumentToMarkdown(doc) { var tableColumnCount; var tableCellIndex; var columnAlignment = []; + var imageCount = 0; function setProperties(target, properties) { for (var name in properties) { if (properties.hasOwnProperty(name)) { @@ -120,12 +121,18 @@ function convertDocumentToMarkdown(doc) { var text = p.range.text; var style = p.style.nameLocal; var inTable = p.range.tables.count > 0; + var containsImage = p.range.inlineShapes.count > 0; var level = 1; var sectionBreak = text.indexOf("\x0C") >= 0; text = trimEndFormattingMarks(text); if (inTable) { style = "Table"; } + else if (containsImage) { + imageCount++; + write("![](images/image" + imageCount + ".png)\n\n"); + text = ""; + } else if (style.match(/\s\d$/)) { level = +style.substr(style.length - 1); style = style.substr(0, style.length - 2); diff --git a/scripts/word2md.ts b/scripts/word2md.ts index ec9ed634b3c..1e9d7879f20 100644 --- a/scripts/word2md.ts +++ b/scripts/word2md.ts @@ -67,10 +67,17 @@ module Word { export interface Tables extends Collection { } + export interface InlineShape { + } + + export interface InlineShapes extends Collection { + } + export interface Range { find: Find; listFormat: ListFormat; tables: Tables; + inlineShapes: InlineShapes; text: string; words: Ranges; } @@ -180,6 +187,7 @@ function convertDocumentToMarkdown(doc: Word.Document): string { var tableColumnCount: number; var tableCellIndex: number; var columnAlignment: number[] = []; + var imageCount: number = 0; function setProperties(target: any, properties: any) { for (var name in properties) { @@ -261,6 +269,7 @@ function convertDocumentToMarkdown(doc: Word.Document): string { var text = p.range.text; var style = p.style.nameLocal; var inTable = p.range.tables.count > 0; + var containsImage = p.range.inlineShapes.count > 0; var level = 1; var sectionBreak = text.indexOf("\x0C") >= 0; @@ -268,6 +277,11 @@ function convertDocumentToMarkdown(doc: Word.Document): string { if (inTable) { style = "Table"; } + else if (containsImage) { + imageCount++; + write("![](images/image" + imageCount + ".png)\n\n"); + text = ""; + } else if (style.match(/\s\d$/)) { level = +style.substr(style.length - 1); style = style.substr(0, style.length - 2); From 549fbf58ac68925a451daa0160afcbbc7b840e3c Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Thu, 17 Dec 2015 16:50:22 -0800 Subject: [PATCH 10/23] Adjusting indentation --- doc/spec.md | 8 ++++---- scripts/word2md.js | 2 +- scripts/word2md.ts | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/doc/spec.md b/doc/spec.md index 8114398ae5b..75745f32653 100644 --- a/doc/spec.md +++ b/doc/spec.md @@ -262,7 +262,7 @@ function f() { To benefit from this inference, a programmer can use the TypeScript language service. For example, a code editor can incorporate the TypeScript language service and use the service to find the members of a string object as in the following screen shot. -![](images/image1.png) +   ![](images/image1.png) In this example, the programmer benefits from type inference without providing type annotations. Some beneficial tools, however, do require the programmer to provide type annotations. In TypeScript, we can express a parameter requirement as in the following code fragment. @@ -410,7 +410,7 @@ This signature denotes that a function may be passed as the parameter of the '$' A typical client would not need to add any additional typing but could just use a community-supplied typing to discover (through statement completion with documentation tips) and verify (through static checking) correct use of the library, as in the following screen shot. -![](images/image2.png) +   ![](images/image2.png) Section [3.3](#3.3) provides additional information about object types. @@ -627,7 +627,7 @@ An important goal of TypeScript is to provide accurate and straightforward types JavaScript programming interfaces often include functions whose behavior is discriminated by a string constant passed to the function. The Document Object Model makes heavy use of this pattern. For example, the following screen shot shows that the 'createElement' method of the 'document' object has multiple signatures, some of which identify the types returned when specific strings are passed into the method. -![](images/image3.png) +   ![](images/image3.png) The following code fragment uses this feature. Because the 'span' variable is inferred to have the type 'HTMLSpanElement', the code can reference without static error the 'isMultiline' property of 'span'. @@ -638,7 +638,7 @@ span.isMultiLine = false; // OK: HTMLSpanElement has isMultiline property In the following screen shot, a programming tool combines information from overloading on string parameters with contextual typing to infer that the type of the variable 'e' is 'MouseEvent' and that therefore 'e' has a 'clientX' property. -![](images/image4.png) +   ![](images/image4.png) Section [3.9.2.4](#3.9.2.4) provides details on how to use string literals in function signatures. diff --git a/scripts/word2md.js b/scripts/word2md.js index 2866c92d580..33dec3259fb 100644 --- a/scripts/word2md.js +++ b/scripts/word2md.js @@ -130,7 +130,7 @@ function convertDocumentToMarkdown(doc) { } else if (containsImage) { imageCount++; - write("![](images/image" + imageCount + ".png)\n\n"); + write("   ![](images/image" + imageCount + ".png)\n\n"); text = ""; } else if (style.match(/\s\d$/)) { diff --git a/scripts/word2md.ts b/scripts/word2md.ts index 1e9d7879f20..f8aecb8f611 100644 --- a/scripts/word2md.ts +++ b/scripts/word2md.ts @@ -279,7 +279,7 @@ function convertDocumentToMarkdown(doc: Word.Document): string { } else if (containsImage) { imageCount++; - write("![](images/image" + imageCount + ".png)\n\n"); + write("   ![](images/image" + imageCount + ".png)\n\n"); text = ""; } else if (style.match(/\s\d$/)) { From 94e91e59607e59f749ce1a8d42a2b5dc9687723c Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Thu, 17 Dec 2015 18:20:49 -0800 Subject: [PATCH 11/23] Use hidden text in Word document for markdown image links --- doc/TypeScript Language Specification.docx | Bin 311634 -> 311406 bytes doc/spec.md | 8 ++--- scripts/word2md.js | 25 +++++++------- scripts/word2md.ts | 36 ++++++++++----------- 4 files changed, 36 insertions(+), 33 deletions(-) diff --git a/doc/TypeScript Language Specification.docx b/doc/TypeScript Language Specification.docx index 4eb94908b57bbab417b1907a6e01964be003a68c..370e5e25d8960471298e7dd08b6e0ef26b6d022a 100644 GIT binary patch delta 244673 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

PF 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 delta 244877 zcmXVXWmFzr&ou>#OL2F1cWZH{xVyW%3|3q(+=~`2+#Oon-QA&BahH$#dB0in@65@{ zIV;&ob~5LI7&E~bHPMK`m-$Lx8%Zb#N(V{^GzbU?Pe&Is7BfdvcYAXOH)bz;yVIN# zmtEev!*0jEE~r80yKFE~TIF-G#VNdYQ~CPp{Jv_{`35S6Z*T!=q&{ZZc7Kz_gx#sY zDZzP?9rah0BCAo5G(37D2Ae*+L=Y*n2xZ_4&D%@bVOg;d`yvNG^t@B#qro?wZqF+= zOKh0^a&>kmb|`-Bw@!SVYFZzi#CNUu=JIIxKAM*&j6y__&c3=x3cvdNz{$a^NZlp! z>=kg1hrvDHSzl(|5_cH$!qJ>qHJ`UNm~I5@uB9JUP3GcQtMMond2a~)W2E66@5s=uYg?whGj@QB~nSegPz1fQ6RRE(5SxpeXO+nC4V z|DoJ5tVsHC!%>(m?>=iF=v7`IgXz%NstwsF56Kj7pDNBFzq6L5grmP}%{`$xnx{vT z&ZNR|UF=~A#LtQv*e7T#>42D)M$05B)j%RDUN%)7~>!2n#SaW6Fp?=;vH{0;-k&wN_)huHd8O&I)?S-s`qyVzZjbc4(VV*^ zzFgoT{fErtoxw}b1-oV%xY1yA0o;;WF_-7&OZau7F&vLW{wps}3PSakM&vyxgTC^|SKQ`5#K``cCd`eQ6T6Zu z5ARo-^!zN2V!V`n5Y=q-IRm>ovAAgq*tHE&2ZA#n4!^nK==heG zt5qiIWS)%s%ya7r>1UIN2?*J8AMm^ebtZk7&6)gj*ggY$2v$99fPZ0+cAF>UsVmd$ zTUD!{#pwpJz>?L^F8{%t-o394X>LHhEze49mDjEnt_kXAfH!ef8^e{|;63x- zu~--b!BQ1=PSd{@jzKIc`bH%F#$)y3w&a^zh0f(Tg#ojfzpH7n!%ms|Y`s9Yl4n7l}=*r?bEJ^yRe@jzh30k z=vK3%D+m}Pu&-bH=9YCon2!X@``6cyUS6f}At4WaQxn*JM#5e&^`dGtDS+*&xAT^i zNNfvu*ua?=lAFY%JSY!vH-+%FFkgyip35#hJRJ{ zIzO!lCOM{AG5mPnt6sUbpgdnji!lwoI|eQIW1u6g6g`d;Y2xS@9XjQAa( zFS!PGiWwQ62NLiLpe>;yovw?0_D%bp%M4N)v#7F$yVjdM%g26PLz{JF?Ua)@JooLp zxj~j1xB<)CZ!MRocDgWTzaTAe9U|9y`2yIQGKA^IY>%tOj=bF1qw28qbf_<9|K?g7`Qe0&r|z_4PSvPGQbpdf|D-%@zCj+e zsFhVanV*ZXyd0kYrE0YWu_t9Q8|9!#on#fCuE$RO-{qT8DVTNrl*8P}?V+4i1wwk< zr=!gp^-Y z5hwk>(?iXmcR_!=CPnKwW9E?<0c&2&QnD^n0;HrnTfE*z6`O99-f?w8LOR$)S)KBw znTYt+>sm>l3M3L9q%>KJW8;i6u1KGXwoC)a1nWx6N$)kt;LAH!Y6T6L0n7(M|K8d^ zS_S9jRbZT8J}&?3MCIhc4ngX_Y50P|NIapL;@TSe>ad!e`T$A^)B)%g$V^J593j^^ zPfQhjzOpJSvX5-&a3M_hjZh7QPg~su&8gz)fqZN{Tart2MfJd~0-sy_zD&19raoH9 zT+tQm6I;_M3;$?Pn^}&WbrB}wed&`dFh|h=1w>i3O6kbXDUmUy2yS9qKbD)KM5gd* z%Ye&}7-VeQ1T#3)$jpcoU$bKIKWKF-!`H@%DcwtA-0b#} z1Lg)spch)GF%|GvRH$_Kj4KL=5_XzKYQt=lIcA7t_Zc!Y+Iu+JGW`5ZewsXLL%}up z_u-q2^5|AxG7eaF8Kxo__IYK*`C{;oWH;p}_Jj3LT_;LVL%w@0x5 zxIk&irohk7C&L4`M5il3pUf3I#zy5p2xu(#Lvm#*`E8jh`IAVdf6%C0zk|d@ZN96J zbyJp!Qc}@8b}w=EvIO=QiHy{=BoC65_3nhJ#U_Dl;XIpAso4r87ReLVNQ+frh6!|d zL-(M>>eRSWGSL*asLzP`cazDoA_rHm)6LZIh|{j1J9+`FIeY08-bPHJJqiiAGa6cd zQ416^&{AYVtCX26mcYltU#P@o*TFx@%fe_JENn8z$z;?yrx{(_OVqC&5oXHT!&82U zpXh6OVWVZ_Q;gX@4{j3C6i1b<*eE{y`)MhrpO8z>!ziPa5@b$CAiN84pbSp&&hkV7G3XgSZOPs#f9BCE}`F^i8AM{fEKqx&@-t#nV&K>ssGd0h^T< zUT9!R>@ftVQm+5cWL3=7iT0s{rSc!(Gx!o@5X#NXxM`_>Pb4fSg9DCB%Ov!n*{Dno zXe^STzvG#tswDZ4_9fFR9@F~p`V)>NM`%L;Y%&GneQOkK#j?r#HVFJUmx>YTpT8tw z%8HK(p{s&L%L+?){HW>SgX$riK;P-0CXk!q;j#$=lPnF1c~fo%am+# ze@VKL_&)`^O3O>|>#KFKr|Z7xfEpsKT19l4ie#hPY`|>0_Ee%4XhU|1O|&8M=r#XP zGE^ER^ttBKJ?|2PFqjelP{9MyaB04M#cIaNnhJCWmIq4NWS4bc3_ulD8ENClIXZD6 zX~%Xw%|)_lm>!YG+9l^`vDZ`S4YGLnY3w&3QO*Mi%GiNpVw9&8ZGM}Ajz~TV>O&)T znS6G6>a@4@OP5I%TE7J^lkK1A>(88QI11FmD(-|O3rr~+Nc_0OG_pX~uU0;}8M>WQ zVm=0S{?Cl+JT;vTsA2{-o>O1_XY(+4nh&XmOWD^b^T6xQs^C8Oma-z%c`??DZQ=O( zYqIowC=sGU%*|S4?hniSV?j4rE%L=qHiiEa_dJs8KktL3+#Tr74{UC8M3Ijk8-Iwi zZ;=W9g~ao>;_*Luz}9~P!{^8A{|G9zmbTa=y$dDkhiMUuHokG$e+3x4GQR`NZ*Ek0iMt)^g)op^mxy?|B%*~w-X1& zN6)Nf5K7H;nq>b@1EdYf;6O+ndc2D_1`bH+YvpWdsafEfu!ZuI8cf=rOJ3LZkly*K z%jfU1{M@e=qFI(=J*?E;iI|xsX+x_-3xcik2cLX&y;m7FK{>20!aZ>wE^( zJSOd;zz+edP#Hza(0iay+66D*{E|CaD>W(V;pbg}CS$h0mF$cqvu`szgapx4Hf{Je z2yI6Z$1kMRpKyX&%t%vd(QQl1zC8a2r(KeQ6O*Ph;b`%r{kw7E$U0&QpL8bOZ~3-) zMdAb~xktBJlAVn)duqkM>53_H5oAp;9z}}pK>`u-!A(esa(K>?WaM&~<6LuUW9!$v z>ll)-bA6t6y(TK7Xwh;5CXqI+1IuB~f+M>-2gYA?ubfAf%+SZoBjmUHJ*4Dv{jD3+ zR7?Lr1=#wp7r2KC7Ew+UCc4BICDU7-fa!9-6m{S@+aBsn{^o7!8#~L80daGsmreN@ zf`KB1@!da;P^-U5TkwAXw4ozKwxi!$lRr6Q71XKeXJrnC-s>%T&yaItB)CFk^x2Po zbx31Bs1p5}O7Eb`5n;ADBNT79XObY#-i!p2!;@Aaqm)Z&RZl^Bb5fEUmiUz6<^a9t z@~M?U{ZK=l9TNH}ZuwN^8S?)4`?>gDWhAghRi+y@gh|Zw5xLQ{!E=>hGuj9**LcD? zm#g$phYy%$NAEM{Ep;!BngT0u`FnQ@_6Wtrku3@hA{<$5`3+GD;gh+>4<&=Kpv=H{ zXhaS(KIgn2EX^;D;OO7fkpt{YYfk5qOKT8Wg3su+WqS+rG@5ye`LDMnP_BgOK$lD+ z>J@3yoGG3e2%Y>x38vH$As2;V-q@bhTL{iQ*DQ=7N(BniG^8PyVryARo0rRN05oXN z_LW*)2WF^9R&LYD?rUnftSbBWU6!Wv3DbLKNEZ~+Bzgs8Qj#J1YQ26fDFp!XCj51m z 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

{ } - export interface InlineShape { - } - - export interface InlineShapes extends Collection { - } - export interface Range { find: Find; listFormat: ListFormat; tables: Tables; - inlineShapes: InlineShapes; text: string; + textRetrievalMode: { + includeHiddenText: boolean; + } words: Ranges; } @@ -266,22 +262,26 @@ function convertDocumentToMarkdown(doc: Word.Document): string { function writeParagraph(p: Word.Paragraph) { - var text = p.range.text; + var range = p.range; + var text = range.text; var style = p.style.nameLocal; - var inTable = p.range.tables.count > 0; - var containsImage = p.range.inlineShapes.count > 0; + var inTable = range.tables.count > 0; var level = 1; var sectionBreak = text.indexOf("\x0C") >= 0; text = trimEndFormattingMarks(text); + if (text === "/") { + range.textRetrievalMode.includeHiddenText = true; + var fullText = range.text; + range.textRetrievalMode.includeHiddenText = false; + if (text !== fullText) { + text = "  " + fullText.substr(1); + } + } + if (inTable) { style = "Table"; } - else if (containsImage) { - imageCount++; - write("   ![](images/image" + imageCount + ".png)\n\n"); - text = ""; - } else if (style.match(/\s\d$/)) { level = +style.substr(style.length - 1); style = style.substr(0, style.length - 2); @@ -294,7 +294,7 @@ function convertDocumentToMarkdown(doc: Word.Document): string { case "Heading": case "Appendix": - var section = p.range.listFormat.listString; + var section = range.listFormat.listString; write("####".substr(0, level) + ' ' + section + " " + text + "\n\n"); break; @@ -305,7 +305,7 @@ function convertDocumentToMarkdown(doc: Word.Document): string { break; case "List Paragraph": - write(" ".substr(0, p.range.listFormat.listLevelNumber * 2 - 2) + "* " + text + "\n"); + write(" ".substr(0, range.listFormat.listLevelNumber * 2 - 2) + "* " + text + "\n"); break; case "Grammar": @@ -324,7 +324,7 @@ function convertDocumentToMarkdown(doc: Word.Document): string { case "Table": if (!lastInTable) { - tableColumnCount = p.range.tables.item(1).columns.count + 1; + tableColumnCount = range.tables.item(1).columns.count + 1; tableCellIndex = 0; } if (tableCellIndex < tableColumnCount) { From 58e869d5e4ce5f888ca62c91e4670326faeeafb0 Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Thu, 17 Dec 2015 18:25:17 -0800 Subject: [PATCH 12/23] Remove unused variable --- scripts/word2md.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/word2md.ts b/scripts/word2md.ts index 266046cee37..62582992c49 100644 --- a/scripts/word2md.ts +++ b/scripts/word2md.ts @@ -183,7 +183,6 @@ function convertDocumentToMarkdown(doc: Word.Document): string { var tableColumnCount: number; var tableCellIndex: number; var columnAlignment: number[] = []; - var imageCount: number = 0; function setProperties(target: any, properties: any) { for (var name in properties) { From e93df41f544d0495a517fafc9170b84b2867bc25 Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Fri, 18 Dec 2015 19:06:44 -0800 Subject: [PATCH 13/23] Addressing CR feedback --- scripts/word2md.js | 245 --------------------------------------------- scripts/word2md.ts | 4 + 2 files changed, 4 insertions(+), 245 deletions(-) delete mode 100644 scripts/word2md.js diff --git a/scripts/word2md.js b/scripts/word2md.js deleted file mode 100644 index 4804a9f0563..00000000000 --- a/scripts/word2md.js +++ /dev/null @@ -1,245 +0,0 @@ -// word2md - Word to Markdown conversion tool -// -// word2md converts a Microsoft Word document to Markdown formatted text. The tool uses the -// Word Automation APIs to start an instance of Word and access the contents of the document -// being converted. The tool must be run using the cscript.exe script host and requires Word -// to be installed on the target machine. The name of the document to convert must be specified -// as a command line argument and the resulting Markdown is written to standard output. The -// tool recognizes the specific Word styles used in the TypeScript Language Specification. -var sys = (function () { - var fileStream = new ActiveXObject("ADODB.Stream"); - fileStream.Type = 2 /*text*/; - var binaryStream = new ActiveXObject("ADODB.Stream"); - binaryStream.Type = 1 /*binary*/; - var args = []; - for (var i = 0; i < WScript.Arguments.length; i++) { - args[i] = WScript.Arguments.Item(i); - } - return { - args: args, - createObject: function (typeName) { return new ActiveXObject(typeName); }, - write: function (s) { - WScript.StdOut.Write(s); - }, - writeFile: function (fileName, data) { - fileStream.Open(); - binaryStream.Open(); - try { - // Write characters in UTF-8 encoding - fileStream.Charset = "utf-8"; - fileStream.WriteText(data); - // We don't want the BOM, skip it by setting the starting location to 3 (size of BOM). - fileStream.Position = 3; - fileStream.CopyTo(binaryStream); - binaryStream.SaveToFile(fileName, 2 /*overwrite*/); - } - finally { - binaryStream.Close(); - fileStream.Close(); - } - } - }; -})(); -function convertDocumentToMarkdown(doc) { - var result = ""; - var lastStyle; - var lastInTable; - var tableColumnCount; - var tableCellIndex; - var columnAlignment = []; - var imageCount = 0; - function setProperties(target, properties) { - for (var name in properties) { - if (properties.hasOwnProperty(name)) { - var value = properties[name]; - if (typeof value === "object") { - setProperties(target[name], value); - } - else { - target[name] = value; - } - } - } - } - function findReplace(findText, findOptions, replaceText, replaceOptions) { - var find = doc.range().find; - find.clearFormatting(); - setProperties(find, findOptions); - var replace = find.replacement; - replace.clearFormatting(); - setProperties(replace, replaceOptions); - find.execute(findText, false, false, false, false, false, true, 0, true, replaceText, 2); - } - function fixHyperlinks() { - var count = doc.hyperlinks.count; - for (var i = 0; i < count; i++) { - var hyperlink = doc.hyperlinks.item(i + 1); - var address = hyperlink.address; - if (address && address.length > 0) { - var textToDisplay = hyperlink.textToDisplay; - hyperlink.textToDisplay = "[" + textToDisplay + "](" + address + ")"; - } - } - } - function write(s) { - result += s; - } - function writeTableHeader() { - for (var i = 0; i < tableColumnCount - 1; i++) { - switch (columnAlignment[i]) { - case 1: - write("|:---:"); - break; - case 2: - write("|---:"); - break; - default: - write("|---"); - } - } - write("|\n"); - } - function trimEndFormattingMarks(text) { - var i = text.length; - while (i > 0 && text.charCodeAt(i - 1) < 0x20) - i--; - return text.substr(0, i); - } - function writeBlockEnd() { - switch (lastStyle) { - case "Code": - write("```\n\n"); - break; - case "List Paragraph": - case "Table": - case "TOC": - write("\n"); - break; - } - } - function writeParagraph(p) { - var range = p.range; - var text = range.text; - var style = p.style.nameLocal; - var inTable = range.tables.count > 0; - var level = 1; - var sectionBreak = text.indexOf("\x0C") >= 0; - text = trimEndFormattingMarks(text); - if (text === "/") { - range.textRetrievalMode.includeHiddenText = true; - var fullText = range.text; - range.textRetrievalMode.includeHiddenText = false; - if (text !== fullText) { - text = "  " + fullText.substr(1); - } - } - if (inTable) { - style = "Table"; - } - else if (style.match(/\s\d$/)) { - level = +style.substr(style.length - 1); - style = style.substr(0, style.length - 2); - } - if (lastStyle && style !== lastStyle) { - writeBlockEnd(); - } - switch (style) { - case "Heading": - case "Appendix": - var section = range.listFormat.listString; - write("####".substr(0, level) + ' ' + section + " " + text + "\n\n"); - break; - case "Normal": - if (text.length) { - write(text + "\n\n"); - } - break; - case "List Paragraph": - write(" ".substr(0, range.listFormat.listLevelNumber * 2 - 2) + "* " + text + "\n"); - break; - case "Grammar": - write("  " + text.replace(/\s\s\s/g, " ").replace(/\x0B/g, " \n   ") + "\n\n"); - break; - case "Code": - if (lastStyle !== "Code") { - write("```TypeScript\n"); - } - else { - write("\n"); - } - write(text.replace(/\x0B/g, " \n") + "\n"); - break; - case "Table": - if (!lastInTable) { - tableColumnCount = range.tables.item(1).columns.count + 1; - tableCellIndex = 0; - } - if (tableCellIndex < tableColumnCount) { - columnAlignment[tableCellIndex] = p.alignment; - } - write("|" + text); - tableCellIndex++; - if (tableCellIndex % tableColumnCount === 0) { - write("\n"); - if (tableCellIndex === tableColumnCount) { - writeTableHeader(); - } - } - break; - case "TOC Heading": - write("## " + text + "\n\n"); - break; - case "TOC": - var strings = text.split("\t"); - write(" ".substr(0, level * 2 - 2) + "* [" + strings[0] + " " + strings[1] + "](#" + strings[0] + ")\n"); - break; - } - if (sectionBreak) { - write("
\n\n"); - } - lastStyle = style; - lastInTable = inTable; - } - function writeDocument() { - var title = doc.builtInDocumentProperties.item(1) + ""; - if (title.length) { - write("# " + title + "\n\n"); - } - for (var p = doc.paragraphs.first; p; p = p.next()) { - writeParagraph(p); - } - writeBlockEnd(); - } - findReplace("<", {}, "<", {}); - findReplace("<", { style: "Code" }, "<", {}); - findReplace("<", { style: "Code Fragment" }, "<", {}); - findReplace("<", { style: "Terminal" }, "<", {}); - findReplace("", { font: { subscript: true } }, "^&", { font: { subscript: false } }); - findReplace("", { style: "Code Fragment" }, "`^&`", { style: -66 /* default font */ }); - findReplace("", { style: "Production" }, "*^&*", { style: -66 /* default font */ }); - findReplace("", { style: "Terminal" }, "`^&`", { style: -66 /* default font */ }); - findReplace("", { font: { bold: true, italic: true } }, "***^&***", { font: { bold: false, italic: false } }); - findReplace("", { font: { italic: true } }, "*^&*", { font: { italic: false } }); - doc.fields.toggleShowCodes(); - findReplace("^19 REF", {}, "[^&](#^&)", {}); - doc.fields.toggleShowCodes(); - fixHyperlinks(); - writeDocument(); - result = result.replace(/\x85/g, "\u2026"); - result = result.replace(/\x96/g, "\u2013"); - result = result.replace(/\x97/g, "\u2014"); - return result; -} -function main(args) { - if (args.length !== 2) { - sys.write("Syntax: word2md \n"); - return; - } - var app = sys.createObject("Word.Application"); - var doc = app.documents.open(args[0]); - sys.writeFile(args[1], convertDocumentToMarkdown(doc)); - doc.close(false); - app.quit(); -} -main(sys.args); -//# sourceMappingURL=file:///c:/ts/scripts/word2md.js.map \ No newline at end of file diff --git a/scripts/word2md.ts b/scripts/word2md.ts index 62582992c49..f602c700ff9 100644 --- a/scripts/word2md.ts +++ b/scripts/word2md.ts @@ -270,6 +270,10 @@ function convertDocumentToMarkdown(doc: Word.Document): string { text = trimEndFormattingMarks(text); if (text === "/") { + // An inline image shows up in the text as a "/". When we see a paragraph + // consisting of nothing but "/", we check to see if the paragraph contains + // hidden text and, if so, emit that instead. The hidden text is assumed to + // contain an appropriate markdown image link. range.textRetrievalMode.includeHiddenText = true; var fullText = range.text; range.textRetrievalMode.includeHiddenText = false; From 9b9abf8674d8d8a282a010aa96ad2ce6233e3731 Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Mon, 28 Dec 2015 16:50:58 -0500 Subject: [PATCH 14/23] Lint 'outliningElementsCollector.ts'. --- Jakefile.js | 5 ++- src/services/outliningElementsCollector.ts | 47 +++++++++++----------- 2 files changed, 28 insertions(+), 24 deletions(-) diff --git a/Jakefile.js b/Jakefile.js index 288472a697b..b81596cfbfb 100644 --- a/Jakefile.js +++ b/Jakefile.js @@ -921,11 +921,14 @@ function lintFileAsync(options, path, cb) { }); } +var servicesLintTargets = ["services.ts", "outliningElementsCollector.ts"].map(function (s) { + return path.join(servicesDirectory, s); +}); var lintTargets = compilerSources .concat(harnessCoreSources) .concat(serverCoreSources) .concat(scriptSources) - .concat([path.join(servicesDirectory, "services.ts")]); + .concat(servicesLintTargets); desc("Runs tslint on the compiler sources"); task("lint", ["build-rules"], function() { diff --git a/src/services/outliningElementsCollector.ts b/src/services/outliningElementsCollector.ts index 08b089cd75e..fe0d94a2365 100644 --- a/src/services/outliningElementsCollector.ts +++ b/src/services/outliningElementsCollector.ts @@ -1,13 +1,13 @@ /* @internal */ namespace ts { - export module OutliningElementsCollector { + export namespace OutliningElementsCollector { export function collectElements(sourceFile: SourceFile): OutliningSpan[] { - let elements: OutliningSpan[] = []; - let collapseText = "..."; + const elements: OutliningSpan[] = []; + const collapseText = "..."; function addOutliningSpan(hintSpanNode: Node, startElement: Node, endElement: Node, autoCollapse: boolean) { if (hintSpanNode && startElement && endElement) { - let span: OutliningSpan = { + const span: OutliningSpan = { textSpan: createTextSpanFromBounds(startElement.pos, endElement.end), hintSpan: createTextSpanFromBounds(hintSpanNode.getStart(), hintSpanNode.end), bannerText: collapseText, @@ -19,7 +19,7 @@ namespace ts { function addOutliningSpanComments(commentSpan: CommentRange, autoCollapse: boolean) { if (commentSpan) { - let span: OutliningSpan = { + const span: OutliningSpan = { textSpan: createTextSpanFromBounds(commentSpan.pos, commentSpan.end), hintSpan: createTextSpanFromBounds(commentSpan.pos, commentSpan.end), bannerText: collapseText, @@ -30,7 +30,7 @@ namespace ts { } function addOutliningForLeadingCommentsForNode(n: Node) { - let comments = ts.getLeadingCommentRangesOfNode(n, sourceFile); + const comments = ts.getLeadingCommentRangesOfNode(n, sourceFile); if (comments) { let firstSingleLineCommentStart = -1; @@ -38,7 +38,7 @@ namespace ts { let isFirstSingleLineComment = true; let singleLineCommentCount = 0; - for (let currentComment of comments) { + for (const currentComment of comments) { // For single line comments, combine consecutive ones (2 or more) into // a single span from the start of the first till the end of the last @@ -64,14 +64,15 @@ namespace ts { } } - function combineAndAddMultipleSingleLineComments(count: number, start: number, end: number) { + function combineAndAddMultipleSingleLineComments(count: number, start: number, end: number) { + // Only outline spans of two or more consecutive single line comments if (count > 1) { - let multipleSingleLineComments = { + const multipleSingleLineComments = { pos: start, end: end, kind: SyntaxKind.SingleLineCommentTrivia - } + }; addOutliningSpanComments(multipleSingleLineComments, /*autoCollapse*/ false); } @@ -82,7 +83,7 @@ namespace ts { } let depth = 0; - let maxDepth = 20; + const maxDepth = 20; function walk(n: Node): void { if (depth > maxDepth) { return; @@ -95,9 +96,9 @@ namespace ts { switch (n.kind) { case SyntaxKind.Block: if (!isFunctionBlock(n)) { - let parent = n.parent; - let openBrace = findChildOfKind(n, SyntaxKind.OpenBraceToken, sourceFile); - let closeBrace = findChildOfKind(n, SyntaxKind.CloseBraceToken, sourceFile); + const parent = n.parent; + const openBrace = findChildOfKind(n, SyntaxKind.OpenBraceToken, sourceFile); + const closeBrace = findChildOfKind(n, SyntaxKind.CloseBraceToken, sourceFile); // Check if the block is standalone, or 'attached' to some parent statement. // If the latter, we want to collaps the block, but consider its hint span @@ -117,13 +118,13 @@ namespace ts { if (parent.kind === SyntaxKind.TryStatement) { // Could be the try-block, or the finally-block. - let tryStatement = parent; + const tryStatement = parent; if (tryStatement.tryBlock === n) { addOutliningSpan(parent, openBrace, closeBrace, autoCollapse(n)); break; } else if (tryStatement.finallyBlock === n) { - let finallyKeyword = findChildOfKind(tryStatement, SyntaxKind.FinallyKeyword, sourceFile); + const finallyKeyword = findChildOfKind(tryStatement, SyntaxKind.FinallyKeyword, sourceFile); if (finallyKeyword) { addOutliningSpan(finallyKeyword, openBrace, closeBrace, autoCollapse(n)); break; @@ -135,7 +136,7 @@ namespace ts { // Block was a standalone block. In this case we want to only collapse // the span of the block, independent of any parent span. - let span = createTextSpanFromBounds(n.getStart(), n.end); + const span = createTextSpanFromBounds(n.getStart(), n.end); elements.push({ textSpan: span, hintSpan: span, @@ -147,8 +148,8 @@ namespace ts { // Fallthrough. case SyntaxKind.ModuleBlock: { - let openBrace = findChildOfKind(n, SyntaxKind.OpenBraceToken, sourceFile); - let closeBrace = findChildOfKind(n, SyntaxKind.CloseBraceToken, sourceFile); + const openBrace = findChildOfKind(n, SyntaxKind.OpenBraceToken, sourceFile); + const closeBrace = findChildOfKind(n, SyntaxKind.CloseBraceToken, sourceFile); addOutliningSpan(n.parent, openBrace, closeBrace, autoCollapse(n)); break; } @@ -157,14 +158,14 @@ namespace ts { case SyntaxKind.EnumDeclaration: case SyntaxKind.ObjectLiteralExpression: case SyntaxKind.CaseBlock: { - let openBrace = findChildOfKind(n, SyntaxKind.OpenBraceToken, sourceFile); - let closeBrace = findChildOfKind(n, SyntaxKind.CloseBraceToken, sourceFile); + const openBrace = findChildOfKind(n, SyntaxKind.OpenBraceToken, sourceFile); + const closeBrace = findChildOfKind(n, SyntaxKind.CloseBraceToken, sourceFile); addOutliningSpan(n, openBrace, closeBrace, autoCollapse(n)); break; } case SyntaxKind.ArrayLiteralExpression: - let openBracket = findChildOfKind(n, SyntaxKind.OpenBracketToken, sourceFile); - let closeBracket = findChildOfKind(n, SyntaxKind.CloseBracketToken, sourceFile); + const openBracket = findChildOfKind(n, SyntaxKind.OpenBracketToken, sourceFile); + const closeBracket = findChildOfKind(n, SyntaxKind.CloseBracketToken, sourceFile); addOutliningSpan(n, openBracket, closeBracket, autoCollapse(n)); break; } From f9eb330b198360e4134873b5cba58de67fde7df0 Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Mon, 28 Dec 2015 16:58:20 -0500 Subject: [PATCH 15/23] Lint 'navigateTo.ts'. --- Jakefile.js | 6 ++++- src/services/navigateTo.ts | 48 +++++++++++++++++++------------------- 2 files changed, 29 insertions(+), 25 deletions(-) diff --git a/Jakefile.js b/Jakefile.js index b81596cfbfb..ad904fc3ea4 100644 --- a/Jakefile.js +++ b/Jakefile.js @@ -921,7 +921,11 @@ function lintFileAsync(options, path, cb) { }); } -var servicesLintTargets = ["services.ts", "outliningElementsCollector.ts"].map(function (s) { +var servicesLintTargets = [ + "services.ts", + "outliningElementsCollector.ts", + "navigateTo.ts", +].map(function (s) { return path.join(servicesDirectory, s); }); var lintTargets = compilerSources diff --git a/src/services/navigateTo.ts b/src/services/navigateTo.ts index 2a0abba8695..8022e2fad7a 100644 --- a/src/services/navigateTo.ts +++ b/src/services/navigateTo.ts @@ -3,19 +3,19 @@ namespace ts.NavigateTo { type RawNavigateToItem = { name: string; fileName: string; matchKind: PatternMatchKind; isCaseSensitive: boolean; declaration: Declaration }; export function getNavigateToItems(program: Program, cancellationToken: CancellationToken, searchValue: string, maxResultCount: number): NavigateToItem[] { - let patternMatcher = createPatternMatcher(searchValue); + const patternMatcher = createPatternMatcher(searchValue); let rawItems: RawNavigateToItem[] = []; // This means "compare in a case insensitive manner." - let baseSensitivity: Intl.CollatorOptions = { sensitivity: "base" }; + const baseSensitivity: Intl.CollatorOptions = { sensitivity: "base" }; // Search the declarations in all files and output matched NavigateToItem into array of NavigateToItem[] forEach(program.getSourceFiles(), sourceFile => { cancellationToken.throwIfCancellationRequested(); - let nameToDeclarations = sourceFile.getNamedDeclarations(); - for (let name in nameToDeclarations) { - let declarations = getProperty(nameToDeclarations, name); + const nameToDeclarations = sourceFile.getNamedDeclarations(); + for (const name in nameToDeclarations) { + const declarations = getProperty(nameToDeclarations, name); if (declarations) { // First do a quick check to see if the name of the declaration matches the // last portion of the (possibly) dotted name they're searching for. @@ -25,11 +25,11 @@ namespace ts.NavigateTo { continue; } - for (let declaration of declarations) { + for (const declaration of declarations) { // It was a match! If the pattern has dots in it, then also see if the // declaration container matches as well. if (patternMatcher.patternContainsDots) { - let containers = getContainers(declaration); + const containers = getContainers(declaration); if (!containers) { return undefined; } @@ -41,8 +41,8 @@ namespace ts.NavigateTo { } } - let fileName = sourceFile.fileName; - let matchKind = bestMatchKind(matches); + const fileName = sourceFile.fileName; + const matchKind = bestMatchKind(matches); rawItems.push({ name, fileName, matchKind, isCaseSensitive: allMatchesAreCaseSensitive(matches), declaration }); } } @@ -54,7 +54,7 @@ namespace ts.NavigateTo { rawItems = rawItems.slice(0, maxResultCount); } - let items = map(rawItems, createNavigateToItem); + const items = map(rawItems, createNavigateToItem); return items; @@ -62,7 +62,7 @@ namespace ts.NavigateTo { Debug.assert(matches.length > 0); // This is a case sensitive match, only if all the submatches were case sensitive. - for (let match of matches) { + for (const match of matches) { if (!match.isCaseSensitive) { return false; } @@ -86,16 +86,16 @@ namespace ts.NavigateTo { function tryAddSingleDeclarationName(declaration: Declaration, containers: string[]) { if (declaration && declaration.name) { - let text = getTextOfIdentifierOrLiteral(declaration.name); + const text = getTextOfIdentifierOrLiteral(declaration.name); if (text !== undefined) { containers.unshift(text); } else if (declaration.name.kind === SyntaxKind.ComputedPropertyName) { - return tryAddComputedPropertyName((declaration.name).expression, containers, /*includeLastPortion:*/ true); + return tryAddComputedPropertyName((declaration.name).expression, containers, /*includeLastPortion*/ true); } else { // Don't know how to add this. - return false + return false; } } @@ -106,7 +106,7 @@ namespace ts.NavigateTo { // // [X.Y.Z]() { } function tryAddComputedPropertyName(expression: Expression, containers: string[], includeLastPortion: boolean): boolean { - let text = getTextOfIdentifierOrLiteral(expression); + const text = getTextOfIdentifierOrLiteral(expression); if (text !== undefined) { if (includeLastPortion) { containers.unshift(text); @@ -115,24 +115,24 @@ namespace ts.NavigateTo { } if (expression.kind === SyntaxKind.PropertyAccessExpression) { - let propertyAccess = expression; + const propertyAccess = expression; if (includeLastPortion) { containers.unshift(propertyAccess.name.text); } - return tryAddComputedPropertyName(propertyAccess.expression, containers, /*includeLastPortion:*/ true); + return tryAddComputedPropertyName(propertyAccess.expression, containers, /*includeLastPortion*/ true); } return false; } function getContainers(declaration: Declaration) { - let containers: string[] = []; + const containers: string[] = []; // First, if we started with a computed property name, then add all but the last // portion into the container array. if (declaration.name.kind === SyntaxKind.ComputedPropertyName) { - if (!tryAddComputedPropertyName((declaration.name).expression, containers, /*includeLastPortion:*/ false)) { + if (!tryAddComputedPropertyName((declaration.name).expression, containers, /*includeLastPortion*/ false)) { return undefined; } } @@ -155,8 +155,8 @@ namespace ts.NavigateTo { Debug.assert(matches.length > 0); let bestMatchKind = PatternMatchKind.camelCase; - for (let match of matches) { - let kind = match.kind; + for (const match of matches) { + const kind = match.kind; if (kind < bestMatchKind) { bestMatchKind = kind; } @@ -171,13 +171,13 @@ namespace ts.NavigateTo { // We first sort case insensitively. So "Aaa" will come before "bar". // Then we sort case sensitively, so "aaa" will come before "Aaa". return i1.matchKind - i2.matchKind || - i1.name.localeCompare(i2.name, undefined, baseSensitivity) || + i1.name.localeCompare(i2.name, undefined, baseSensitivity) || i1.name.localeCompare(i2.name); } function createNavigateToItem(rawItem: RawNavigateToItem): NavigateToItem { - let declaration = rawItem.declaration; - let container = getContainerNode(declaration); + const declaration = rawItem.declaration; + const container = getContainerNode(declaration); return { name: rawItem.name, kind: getNodeKind(declaration), From 51933a231fedbc46a5e15ec0bc1e5c08d179f880 Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Mon, 28 Dec 2015 17:00:36 -0500 Subject: [PATCH 16/23] Flattened 'ts.OutliningElementsCollector' to a single declaration. --- src/services/outliningElementsCollector.ts | 288 ++++++++++----------- 1 file changed, 143 insertions(+), 145 deletions(-) diff --git a/src/services/outliningElementsCollector.ts b/src/services/outliningElementsCollector.ts index fe0d94a2365..fa4f46b5010 100644 --- a/src/services/outliningElementsCollector.ts +++ b/src/services/outliningElementsCollector.ts @@ -1,181 +1,179 @@ /* @internal */ -namespace ts { - export namespace OutliningElementsCollector { - export function collectElements(sourceFile: SourceFile): OutliningSpan[] { - const elements: OutliningSpan[] = []; - const collapseText = "..."; +namespace ts.OutliningElementsCollector { + export function collectElements(sourceFile: SourceFile): OutliningSpan[] { + const elements: OutliningSpan[] = []; + const collapseText = "..."; - function addOutliningSpan(hintSpanNode: Node, startElement: Node, endElement: Node, autoCollapse: boolean) { - if (hintSpanNode && startElement && endElement) { - const span: OutliningSpan = { - textSpan: createTextSpanFromBounds(startElement.pos, endElement.end), - hintSpan: createTextSpanFromBounds(hintSpanNode.getStart(), hintSpanNode.end), - bannerText: collapseText, - autoCollapse: autoCollapse - }; - elements.push(span); - } + function addOutliningSpan(hintSpanNode: Node, startElement: Node, endElement: Node, autoCollapse: boolean) { + if (hintSpanNode && startElement && endElement) { + const span: OutliningSpan = { + textSpan: createTextSpanFromBounds(startElement.pos, endElement.end), + hintSpan: createTextSpanFromBounds(hintSpanNode.getStart(), hintSpanNode.end), + bannerText: collapseText, + autoCollapse: autoCollapse + }; + elements.push(span); } + } - function addOutliningSpanComments(commentSpan: CommentRange, autoCollapse: boolean) { - if (commentSpan) { - const span: OutliningSpan = { - textSpan: createTextSpanFromBounds(commentSpan.pos, commentSpan.end), - hintSpan: createTextSpanFromBounds(commentSpan.pos, commentSpan.end), - bannerText: collapseText, - autoCollapse: autoCollapse - }; - elements.push(span); - } + function addOutliningSpanComments(commentSpan: CommentRange, autoCollapse: boolean) { + if (commentSpan) { + const span: OutliningSpan = { + textSpan: createTextSpanFromBounds(commentSpan.pos, commentSpan.end), + hintSpan: createTextSpanFromBounds(commentSpan.pos, commentSpan.end), + bannerText: collapseText, + autoCollapse: autoCollapse + }; + elements.push(span); } + } - function addOutliningForLeadingCommentsForNode(n: Node) { - const comments = ts.getLeadingCommentRangesOfNode(n, sourceFile); + function addOutliningForLeadingCommentsForNode(n: Node) { + const comments = ts.getLeadingCommentRangesOfNode(n, sourceFile); - if (comments) { - let firstSingleLineCommentStart = -1; - let lastSingleLineCommentEnd = -1; - let isFirstSingleLineComment = true; - let singleLineCommentCount = 0; + if (comments) { + let firstSingleLineCommentStart = -1; + let lastSingleLineCommentEnd = -1; + let isFirstSingleLineComment = true; + let singleLineCommentCount = 0; - for (const currentComment of comments) { + for (const currentComment of comments) { - // For single line comments, combine consecutive ones (2 or more) into - // a single span from the start of the first till the end of the last - if (currentComment.kind === SyntaxKind.SingleLineCommentTrivia) { - if (isFirstSingleLineComment) { - firstSingleLineCommentStart = currentComment.pos; - } - isFirstSingleLineComment = false; - lastSingleLineCommentEnd = currentComment.end; - singleLineCommentCount++; - } - else if (currentComment.kind === SyntaxKind.MultiLineCommentTrivia) { - combineAndAddMultipleSingleLineComments(singleLineCommentCount, firstSingleLineCommentStart, lastSingleLineCommentEnd); - addOutliningSpanComments(currentComment, /*autoCollapse*/ false); - - singleLineCommentCount = 0; - lastSingleLineCommentEnd = -1; - isFirstSingleLineComment = true; + // For single line comments, combine consecutive ones (2 or more) into + // a single span from the start of the first till the end of the last + if (currentComment.kind === SyntaxKind.SingleLineCommentTrivia) { + if (isFirstSingleLineComment) { + firstSingleLineCommentStart = currentComment.pos; } + isFirstSingleLineComment = false; + lastSingleLineCommentEnd = currentComment.end; + singleLineCommentCount++; } + else if (currentComment.kind === SyntaxKind.MultiLineCommentTrivia) { + combineAndAddMultipleSingleLineComments(singleLineCommentCount, firstSingleLineCommentStart, lastSingleLineCommentEnd); + addOutliningSpanComments(currentComment, /*autoCollapse*/ false); - combineAndAddMultipleSingleLineComments(singleLineCommentCount, firstSingleLineCommentStart, lastSingleLineCommentEnd); + singleLineCommentCount = 0; + lastSingleLineCommentEnd = -1; + isFirstSingleLineComment = true; + } } + + combineAndAddMultipleSingleLineComments(singleLineCommentCount, firstSingleLineCommentStart, lastSingleLineCommentEnd); + } + } + + function combineAndAddMultipleSingleLineComments(count: number, start: number, end: number) { + + // Only outline spans of two or more consecutive single line comments + if (count > 1) { + const multipleSingleLineComments = { + pos: start, + end: end, + kind: SyntaxKind.SingleLineCommentTrivia + }; + + addOutliningSpanComments(multipleSingleLineComments, /*autoCollapse*/ false); + } + } + + function autoCollapse(node: Node) { + return isFunctionBlock(node) && node.parent.kind !== SyntaxKind.ArrowFunction; + } + + let depth = 0; + const maxDepth = 20; + function walk(n: Node): void { + if (depth > maxDepth) { + return; } - function combineAndAddMultipleSingleLineComments(count: number, start: number, end: number) { - - // Only outline spans of two or more consecutive single line comments - if (count > 1) { - const multipleSingleLineComments = { - pos: start, - end: end, - kind: SyntaxKind.SingleLineCommentTrivia - }; - - addOutliningSpanComments(multipleSingleLineComments, /*autoCollapse*/ false); - } + if (isDeclaration(n)) { + addOutliningForLeadingCommentsForNode(n); } - function autoCollapse(node: Node) { - return isFunctionBlock(node) && node.parent.kind !== SyntaxKind.ArrowFunction; - } + switch (n.kind) { + case SyntaxKind.Block: + if (!isFunctionBlock(n)) { + const parent = n.parent; + const openBrace = findChildOfKind(n, SyntaxKind.OpenBraceToken, sourceFile); + const closeBrace = findChildOfKind(n, SyntaxKind.CloseBraceToken, sourceFile); - let depth = 0; - const maxDepth = 20; - function walk(n: Node): void { - if (depth > maxDepth) { - return; - } + // Check if the block is standalone, or 'attached' to some parent statement. + // If the latter, we want to collaps the block, but consider its hint span + // to be the entire span of the parent. + if (parent.kind === SyntaxKind.DoStatement || + parent.kind === SyntaxKind.ForInStatement || + parent.kind === SyntaxKind.ForOfStatement || + parent.kind === SyntaxKind.ForStatement || + parent.kind === SyntaxKind.IfStatement || + parent.kind === SyntaxKind.WhileStatement || + parent.kind === SyntaxKind.WithStatement || + parent.kind === SyntaxKind.CatchClause) { - if (isDeclaration(n)) { - addOutliningForLeadingCommentsForNode(n); - } - - switch (n.kind) { - case SyntaxKind.Block: - if (!isFunctionBlock(n)) { - const parent = n.parent; - const openBrace = findChildOfKind(n, SyntaxKind.OpenBraceToken, sourceFile); - const closeBrace = findChildOfKind(n, SyntaxKind.CloseBraceToken, sourceFile); - - // Check if the block is standalone, or 'attached' to some parent statement. - // If the latter, we want to collaps the block, but consider its hint span - // to be the entire span of the parent. - if (parent.kind === SyntaxKind.DoStatement || - parent.kind === SyntaxKind.ForInStatement || - parent.kind === SyntaxKind.ForOfStatement || - parent.kind === SyntaxKind.ForStatement || - parent.kind === SyntaxKind.IfStatement || - parent.kind === SyntaxKind.WhileStatement || - parent.kind === SyntaxKind.WithStatement || - parent.kind === SyntaxKind.CatchClause) { + addOutliningSpan(parent, openBrace, closeBrace, autoCollapse(n)); + break; + } + if (parent.kind === SyntaxKind.TryStatement) { + // Could be the try-block, or the finally-block. + const tryStatement = parent; + if (tryStatement.tryBlock === n) { addOutliningSpan(parent, openBrace, closeBrace, autoCollapse(n)); break; } - - if (parent.kind === SyntaxKind.TryStatement) { - // Could be the try-block, or the finally-block. - const tryStatement = parent; - if (tryStatement.tryBlock === n) { - addOutliningSpan(parent, openBrace, closeBrace, autoCollapse(n)); + else if (tryStatement.finallyBlock === n) { + const finallyKeyword = findChildOfKind(tryStatement, SyntaxKind.FinallyKeyword, sourceFile); + if (finallyKeyword) { + addOutliningSpan(finallyKeyword, openBrace, closeBrace, autoCollapse(n)); break; } - else if (tryStatement.finallyBlock === n) { - const finallyKeyword = findChildOfKind(tryStatement, SyntaxKind.FinallyKeyword, sourceFile); - if (finallyKeyword) { - addOutliningSpan(finallyKeyword, openBrace, closeBrace, autoCollapse(n)); - break; - } - } - - // fall through. } - // Block was a standalone block. In this case we want to only collapse - // the span of the block, independent of any parent span. - const span = createTextSpanFromBounds(n.getStart(), n.end); - elements.push({ - textSpan: span, - hintSpan: span, - bannerText: collapseText, - autoCollapse: autoCollapse(n) - }); - break; + // fall through. } - // Fallthrough. - case SyntaxKind.ModuleBlock: { - const openBrace = findChildOfKind(n, SyntaxKind.OpenBraceToken, sourceFile); - const closeBrace = findChildOfKind(n, SyntaxKind.CloseBraceToken, sourceFile); - addOutliningSpan(n.parent, openBrace, closeBrace, autoCollapse(n)); + // Block was a standalone block. In this case we want to only collapse + // the span of the block, independent of any parent span. + const span = createTextSpanFromBounds(n.getStart(), n.end); + elements.push({ + textSpan: span, + hintSpan: span, + bannerText: collapseText, + autoCollapse: autoCollapse(n) + }); break; } - case SyntaxKind.ClassDeclaration: - case SyntaxKind.InterfaceDeclaration: - case SyntaxKind.EnumDeclaration: - case SyntaxKind.ObjectLiteralExpression: - case SyntaxKind.CaseBlock: { - const openBrace = findChildOfKind(n, SyntaxKind.OpenBraceToken, sourceFile); - const closeBrace = findChildOfKind(n, SyntaxKind.CloseBraceToken, sourceFile); - addOutliningSpan(n, openBrace, closeBrace, autoCollapse(n)); - break; - } - case SyntaxKind.ArrayLiteralExpression: - const openBracket = findChildOfKind(n, SyntaxKind.OpenBracketToken, sourceFile); - const closeBracket = findChildOfKind(n, SyntaxKind.CloseBracketToken, sourceFile); - addOutliningSpan(n, openBracket, closeBracket, autoCollapse(n)); - break; + // Fallthrough. + + case SyntaxKind.ModuleBlock: { + const openBrace = findChildOfKind(n, SyntaxKind.OpenBraceToken, sourceFile); + const closeBrace = findChildOfKind(n, SyntaxKind.CloseBraceToken, sourceFile); + addOutliningSpan(n.parent, openBrace, closeBrace, autoCollapse(n)); + break; } - depth++; - forEachChild(n, walk); - depth--; + case SyntaxKind.ClassDeclaration: + case SyntaxKind.InterfaceDeclaration: + case SyntaxKind.EnumDeclaration: + case SyntaxKind.ObjectLiteralExpression: + case SyntaxKind.CaseBlock: { + const openBrace = findChildOfKind(n, SyntaxKind.OpenBraceToken, sourceFile); + const closeBrace = findChildOfKind(n, SyntaxKind.CloseBraceToken, sourceFile); + addOutliningSpan(n, openBrace, closeBrace, autoCollapse(n)); + break; + } + case SyntaxKind.ArrayLiteralExpression: + const openBracket = findChildOfKind(n, SyntaxKind.OpenBracketToken, sourceFile); + const closeBracket = findChildOfKind(n, SyntaxKind.CloseBracketToken, sourceFile); + addOutliningSpan(n, openBracket, closeBracket, autoCollapse(n)); + break; } - - walk(sourceFile); - return elements; + depth++; + forEachChild(n, walk); + depth--; } + + walk(sourceFile); + return elements; } } \ No newline at end of file From 9c61e53a78afe0615fa82fb96e60e68b106f88d4 Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Mon, 28 Dec 2015 17:11:55 -0500 Subject: [PATCH 17/23] Allow tagged boolean arguments to be followed with a colon. --- scripts/tslint/booleanTriviaRule.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/scripts/tslint/booleanTriviaRule.ts b/scripts/tslint/booleanTriviaRule.ts index 93c312ab870..756728a1a11 100644 --- a/scripts/tslint/booleanTriviaRule.ts +++ b/scripts/tslint/booleanTriviaRule.ts @@ -26,7 +26,9 @@ class BooleanTriviaWalker extends Lint.RuleWalker { for (let index = 0; index < targetParameters.length; index++) { const param = targetParameters[index]; const arg = node.arguments[index]; - if (!(arg && param)) continue; + if (!(arg && param)) { + continue; + } const argType = this.checker.getContextualType(arg); if (argType && (argType.getFlags() & ts.TypeFlags.Boolean)) { @@ -38,7 +40,9 @@ class BooleanTriviaWalker extends Lint.RuleWalker { if (ranges && ranges.length === 1 && ranges[0].kind === ts.SyntaxKind.MultiLineCommentTrivia) { triviaContent = arg.getFullText().slice(ranges[0].pos + 2, ranges[0].end - 2); // +/-2 to remove /**/ } - if (triviaContent !== param.getName()) { + + const paramName = param.getName(); + if (triviaContent !== paramName && triviaContent !== paramName + ":") { this.addFailure(this.createFailure(arg.getStart(source), arg.getWidth(source), Rule.FAILURE_STRING_FACTORY(param.getName(), triviaContent))); } } From 2032c6d18ae1e330edd9eae11cd3cda1d9f15a3f Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Mon, 28 Dec 2015 17:21:03 -0500 Subject: [PATCH 18/23] Lint 'patternMatcher.ts'. --- Jakefile.js | 1 + src/services/patternMatcher.ts | 211 ++++++++++++--------------------- 2 files changed, 79 insertions(+), 133 deletions(-) diff --git a/Jakefile.js b/Jakefile.js index ad904fc3ea4..bfb80982237 100644 --- a/Jakefile.js +++ b/Jakefile.js @@ -925,6 +925,7 @@ var servicesLintTargets = [ "services.ts", "outliningElementsCollector.ts", "navigateTo.ts", + "patternMatcher.ts", ].map(function (s) { return path.join(servicesDirectory, s); }); diff --git a/src/services/patternMatcher.ts b/src/services/patternMatcher.ts index ea433867c46..3663b1a1d09 100644 --- a/src/services/patternMatcher.ts +++ b/src/services/patternMatcher.ts @@ -8,10 +8,10 @@ namespace ts { camelCase } - // Information about a match made by the pattern matcher between a candidate and the + // Information about a match made by the pattern matcher between a candidate and the // search pattern. export interface PatternMatch { - // What kind of match this was. Exact matches are better than prefix matches which are + // What kind of match this was. Exact matches are better than prefix matches which are // better than substring matches which are better than CamelCase matches. kind: PatternMatchKind; @@ -19,7 +19,7 @@ namespace ts { // it was a better match. camelCaseWeight?: number; - // If this was a match where all constituent parts of the candidate and search pattern + // If this was a match where all constituent parts of the candidate and search pattern // matched case sensitively or case insensitively. Case sensitive matches of the kind // are better matches than insensitive matches. isCaseSensitive: boolean; @@ -35,7 +35,7 @@ namespace ts { // once you no longer need it. export interface PatternMatcher { // Used to match a candidate against the last segment of a possibly dotted pattern. This - // is useful as a quick check to prevent having to compute a container before calling + // is useful as a quick check to prevent having to compute a container before calling // "getMatches". // // For example, if the search pattern is "ts.c.SK" and the candidate is "SyntaxKind", then @@ -55,8 +55,8 @@ namespace ts { } // First we break up the pattern given by dots. Each portion of the pattern between the - // dots is a 'Segment'. The 'Segment' contains information about the entire section of - // text between the dots, as well as information about any individual 'Words' that we + // dots is a 'Segment'. The 'Segment' contains information about the entire section of + // text between the dots, as well as information about any individual 'Words' that we // can break the segment into. A 'Word' is simply a contiguous sequence of characters // that can appear in a typescript identifier. So "GetKeyword" would be one word, while // "Get Keyword" would be two words. Once we have the individual 'words', we break those @@ -64,20 +64,20 @@ namespace ts { // word, it make character spans corresponding to "U", "I" and "Element". These spans // are then used when doing camel cased matches against candidate patterns. interface Segment { - // Information about the entire piece of text between the dots. For example, if the - // text between the dots is 'GetKeyword', then TotalTextChunk.Text will be 'GetKeyword' and + // Information about the entire piece of text between the dots. For example, if the + // text between the dots is 'GetKeyword', then TotalTextChunk.Text will be 'GetKeyword' and // TotalTextChunk.CharacterSpans will correspond to 'Get', 'Keyword'. totalTextChunk: TextChunk; - // Information about the subwords compromising the total word. For example, if the - // text between the dots is 'GetFoo KeywordBar', then the subwords will be 'GetFoo' - // and 'KeywordBar'. Those individual words will have CharacterSpans of ('Get' and - // 'Foo') and('Keyword' and 'Bar') respectively. + // Information about the subwords compromising the total word. For example, if the + // text between the dots is 'GetFoo KeywordBar', then the subwords will be 'GetFoo' + // and 'KeywordBar'. Those individual words will have CharacterSpans of ('Get' and + // 'Foo') and('Keyword' and 'Bar') respectively. subWordTextChunks: TextChunk[]; } - // Information about a chunk of text from the pattern. The chunk is a piece of text, with - // cached information about the character spans within in. Character spans are used for + // Information about a chunk of text from the pattern. The chunk is a piece of text, with + // cached information about the character spans within in. Character spans are used for // camel case matching. interface TextChunk { // The text of the chunk. This should be a contiguous sequence of character that could @@ -92,7 +92,7 @@ namespace ts { // for something entirely lowercase or not. isLowerCase: boolean; - // The spans in this text chunk that we think are of interest and should be matched + // The spans in this text chunk that we think are of interest and should be matched // independently. For example, if the chunk is for "UIElement" the the spans of interest // correspond to "U", "I" and "Element". If "UIElement" isn't found as an exaxt, prefix. // or substring match, then the character spans will be used to attempt a camel case match. @@ -110,20 +110,19 @@ namespace ts { export function createPatternMatcher(pattern: string): PatternMatcher { // We'll often see the same candidate string many times when searching (For example, when - // we see the name of a module that is used everywhere, or the name of an overload). As - // such, we cache the information we compute about the candidate for the life of this + // we see the name of a module that is used everywhere, or the name of an overload). As + // such, we cache the information we compute about the candidate for the life of this // pattern matcher so we don't have to compute it multiple times. - let stringToWordSpans: Map = {}; + const stringToWordSpans: Map = {}; pattern = pattern.trim(); - let fullPatternSegment = createSegment(pattern); - let dotSeparatedSegments = pattern.split(".").map(p => createSegment(p.trim())); - let invalidPattern = dotSeparatedSegments.length === 0 || forEach(dotSeparatedSegments, segmentIsInvalid); + const dotSeparatedSegments = pattern.split(".").map(p => createSegment(p.trim())); + const invalidPattern = dotSeparatedSegments.length === 0 || forEach(dotSeparatedSegments, segmentIsInvalid); return { getMatches, - getMatchesForLastSegmentOfPattern, + getMatchesForLastSegmentOfPattern, patternContainsDots: dotSeparatedSegments.length > 1 }; @@ -131,7 +130,7 @@ namespace ts { function skipMatch(candidate: string) { return invalidPattern || !candidate; } - + function getMatchesForLastSegmentOfPattern(candidate: string): PatternMatch[] { if (skipMatch(candidate)) { return undefined; @@ -148,7 +147,7 @@ namespace ts { // First, check that the last part of the dot separated pattern matches the name of the // candidate. If not, then there's no point in proceeding and doing the more // expensive work. - let candidateMatch = matchSegment(candidate, lastOrUndefined(dotSeparatedSegments)); + const candidateMatch = matchSegment(candidate, lastOrUndefined(dotSeparatedSegments)); if (!candidateMatch) { return undefined; } @@ -165,16 +164,16 @@ namespace ts { // So far so good. Now break up the container for the candidate and check if all // the dotted parts match up correctly. - let totalMatch = candidateMatch; + const totalMatch = candidateMatch; for (let i = dotSeparatedSegments.length - 2, j = candidateContainers.length - 1; i >= 0; i--, j--) { - let segment = dotSeparatedSegments[i]; - let containerName = candidateContainers[j]; + const segment = dotSeparatedSegments[i]; + const containerName = candidateContainers[j]; - let containerMatch = matchSegment(containerName, segment); + const containerMatch = matchSegment(containerName, segment); if (!containerMatch) { // This container didn't match the pattern piece. So there's no match at all. return undefined; @@ -197,7 +196,7 @@ namespace ts { } function matchTextChunk(candidate: string, chunk: TextChunk, punctuationStripped: boolean): PatternMatch { - let index = indexOfIgnoringCase(candidate, chunk.textLowerCase); + const index = indexOfIgnoringCase(candidate, chunk.textLowerCase); if (index === 0) { if (chunk.text.length === candidate.length) { // a) Check if the part matches the candidate entirely, in an case insensitive or @@ -211,18 +210,18 @@ namespace ts { } } - let isLowercase = chunk.isLowerCase; + const isLowercase = chunk.isLowerCase; if (isLowercase) { if (index > 0) { // c) If the part is entirely lowercase, then check if it is contained anywhere in the // candidate in a case insensitive manner. If so, return that there was a substring - // match. + // match. // // Note: We only have a substring match if the lowercase part is prefix match of some // word part. That way we don't match something like 'Class' when the user types 'a'. // But we would match 'FooAttribute' (since 'Attribute' starts with 'a'). - let wordSpans = getWordSpans(candidate); - for (let span of wordSpans) { + const wordSpans = getWordSpans(candidate); + for (const span of wordSpans) { if (partStartsWith(candidate, span, chunk.text, /*ignoreCase:*/ true)) { return createPatternMatch(PatternMatchKind.substring, punctuationStripped, /*isCaseSensitive:*/ partStartsWith(candidate, span, chunk.text, /*ignoreCase:*/ false)); @@ -242,7 +241,7 @@ namespace ts { if (!isLowercase) { // e) If the part was not entirely lowercase, then attempt a camel cased match as well. if (chunk.characterSpans.length > 0) { - let candidateParts = getWordSpans(candidate); + const candidateParts = getWordSpans(candidate); let camelCaseWeight = tryCamelCaseMatch(candidate, candidateParts, chunk, /*ignoreCase:*/ false); if (camelCaseWeight !== undefined) { return createPatternMatch(PatternMatchKind.camelCase, punctuationStripped, /*isCaseSensitive:*/ true, /*camelCaseWeight:*/ camelCaseWeight); @@ -259,8 +258,8 @@ namespace ts { // f) Is the pattern a substring of the candidate starting on one of the candidate's word boundaries? // We could check every character boundary start of the candidate for the pattern. However, that's - // an m * n operation in the wost case. Instead, find the first instance of the pattern - // substring, and see if it starts on a capital letter. It seems unlikely that the user will try to + // an m * n operation in the wost case. Instead, find the first instance of the pattern + // substring, and see if it starts on a capital letter. It seems unlikely that the user will try to // filter the list based on a substring that starts on a capital letter and also with a lowercase one. // (Pattern: fogbar, Candidate: quuxfogbarFogBar). if (chunk.text.length < candidate.length) { @@ -275,7 +274,7 @@ namespace ts { function containsSpaceOrAsterisk(text: string): boolean { for (let i = 0; i < text.length; i++) { - let ch = text.charCodeAt(i); + const ch = text.charCodeAt(i); if (ch === CharacterCodes.space || ch === CharacterCodes.asterisk) { return true; } @@ -293,7 +292,7 @@ namespace ts { // Note: if the segment contains a space or an asterisk then we must assume that it's a // multi-word segment. if (!containsSpaceOrAsterisk(segment.totalTextChunk.text)) { - let match = matchTextChunk(candidate, segment.totalTextChunk, /*punctuationStripped:*/ false); + const match = matchTextChunk(candidate, segment.totalTextChunk, /*punctuationStripped:*/ false); if (match) { return [match]; } @@ -317,7 +316,7 @@ namespace ts { // // c) If the word is entirely lowercase, then check if it is contained anywhere in the // candidate in a case insensitive manner. If so, return that there was a substring - // match. + // match. // // Note: We only have a substring match if the lowercase part is prefix match of // some word part. That way we don't match something like 'Class' when the user @@ -331,17 +330,17 @@ namespace ts { // e) If the word was not entirely lowercase, then attempt a camel cased match as // well. // - // f) The word is all lower case. Is it a case insensitive substring of the candidate starting + // f) The word is all lower case. Is it a case insensitive substring of the candidate starting // on a part boundary of the candidate? // // Only if all words have some sort of match is the pattern considered matched. - let subWordTextChunks = segment.subWordTextChunks; + const subWordTextChunks = segment.subWordTextChunks; let matches: PatternMatch[] = undefined; - for (let subWordTextChunk of subWordTextChunks) { + for (const subWordTextChunk of subWordTextChunks) { // Try to match the candidate with this word - let result = matchTextChunk(candidate, subWordTextChunk, /*punctuationStripped:*/ true); + const result = matchTextChunk(candidate, subWordTextChunk, /*punctuationStripped:*/ true); if (!result) { return undefined; } @@ -354,18 +353,18 @@ namespace ts { } function partStartsWith(candidate: string, candidateSpan: TextSpan, pattern: string, ignoreCase: boolean, patternSpan?: TextSpan): boolean { - let patternPartStart = patternSpan ? patternSpan.start : 0; - let patternPartLength = patternSpan ? patternSpan.length : pattern.length; + const patternPartStart = patternSpan ? patternSpan.start : 0; + const patternPartLength = patternSpan ? patternSpan.length : pattern.length; if (patternPartLength > candidateSpan.length) { // Pattern part is longer than the candidate part. There can never be a match. return false; } - + if (ignoreCase) { for (let i = 0; i < patternPartLength; i++) { - let ch1 = pattern.charCodeAt(patternPartStart + i); - let ch2 = candidate.charCodeAt(candidateSpan.start + i); + const ch1 = pattern.charCodeAt(patternPartStart + i); + const ch2 = candidate.charCodeAt(candidateSpan.start + i); if (toLowerCase(ch1) !== toLowerCase(ch2)) { return false; } @@ -373,8 +372,8 @@ namespace ts { } else { for (let i = 0; i < patternPartLength; i++) { - let ch1 = pattern.charCodeAt(patternPartStart + i); - let ch2 = candidate.charCodeAt(candidateSpan.start + i); + const ch1 = pattern.charCodeAt(patternPartStart + i); + const ch2 = candidate.charCodeAt(candidateSpan.start + i); if (ch1 !== ch2) { return false; } @@ -385,12 +384,12 @@ namespace ts { } function tryCamelCaseMatch(candidate: string, candidateParts: TextSpan[], chunk: TextChunk, ignoreCase: boolean): number { - let chunkCharacterSpans = chunk.characterSpans; + const chunkCharacterSpans = chunk.characterSpans; // Note: we may have more pattern parts than candidate parts. This is because multiple // pattern parts may match a candidate part. For example "SiUI" against "SimpleUI". // We'll have 3 pattern parts Si/U/I against two candidate parts Simple/UI. However, U - // and I will both match in UI. + // and I will both match in UI. let currentCandidate = 0; let currentChunkSpan = 0; @@ -426,14 +425,14 @@ namespace ts { // Consider the case of matching SiUI against SimpleUIElement. The candidate parts // will be Simple/UI/Element, and the pattern parts will be Si/U/I. We'll match 'Si' // against 'Simple' first. Then we'll match 'U' against 'UI'. However, we want to - // still keep matching pattern parts against that candidate part. + // still keep matching pattern parts against that candidate part. for (; currentChunkSpan < chunkCharacterSpans.length; currentChunkSpan++) { - let chunkCharacterSpan = chunkCharacterSpans[currentChunkSpan]; + const chunkCharacterSpan = chunkCharacterSpans[currentChunkSpan]; if (gotOneMatchThisCandidate) { // We've already gotten one pattern part match in this candidate. We will // only continue trying to consumer pattern parts if the last part and this - // part are both upper case. + // part are both upper case. if (!isUpperCaseLetter(chunk.text.charCodeAt(chunkCharacterSpans[currentChunkSpan - 1].start)) || !isUpperCaseLetter(chunk.text.charCodeAt(chunkCharacterSpans[currentChunkSpan].start))) { break; @@ -470,55 +469,11 @@ namespace ts { } } - // Helper function to compare two matches to determine which is better. Matches are first - // ordered by kind (so all prefix matches always beat all substring matches). Then, if the - // match is a camel case match, the relative weights of the match are used to determine - // which is better (with a greater weight being better). Then if the match is of the same - // type, then a case sensitive match is considered better than an insensitive one. - function patternMatchCompareTo(match1: PatternMatch, match2: PatternMatch): number { - return compareType(match1, match2) || - compareCamelCase(match1, match2) || - compareCase(match1, match2) || - comparePunctuation(match1, match2); - } - - function comparePunctuation(result1: PatternMatch, result2: PatternMatch) { - // Consider a match to be better if it was successful without stripping punctuation - // versus a match that had to strip punctuation to succeed. - if (result1.punctuationStripped !== result2.punctuationStripped) { - return result1.punctuationStripped ? 1 : -1; - } - - return 0; - } - - function compareCase(result1: PatternMatch, result2: PatternMatch) { - if (result1.isCaseSensitive !== result2.isCaseSensitive) { - return result1.isCaseSensitive ? -1 : 1; - } - - return 0; - } - - function compareType(result1: PatternMatch, result2: PatternMatch) { - return result1.kind - result2.kind; - } - - function compareCamelCase(result1: PatternMatch, result2: PatternMatch) { - if (result1.kind === PatternMatchKind.camelCase && result2.kind === PatternMatchKind.camelCase) { - // Swap the values here. If result1 has a higher weight, then we want it to come - // first. - return result2.camelCaseWeight - result1.camelCaseWeight; - } - - return 0; - } - function createSegment(text: string): Segment { return { totalTextChunk: createTextChunk(text), subWordTextChunks: breakPatternIntoTextChunks(text) - } + }; } // A segment is considered invalid if we couldn't find any words in it. @@ -536,9 +491,9 @@ namespace ts { return false; } - // TODO: find a way to determine this for any unicode characters in a + // TODO: find a way to determine this for any unicode characters in a // non-allocating manner. - let str = String.fromCharCode(ch); + const str = String.fromCharCode(ch); return str === str.toUpperCase(); } @@ -553,22 +508,12 @@ namespace ts { } - // TODO: find a way to determine this for any unicode characters in a + // TODO: find a way to determine this for any unicode characters in a // non-allocating manner. - let str = String.fromCharCode(ch); + const str = String.fromCharCode(ch); return str === str.toLowerCase(); } - function containsUpperCaseLetter(string: string): boolean { - for (let i = 0, n = string.length; i < n; i++) { - if (isUpperCaseLetter(string.charCodeAt(i))) { - return true; - } - } - - return false; - } - function startsWith(string: string, search: string) { for (let i = 0, n = search.length; i < n; i++) { if (string.charCodeAt(i) !== search.charCodeAt(i)) { @@ -593,8 +538,8 @@ namespace ts { // Assumes 'value' is already lowercase. function startsWithIgnoringCase(string: string, value: string, start: number): boolean { for (let i = 0, n = value.length; i < n; i++) { - let ch1 = toLowerCase(string.charCodeAt(i + start)); - let ch2 = value.charCodeAt(i); + const ch1 = toLowerCase(string.charCodeAt(i + start)); + const ch2 = value.charCodeAt(i); if (ch1 !== ch2) { return false; @@ -614,7 +559,7 @@ namespace ts { return ch; } - // TODO: find a way to compute this for any unicode characters in a + // TODO: find a way to compute this for any unicode characters in a // non-allocating manner. return String.fromCharCode(ch).toLowerCase().charCodeAt(0); } @@ -629,12 +574,12 @@ namespace ts { } function breakPatternIntoTextChunks(pattern: string): TextChunk[] { - let result: TextChunk[] = []; + const result: TextChunk[] = []; let wordStart = 0; let wordLength = 0; for (let i = 0; i < pattern.length; i++) { - let ch = pattern.charCodeAt(i); + const ch = pattern.charCodeAt(i); if (isWordChar(ch)) { if (wordLength++ === 0) { wordStart = i; @@ -656,13 +601,13 @@ namespace ts { } function createTextChunk(text: string): TextChunk { - let textLowerCase = text.toLowerCase(); + const textLowerCase = text.toLowerCase(); return { text, textLowerCase, isLowerCase: text === textLowerCase, characterSpans: breakIntoCharacterSpans(text) - } + }; } /* @internal */ export function breakIntoCharacterSpans(identifier: string): TextSpan[] { @@ -674,15 +619,15 @@ namespace ts { } function breakIntoSpans(identifier: string, word: boolean): TextSpan[] { - let result: TextSpan[] = []; + const result: TextSpan[] = []; let wordStart = 0; for (let i = 1, n = identifier.length; i < n; i++) { - let lastIsDigit = isDigit(identifier.charCodeAt(i - 1)); - let currentIsDigit = isDigit(identifier.charCodeAt(i)); + const lastIsDigit = isDigit(identifier.charCodeAt(i - 1)); + const currentIsDigit = isDigit(identifier.charCodeAt(i)); - let hasTransitionFromLowerToUpper = transitionFromLowerToUpper(identifier, word, i); - let hasTransitionFromUpperToLower = transitionFromUpperToLower(identifier, word, i, wordStart); + const hasTransitionFromLowerToUpper = transitionFromLowerToUpper(identifier, word, i); + const hasTransitionFromUpperToLower = transitionFromUpperToLower(identifier, word, i, wordStart); if (charIsPunctuation(identifier.charCodeAt(i - 1)) || charIsPunctuation(identifier.charCodeAt(i)) || @@ -738,7 +683,7 @@ namespace ts { function isAllPunctuation(identifier: string, start: number, end: number): boolean { for (let i = start; i < end; i++) { - let ch = identifier.charCodeAt(i); + const ch = identifier.charCodeAt(i); // We don't consider _ or $ as punctuation as there may be things with that name. if (!charIsPunctuation(ch) || ch === CharacterCodes._ || ch === CharacterCodes.$) { @@ -759,8 +704,8 @@ namespace ts { // etc. if (index !== wordStart && index + 1 < identifier.length) { - let currentIsUpper = isUpperCaseLetter(identifier.charCodeAt(index)); - let nextIsLower = isLowerCaseLetter(identifier.charCodeAt(index + 1)); + const currentIsUpper = isUpperCaseLetter(identifier.charCodeAt(index)); + const nextIsLower = isLowerCaseLetter(identifier.charCodeAt(index + 1)); if (currentIsUpper && nextIsLower) { // We have a transition from an upper to a lower letter here. But we only @@ -786,12 +731,12 @@ namespace ts { } function transitionFromLowerToUpper(identifier: string, word: boolean, index: number): boolean { - let lastIsUpper = isUpperCaseLetter(identifier.charCodeAt(index - 1)); - let currentIsUpper = isUpperCaseLetter(identifier.charCodeAt(index)); + const lastIsUpper = isUpperCaseLetter(identifier.charCodeAt(index - 1)); + const currentIsUpper = isUpperCaseLetter(identifier.charCodeAt(index)); // See if the casing indicates we're starting a new word. Note: if we're breaking on // words, then just seeing an upper case character isn't enough. Instead, it has to - // be uppercase and the previous character can't be uppercase. + // be uppercase and the previous character can't be uppercase. // // For example, breaking "AddMetadata" on words would make: Add Metadata // @@ -802,7 +747,7 @@ namespace ts { // on characters would be: A M // // We break the search string on characters. But we break the symbol name on words. - let transition = word + const transition = word ? (currentIsUpper && !lastIsUpper) : currentIsUpper; return transition; From e12855bca02541ed3815175e7ba80cd64ac86af8 Mon Sep 17 00:00:00 2001 From: Ryan Cavanaugh Date: Tue, 29 Dec 2015 12:39:27 -0800 Subject: [PATCH 19/23] Escape quotes when they appear as HTML entities in JSX text Fixes #6241 --- src/compiler/emitter.ts | 4 +++- tests/baselines/reference/tsxReactEmitEntities.js | 2 ++ tests/baselines/reference/tsxReactEmitEntities.symbols | 4 ++++ tests/baselines/reference/tsxReactEmitEntities.types | 5 +++++ tests/cases/conformance/jsx/tsxReactEmitEntities.tsx | 1 + 5 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 996dac118ef..77a9b658f74 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -7221,7 +7221,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi // Replace entities like   result = result.replace(/&(\w+);/g, function(s: any, m: string) { if (entities[m] !== undefined) { - return String.fromCharCode(entities[m]); + let ch = String.fromCharCode(entities[m]); + // " needs to be escaped + return ch === '"' ? '\\"' : ch; } else { return s; diff --git a/tests/baselines/reference/tsxReactEmitEntities.js b/tests/baselines/reference/tsxReactEmitEntities.js index c1fba50fd8f..a20f3380bf7 100644 --- a/tests/baselines/reference/tsxReactEmitEntities.js +++ b/tests/baselines/reference/tsxReactEmitEntities.js @@ -8,7 +8,9 @@ declare module JSX { declare var React: any;
Dot goes here: · ¬AnEntity;
; +
Be careful of "-ed strings!
; //// [file.js] React.createElement("div", null, "Dot goes here: ยท ¬AnEntity; "); +React.createElement("div", null, "Be careful of \"-ed strings!"); diff --git a/tests/baselines/reference/tsxReactEmitEntities.symbols b/tests/baselines/reference/tsxReactEmitEntities.symbols index b633f57ec13..5a0274029e4 100644 --- a/tests/baselines/reference/tsxReactEmitEntities.symbols +++ b/tests/baselines/reference/tsxReactEmitEntities.symbols @@ -19,3 +19,7 @@ declare var React: any; >div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22)) >div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22)) +
Be careful of "-ed strings!
; +>div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22)) +>div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22)) + diff --git a/tests/baselines/reference/tsxReactEmitEntities.types b/tests/baselines/reference/tsxReactEmitEntities.types index d6d6c285d79..111653ea140 100644 --- a/tests/baselines/reference/tsxReactEmitEntities.types +++ b/tests/baselines/reference/tsxReactEmitEntities.types @@ -20,3 +20,8 @@ declare var React: any; >div : any >div : any +
Be careful of "-ed strings!
; +>
Be careful of "-ed strings!
: JSX.Element +>div : any +>div : any + diff --git a/tests/cases/conformance/jsx/tsxReactEmitEntities.tsx b/tests/cases/conformance/jsx/tsxReactEmitEntities.tsx index 4b7dc5780f8..4726008d6be 100644 --- a/tests/cases/conformance/jsx/tsxReactEmitEntities.tsx +++ b/tests/cases/conformance/jsx/tsxReactEmitEntities.tsx @@ -9,3 +9,4 @@ declare module JSX { declare var React: any;
Dot goes here: · ¬AnEntity;
; +
Be careful of "-ed strings!
; From 3288f5bb6d42b17315ac2a35d4f447adb09836ed Mon Sep 17 00:00:00 2001 From: Ryan Cavanaugh Date: Tue, 29 Dec 2015 13:16:00 -0800 Subject: [PATCH 20/23] Make linter happy --- src/compiler/emitter.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 77a9b658f74..c266a0fa77e 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -7221,9 +7221,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi // Replace entities like   result = result.replace(/&(\w+);/g, function(s: any, m: string) { if (entities[m] !== undefined) { - let ch = String.fromCharCode(entities[m]); + const ch = String.fromCharCode(entities[m]); // " needs to be escaped - return ch === '"' ? '\\"' : ch; + return ch === "\"" ? "\\\"" : ch; } else { return s; From 80a16de570a25c6bd6bc69a668cdcf15d8f1b993 Mon Sep 17 00:00:00 2001 From: Ryan Cavanaugh Date: Tue, 29 Dec 2015 14:43:57 -0800 Subject: [PATCH 21/23] Tag the 'react' import as used even under --jsx preserve Fixes #5865 --- src/compiler/checker.ts | 14 ++++++-------- tests/baselines/reference/tsxPreserveEmit1.js | 2 +- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 5d57e9d2028..145478693a1 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -8363,14 +8363,12 @@ namespace ts { checkGrammarJsxElement(node); checkJsxPreconditions(node); - // If we're compiling under --jsx react, the symbol 'React' should - // be marked as 'used' so we don't incorrectly elide its import. And if there - // is no 'React' symbol in scope, we should issue an error. - if (compilerOptions.jsx === JsxEmit.React) { - const reactSym = resolveName(node.tagName, "React", SymbolFlags.Value, Diagnostics.Cannot_find_name_0, "React"); - if (reactSym) { - getSymbolLinks(reactSym).referenced = true; - } + // The symbol 'React' should be marked as 'used' so we don't incorrectly elide its import. And if there + // is no 'React' symbol in scope when targeting React emit, we should issue an error. + const reactRefErr = compilerOptions.jsx === JsxEmit.React ? Diagnostics.Cannot_find_name_0 : undefined; + const reactSym = resolveName(node.tagName, "React", SymbolFlags.Value, reactRefErr, "React"); + if (reactSym) { + getSymbolLinks(reactSym).referenced = true; } const targetAttributesType = getJsxElementAttributesType(node); diff --git a/tests/baselines/reference/tsxPreserveEmit1.js b/tests/baselines/reference/tsxPreserveEmit1.js index 7ac6c18ebca..6d795c946c3 100644 --- a/tests/baselines/reference/tsxPreserveEmit1.js +++ b/tests/baselines/reference/tsxPreserveEmit1.js @@ -34,7 +34,7 @@ module M { //// [test.jsx] -define(["require", "exports", 'react-router'], function (require, exports, ReactRouter) { +define(["require", "exports", 'react', 'react-router'], function (require, exports, React, ReactRouter) { "use strict"; var Route = ReactRouter.Route; var routes1 = ; From 7b36432cf0ea587f9891ab95a8ac903f0271e22e Mon Sep 17 00:00:00 2001 From: Ryan Cavanaugh Date: Tue, 29 Dec 2015 14:57:22 -0800 Subject: [PATCH 22/23] Add test to verify no error when 'React' is not in scope --- tests/baselines/reference/tsxPreserveEmit2.js | 10 ++++++++++ tests/baselines/reference/tsxPreserveEmit2.symbols | 10 ++++++++++ tests/baselines/reference/tsxPreserveEmit2.types | 11 +++++++++++ tests/cases/conformance/jsx/tsxPreserveEmit2.tsx | 8 ++++++++ 4 files changed, 39 insertions(+) create mode 100644 tests/baselines/reference/tsxPreserveEmit2.js create mode 100644 tests/baselines/reference/tsxPreserveEmit2.symbols create mode 100644 tests/baselines/reference/tsxPreserveEmit2.types create mode 100644 tests/cases/conformance/jsx/tsxPreserveEmit2.tsx diff --git a/tests/baselines/reference/tsxPreserveEmit2.js b/tests/baselines/reference/tsxPreserveEmit2.js new file mode 100644 index 00000000000..6a87da7b285 --- /dev/null +++ b/tests/baselines/reference/tsxPreserveEmit2.js @@ -0,0 +1,10 @@ +//// [test.tsx] + + +var Route: any; +var routes1 = ; + + +//// [test.jsx] +var Route; +var routes1 = ; diff --git a/tests/baselines/reference/tsxPreserveEmit2.symbols b/tests/baselines/reference/tsxPreserveEmit2.symbols new file mode 100644 index 00000000000..4013b2e35ea --- /dev/null +++ b/tests/baselines/reference/tsxPreserveEmit2.symbols @@ -0,0 +1,10 @@ +=== tests/cases/conformance/jsx/test.tsx === + + +var Route: any; +>Route : Symbol(Route, Decl(test.tsx, 2, 3)) + +var routes1 = ; +>routes1 : Symbol(routes1, Decl(test.tsx, 3, 3)) +>Route : Symbol(Route, Decl(test.tsx, 2, 3)) + diff --git a/tests/baselines/reference/tsxPreserveEmit2.types b/tests/baselines/reference/tsxPreserveEmit2.types new file mode 100644 index 00000000000..c01f564ff53 --- /dev/null +++ b/tests/baselines/reference/tsxPreserveEmit2.types @@ -0,0 +1,11 @@ +=== tests/cases/conformance/jsx/test.tsx === + + +var Route: any; +>Route : any + +var routes1 = ; +>routes1 : any +> : any +>Route : any + diff --git a/tests/cases/conformance/jsx/tsxPreserveEmit2.tsx b/tests/cases/conformance/jsx/tsxPreserveEmit2.tsx new file mode 100644 index 00000000000..978c96a2019 --- /dev/null +++ b/tests/cases/conformance/jsx/tsxPreserveEmit2.tsx @@ -0,0 +1,8 @@ +//@module: amd +//@jsx: preserve +//@target: ES5 + +//@Filename: test.tsx + +var Route: any; +var routes1 = ; From 7aa8ba6ba7dabc79e59904d45a9923d188ec285b Mon Sep 17 00:00:00 2001 From: Ryan Cavanaugh Date: Fri, 1 Jan 2016 09:24:07 -0800 Subject: [PATCH 23/23] Add test for non-used React import --- tests/baselines/reference/tsxPreserveEmit3.js | 24 ++++++++++++++++++ .../reference/tsxPreserveEmit3.symbols | 25 +++++++++++++++++++ .../reference/tsxPreserveEmit3.types | 25 +++++++++++++++++++ .../conformance/jsx/tsxPreserveEmit3.tsx | 17 +++++++++++++ 4 files changed, 91 insertions(+) create mode 100644 tests/baselines/reference/tsxPreserveEmit3.js create mode 100644 tests/baselines/reference/tsxPreserveEmit3.symbols create mode 100644 tests/baselines/reference/tsxPreserveEmit3.types create mode 100644 tests/cases/conformance/jsx/tsxPreserveEmit3.tsx diff --git a/tests/baselines/reference/tsxPreserveEmit3.js b/tests/baselines/reference/tsxPreserveEmit3.js new file mode 100644 index 00000000000..500b7d26c93 --- /dev/null +++ b/tests/baselines/reference/tsxPreserveEmit3.js @@ -0,0 +1,24 @@ +//// [tests/cases/conformance/jsx/tsxPreserveEmit3.tsx] //// + +//// [file.tsx] + +declare module JSX { + interface Element { } + interface IntrinsicElements { + [s: string]: any; + } +} + +//// [test.d.ts] +export var React; + +//// [react-consumer.tsx] +// This import should be elided +import {React} from "./test"; + + +//// [file.jsx] +//// [react-consumer.jsx] +define(["require", "exports"], function (require, exports) { + "use strict"; +}); diff --git a/tests/baselines/reference/tsxPreserveEmit3.symbols b/tests/baselines/reference/tsxPreserveEmit3.symbols new file mode 100644 index 00000000000..ab534241049 --- /dev/null +++ b/tests/baselines/reference/tsxPreserveEmit3.symbols @@ -0,0 +1,25 @@ +=== tests/cases/conformance/jsx/file.tsx === + +declare module JSX { +>JSX : Symbol(JSX, Decl(file.tsx, 0, 0)) + + interface Element { } +>Element : Symbol(Element, Decl(file.tsx, 1, 20)) + + interface IntrinsicElements { +>IntrinsicElements : Symbol(IntrinsicElements, Decl(file.tsx, 2, 22)) + + [s: string]: any; +>s : Symbol(s, Decl(file.tsx, 4, 3)) + } +} + +=== tests/cases/conformance/jsx/test.d.ts === +export var React; +>React : Symbol(React, Decl(test.d.ts, 0, 10)) + +=== tests/cases/conformance/jsx/react-consumer.tsx === +// This import should be elided +import {React} from "./test"; +>React : Symbol(React, Decl(react-consumer.tsx, 1, 8)) + diff --git a/tests/baselines/reference/tsxPreserveEmit3.types b/tests/baselines/reference/tsxPreserveEmit3.types new file mode 100644 index 00000000000..152f742a240 --- /dev/null +++ b/tests/baselines/reference/tsxPreserveEmit3.types @@ -0,0 +1,25 @@ +=== tests/cases/conformance/jsx/file.tsx === + +declare module JSX { +>JSX : any + + interface Element { } +>Element : Element + + interface IntrinsicElements { +>IntrinsicElements : IntrinsicElements + + [s: string]: any; +>s : string + } +} + +=== tests/cases/conformance/jsx/test.d.ts === +export var React; +>React : any + +=== tests/cases/conformance/jsx/react-consumer.tsx === +// This import should be elided +import {React} from "./test"; +>React : any + diff --git a/tests/cases/conformance/jsx/tsxPreserveEmit3.tsx b/tests/cases/conformance/jsx/tsxPreserveEmit3.tsx new file mode 100644 index 00000000000..d7565cacbe2 --- /dev/null +++ b/tests/cases/conformance/jsx/tsxPreserveEmit3.tsx @@ -0,0 +1,17 @@ +//@jsx: preserve +//@module: amd + +//@filename: file.tsx +declare module JSX { + interface Element { } + interface IntrinsicElements { + [s: string]: any; + } +} + +//@filename: test.d.ts +export var React; + +//@filename: react-consumer.tsx +// This import should be elided +import {React} from "./test";