tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(16,1): error TS6053: File 'tests/cases/conformance/parser/ecmascript5/RealWorld/formatting.ts' not found. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(20,38): error TS2304: Cannot find name 'ILineIndenationResolver'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(22,33): error TS2304: Cannot find name 'IndentationBag'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(24,42): error TS2304: Cannot find name 'Dictionary_int_int'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(27,28): error TS2304: Cannot find name 'TypeScript'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(28,26): error TS2304: Cannot find name 'ParseTree'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(29,30): error TS2304: Cannot find name 'ITextSnapshot'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(31,35): error TS2304: Cannot find name 'Services'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(32,32): error TS2304: Cannot find name 'TokenSpan'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(35,39): error TS2304: Cannot find name 'IndentationBag'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(37,48): error TS2304: Cannot find name 'Dictionary_int_int'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(47,43): error TS2304: Cannot find name 'TokenSpan'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(47,65): error TS2304: Cannot find name 'TokenSpan'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(47,82): error TS2304: Cannot find name 'ParseNode'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(47,119): error TS2304: Cannot find name 'List_TextEditInfo'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(60,133): error TS2304: Cannot find name 'TypeScript'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(67,49): error TS2304: Cannot find name 'TokenSpan'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(67,71): error TS2304: Cannot find name 'TokenSpan'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(67,88): error TS2304: Cannot find name 'ParseNode'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(67,125): error TS2304: Cannot find name 'List_TextEditInfo'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(68,30): error TS2304: Cannot find name 'List_TextEditInfo'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(69,34): error TS2304: Cannot find name 'IndentationInfo'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(110,40): error TS2304: Cannot find name 'AuthorTokenKind'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(110,113): error TS2304: Cannot find name 'AuthorTokenKind'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(140,40): error TS2304: Cannot find name 'AuthorTokenKind'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(152,51): error TS2304: Cannot find name 'TokenSpan'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(152,63): error TS2304: Cannot find name 'List_TextEditInfo'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(153,30): error TS2304: Cannot find name 'List_TextEditInfo'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(155,32): error TS2304: Cannot find name 'AuthorTokenKind'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(182,79): error TS2304: Cannot find name 'Services'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(183,20): error TS2304: Cannot find name 'GetIndentSizeFromText'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(186,67): error TS2304: Cannot find name 'Services'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(207,50): error TS2304: Cannot find name 'TokenSpan'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(207,67): error TS2304: Cannot find name 'ParseNode'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(207,79): error TS2304: Cannot find name 'IndentationInfo'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(208,34): error TS2304: Cannot find name 'IndentationInfo'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(211,22): error TS2304: Cannot find name 'AuthorTokenKind'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(215,22): error TS2304: Cannot find name 'AuthorTokenKind'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(216,22): error TS2304: Cannot find name 'AuthorTokenKind'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(220,22): error TS2304: Cannot find name 'AuthorTokenKind'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(222,57): error TS2304: Cannot find name 'AuthorParseNodeKind'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(222,119): error TS2304: Cannot find name 'AuthorParseNodeEdge'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(227,22): error TS2304: Cannot find name 'AuthorTokenKind'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(228,57): error TS2304: Cannot find name 'AuthorParseNodeKind'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(235,22): error TS2304: Cannot find name 'AuthorTokenKind'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(238,22): error TS2304: Cannot find name 'AuthorTokenKind'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(246,58): error TS2304: Cannot find name 'ParseNode'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(246,70): error TS2304: Cannot find name 'IndentationInfo'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(247,34): error TS2304: Cannot find name 'IndentationInfo'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(249,49): error TS2304: Cannot find name 'AuthorParseNodeKind'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(250,46): error TS2304: Cannot find name 'AuthorParseNodeEdge'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(250,107): error TS2304: Cannot find name 'AuthorParseNodeEdge'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(255,54): error TS2304: Cannot find name 'AuthorParseNodeKind'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(265,62): error TS2304: Cannot find name 'TokenSpan'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(265,79): error TS2304: Cannot find name 'ParseNode'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(265,91): error TS2304: Cannot find name 'IndentationInfo'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(266,34): error TS2304: Cannot find name 'IndentationInfo'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(274,53): error TS2304: Cannot find name 'AuthorParseNodeKind'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(278,50): error TS2304: Cannot find name 'Span'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(279,28): error TS2304: Cannot find name 'ParseTree'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(288,60): error TS2304: Cannot find name 'TokenSpan'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(288,77): error TS2304: Cannot find name 'ParseNode'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(288,89): error TS2304: Cannot find name 'IndentationInfo'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(289,34): error TS2304: Cannot find name 'IndentationInfo'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(292,59): error TS2304: Cannot find name 'Span'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(308,41): error TS2304: Cannot find name 'TokenSpan'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(308,58): error TS2304: Cannot find name 'ParseNode'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(310,22): error TS2304: Cannot find name 'AuthorParseNodeKind'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(311,22): error TS2304: Cannot find name 'AuthorParseNodeKind'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(312,22): error TS2304: Cannot find name 'AuthorParseNodeKind'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(313,22): error TS2304: Cannot find name 'AuthorParseNodeKind'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(314,22): error TS2304: Cannot find name 'AuthorParseNodeKind'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(315,22): error TS2304: Cannot find name 'AuthorParseNodeKind'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(316,22): error TS2304: Cannot find name 'AuthorParseNodeKind'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(317,22): error TS2304: Cannot find name 'AuthorParseNodeKind'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(318,22): error TS2304: Cannot find name 'AuthorParseNodeKind'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(319,22): error TS2304: Cannot find name 'AuthorParseNodeKind'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(320,22): error TS2304: Cannot find name 'AuthorParseNodeKind'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(321,22): error TS2304: Cannot find name 'AuthorParseNodeKind'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(324,22): error TS2304: Cannot find name 'AuthorParseNodeKind'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(331,36): error TS2304: Cannot find name 'ParseNodeExtensions'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(331,83): error TS2304: Cannot find name 'AuthorParseNodeEdge'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(343,84): error TS2304: Cannot find name 'ParseTree'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(396,43): error TS2304: Cannot find name 'IndentationInfo'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(396,114): error TS2304: Cannot find name 'TextEditInfo'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(400,28): error TS2304: Cannot find name 'TextEditInfo'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(404,45): error TS2304: Cannot find name 'Span'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(412,34): error TS2304: Cannot find name 'StringUtils'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(413,33): error TS2304: Cannot find name 'Debug'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(418,32): error TS2304: Cannot find name 'TextEditInfo'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(431,21): error TS2304: Cannot find name 'StringUtils'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(435,17): error TS2304: Cannot find name 'StringUtils'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(454,51): error TS2304: Cannot find name 'StringUtils'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(457,18): error TS2304: Cannot find name 'StringUtils'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(477,57): error TS2304: Cannot find name 'TokenSpan'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(477,74): error TS2304: Cannot find name 'ParseNode'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(477,86): error TS2304: Cannot find name 'IndentationInfo'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(478,34): error TS2304: Cannot find name 'IndentationInfo'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(484,89): error TS2304: Cannot find name 'AuthorParseNodeKind'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(494,84): error TS2304: Cannot find name 'IndentationInfo'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(497,41): error TS2304: Cannot find name 'Span'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(504,79): error TS2304: Cannot find name 'IndentationInfo'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(517,28): error TS2304: Cannot find name 'IndentationInfo'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(524,13): error TS2304: Cannot find name 'Debug'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(534,64): error TS2304: Cannot find name 'Span'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(556,69): error TS2304: Cannot find name 'Span'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(571,48): error TS2304: Cannot find name 'ParseTree'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(574,29): error TS2304: Cannot find name 'ParseNode'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(596,33): error TS2304: Cannot find name 'ParseNode'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(622,77): error TS2304: Cannot find name 'AuthorParseNodeKind'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(634,21): error TS2304: Cannot find name 'ParseNodeExtensions'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(665,34): error TS2304: Cannot find name 'IndentationEditInfo'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(686,45): error TS2304: Cannot find name 'TextEditInfo'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(688,34): error TS2304: Cannot find name 'IndentationEditInfo'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(695,35): error TS2304: Cannot find name 'IndentationEditInfo'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(698,39): error TS2304: Cannot find name 'IndentationEditInfo'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(706,42): error TS2304: Cannot find name 'TextEditInfo'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(709,50): error TS2304: Cannot find name 'TokenSpan'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(709,67): error TS2304: Cannot find name 'ParseNode'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(717,22): error TS2304: Cannot find name 'AuthorTokenKind'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(718,73): error TS2304: Cannot find name 'AuthorParseNodeKind'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(721,22): error TS2304: Cannot find name 'AuthorTokenKind'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(722,73): error TS2304: Cannot find name 'AuthorParseNodeKind'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(725,22): error TS2304: Cannot find name 'AuthorTokenKind'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(726,73): error TS2304: Cannot find name 'AuthorParseNodeKind'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(731,17): error TS2304: Cannot find name 'ParseNodeExtensions'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(735,42): error TS2304: Cannot find name 'TokenSpan'. tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts(736,38): error TS2304: Cannot find name 'TypeScript'. ==== tests/cases/conformance/parser/ecmascript5/RealWorld/parserindenter.ts (128 errors) ==== // // Copyright (c) Microsoft Corporation. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // /// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS6053: File 'formatting.ts' not found. module Formatting { export class Indenter implements ILineIndenationResolver { ~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'ILineIndenationResolver'. private indentationBag: IndentationBag; ~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'IndentationBag'. private scriptBlockBeginLineNumber: number; private offsetIndentationDeltas: Dictionary_int_int; ~~~~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'Dictionary_int_int'. constructor( public logger: TypeScript.ILogger, ~~~~~~~~~~ !!! error TS2304: Cannot find name 'TypeScript'. public tree: ParseTree, ~~~~~~~~~ !!! error TS2304: Cannot find name 'ParseTree'. public snapshot: ITextSnapshot, ~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'ITextSnapshot'. public languageHostIndentation: string, public editorOptions: Services.EditorOptions, ~~~~~~~~ !!! error TS2304: Cannot find name 'Services'. public firstToken: TokenSpan, ~~~~~~~~~ !!! error TS2304: Cannot find name 'TokenSpan'. public smartIndent: boolean) { this.indentationBag = new IndentationBag(this.snapshot); ~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'IndentationBag'. this.scriptBlockBeginLineNumber = -1; this.offsetIndentationDeltas = new Dictionary_int_int(); // text offset -> indentation delta ~~~~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'Dictionary_int_int'. // by default the root (program) has zero indendation this.tree.Root.SetIndentationOverride(""); this.ApplyScriptBlockIndentation(this.languageHostIndentation, this.tree); this.FillInheritedIndentation(this.tree); } public GetIndentationEdits(token: TokenSpan, nextToken: TokenSpan, node: ParseNode, sameLineIndent: boolean): List_TextEditInfo { ~~~~~~~~~ !!! error TS2304: Cannot find name 'TokenSpan'. ~~~~~~~~~ !!! error TS2304: Cannot find name 'TokenSpan'. ~~~~~~~~~ !!! error TS2304: Cannot find name 'ParseNode'. ~~~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'List_TextEditInfo'. if (this.logger.information()) { this.logger.log("GetIndentationEdits(" + "t1=[" + token.Span.startPosition() + "," + token.Span.endPosition()+ "], " + "t2=[" + (nextToken == null ? "null" : (nextToken.Span.startPosition() + "," + nextToken.Span.endPosition())) + "]" + ")"); } var result = this.GetIndentationEditsWorker(token, nextToken, node, sameLineIndent); if (this.logger.information()) { for (var i = 0; i < result.count() ; i++) { var edit = result.get(i); this.logger.log("edit: minChar=" + edit.position + ", limChar=" + (edit.position + edit.length) + ", text=\"" + TypeScript.stringToLiteral(edit.replaceWith, 30) + "\""); ~~~~~~~~~~ !!! error TS2304: Cannot find name 'TypeScript'. } } return result; } public GetIndentationEditsWorker(token: TokenSpan, nextToken: TokenSpan, node: ParseNode, sameLineIndent: boolean): List_TextEditInfo { ~~~~~~~~~ !!! error TS2304: Cannot find name 'TokenSpan'. ~~~~~~~~~ !!! error TS2304: Cannot find name 'TokenSpan'. ~~~~~~~~~ !!! error TS2304: Cannot find name 'ParseNode'. ~~~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'List_TextEditInfo'. var result = new List_TextEditInfo(); ~~~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'List_TextEditInfo'. var indentationInfo: IndentationInfo = null; ~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'IndentationInfo'. // This handles the case: // return ( // function() { // }) // The given function's node indicates that the function starts directly after "return (". // In this case, we adjust the span to point to the function keyword. // The same applies to objects and arrays. // The reason this is done inside the Indenter is because it only affects indentation behavior. // It's also done in ParseTree when we traverse up the tree because we don't have the // tokens for nodes outside the span we are formatting. this.AdjustStartOffsetIfNeeded(token, node); // Don't adjust indentation on the same line of a script block if (this.scriptBlockBeginLineNumber == token.lineNumber()) { return result; } // Don't indent multi-line strings if (!sameLineIndent && this.IsMultiLineString(token)) { return result; } // Special cases for the tokens that don't show up in the tree, such as curly braces and comments indentationInfo = this.GetSpecialCaseIndentation(token, node); if (indentationInfo == null) { //// For anything else // Get the indentation level only from the node that starts on the same offset as the token // otherwise the token is not meant to be indented while (!node.CanIndent() && node.Parent != null && token.Span.span.start() == node.Parent.AuthorNode.Details.StartOffset) node = node.Parent; if (node.CanIndent() && token.Span.span.start() == node.AuthorNode.Details.StartOffset) { indentationInfo = node.GetEffectiveIndentation(this); } else { //// Special cases for anything else that is not in the tree and should be indented // check for label (identifier followed by a colon) if (token.Token == AuthorTokenKind.atkIdentifier && nextToken != null && nextToken.Token == AuthorTokenKind.atkColon) { ~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'AuthorTokenKind'. ~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'AuthorTokenKind'. // This will make the label on the same level as the surrounding function/block // ex: // { // statement; // label: // statement; // } indentationInfo = node.GetEffectiveChildrenIndentation(this); } else { //// Move the token the same indentation-delta that moved its indentable parent //// For example: //// var a, //// b; //// The declaration 'b' would remain under 'a' even if 'var' got indented. indentationInfo = this.ApplyIndentationDeltaFromParent(token, node); } } } // Get the indent edit from the indentation info if (indentationInfo != null) { var edit = this.GetIndentEdit(indentationInfo, token.Span.startPosition(), sameLineIndent); if (edit != null) { this.RegisterIndentation(edit, sameLineIndent); result.add(edit); // multi-line comments, apply delta indentation to all the other lines if (token.Token == AuthorTokenKind.atkComment) { ~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'AuthorTokenKind'. var commentEdits = this.GetCommentIndentationEdits(token); commentEdits.foreach((item) => { result.add(item); }); } } } return result; } private GetCommentIndentationEdits(token: TokenSpan): List_TextEditInfo { ~~~~~~~~~ !!! error TS2304: Cannot find name 'TokenSpan'. ~~~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'List_TextEditInfo'. var result = new List_TextEditInfo(); ~~~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'List_TextEditInfo'. if (token.Token != AuthorTokenKind.atkComment) ~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'AuthorTokenKind'. return result; var commentLastLineNumber = this.snapshot.GetLineNumberFromPosition(token.Span.endPosition()); if (token.lineNumber() == commentLastLineNumber) return result; var commentFirstLineIndentationDelta = this.GetIndentationDelta(token.Span.startPosition(), null); if (commentFirstLineIndentationDelta != undefined) { for (var line = token.lineNumber() + 1; line <= commentLastLineNumber; line++) { var lineStartPosition = this.snapshot.GetLineFromLineNumber(line).startPosition(); var lineIndent = this.GetLineIndentationForOffset(lineStartPosition); var commentIndentationInfo = this.ApplyIndentationDelta2(lineIndent, commentFirstLineIndentationDelta); if (commentIndentationInfo != null) { var tokenStartPosition = lineStartPosition + lineIndent.length; var commentIndentationEdit = this.GetIndentEdit(commentIndentationInfo, tokenStartPosition, false); if (commentIndentationEdit != null) { result.add(commentIndentationEdit); } } } } return result; } static GetIndentSizeFromIndentText(indentText: string, editorOptions: Services.EditorOptions): number { ~~~~~~~~ !!! error TS2304: Cannot find name 'Services'. return GetIndentSizeFromText(indentText, editorOptions, /*includeNonIndentChars:*/ false); ~~~~~~~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'GetIndentSizeFromText'. } static GetIndentSizeFromText(text: string, editorOptions: Services.EditorOptions, includeNonIndentChars: boolean): number { ~~~~~~~~ !!! error TS2304: Cannot find name 'Services'. var indentSize = 0; for (var i = 0; i < text.length; i++) { var c = text.charAt(i); if (c == '\t') indentSize = (indentSize + editorOptions.TabSize) - (indentSize % editorOptions.TabSize); else if (c == ' ') indentSize += 1; else { if (includeNonIndentChars) indentSize += 1; else break; } } return indentSize; } private GetSpecialCaseIndentation(token: TokenSpan, node: ParseNode): IndentationInfo { ~~~~~~~~~ !!! error TS2304: Cannot find name 'TokenSpan'. ~~~~~~~~~ !!! error TS2304: Cannot find name 'ParseNode'. ~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'IndentationInfo'. var indentationInfo: IndentationInfo = null; ~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'IndentationInfo'. switch (token.Token) { case AuthorTokenKind.atkLCurly: // { is not part of the tree ~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'AuthorTokenKind'. indentationInfo = this.GetSpecialCaseIndentationForLCurly(node); return indentationInfo; case AuthorTokenKind.atkElse: // else is not part of the tree ~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'AuthorTokenKind'. case AuthorTokenKind.atkRBrack: // ] is not part of the tree ~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'AuthorTokenKind'. indentationInfo = node.GetNodeStartLineIndentation(this); return indentationInfo; case AuthorTokenKind.atkRCurly: // } is not part of the tree ~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'AuthorTokenKind'. // if '}' is for a body-block, get indentation based on its parent. if (node.AuthorNode.Details.Kind == AuthorParseNodeKind.apnkBlock && node.AuthorNode.EdgeLabel == AuthorParseNodeEdge.apneBody) ~~~~~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'AuthorParseNodeKind'. ~~~~~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'AuthorParseNodeEdge'. node = node.Parent; indentationInfo = node.GetNodeStartLineIndentation(this); return indentationInfo; case AuthorTokenKind.atkWhile: // while (in do-while) is not part of the tree ~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'AuthorTokenKind'. if (node.AuthorNode.Details.Kind == AuthorParseNodeKind.apnkDoWhile) { ~~~~~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'AuthorParseNodeKind'. indentationInfo = node.GetNodeStartLineIndentation(this); return indentationInfo; } return null; case AuthorTokenKind.atkSColon: ~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'AuthorTokenKind'. return this.GetSpecialCaseIndentationForSemicolon(token, node); case AuthorTokenKind.atkComment: ~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'AuthorTokenKind'. return this.GetSpecialCaseIndentationForComment(token, node); default: return indentationInfo; } } private GetSpecialCaseIndentationForLCurly(node: ParseNode): IndentationInfo { ~~~~~~~~~ !!! error TS2304: Cannot find name 'ParseNode'. ~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'IndentationInfo'. var indentationInfo: IndentationInfo = null; ~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'IndentationInfo'. if (node.AuthorNode.Details.Kind == AuthorParseNodeKind.apnkFncDecl || ~~~~~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'AuthorParseNodeKind'. node.AuthorNode.EdgeLabel == AuthorParseNodeEdge.apneThen || node.AuthorNode.EdgeLabel == AuthorParseNodeEdge.apneElse) { ~~~~~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'AuthorParseNodeEdge'. ~~~~~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'AuthorParseNodeEdge'. // flushed with the node (function & if) indentationInfo = node.GetNodeStartLineIndentation(this); return indentationInfo; } else if (node.AuthorNode.Details.Kind == AuthorParseNodeKind.apnkObject && !node.CanIndent()) { ~~~~~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'AuthorParseNodeKind'. // if the open curly belongs to a non-indented object, do nothing here. return null; } // effective identation of the block indentationInfo = node.GetEffectiveIndentation(this); return indentationInfo; } private GetSpecialCaseIndentationForSemicolon(token: TokenSpan, node: ParseNode): IndentationInfo { ~~~~~~~~~ !!! error TS2304: Cannot find name 'TokenSpan'. ~~~~~~~~~ !!! error TS2304: Cannot find name 'ParseNode'. ~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'IndentationInfo'. var indentationInfo: IndentationInfo = null; ~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'IndentationInfo'. if (this.smartIndent) { indentationInfo = node.GetEffectiveChildrenIndentation(this); return indentationInfo; } else { // Indent all semicolons except the ones that belong to the for statement parts (initalizer, condition, itnrement) if (node.AuthorNode.Details.Kind != AuthorParseNodeKind.apnkFor) { ~~~~~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'AuthorParseNodeKind'. // The passed node is actually either the program or the list because semicolon doesn't belong // to any statement in the tree, though the statement extends up to the semicolon position. // To find the correct statement, we look for the adjacent node on the left of the semicolon. var semiColonStartSpan = new Span(token.Span.startPosition(), 0); ~~~~ !!! error TS2304: Cannot find name 'Span'. node = ParseTree.FindCommonParentNode(semiColonStartSpan, semiColonStartSpan, node); ~~~~~~~~~ !!! error TS2304: Cannot find name 'ParseTree'. indentationInfo = node.GetEffectiveChildrenIndentation(this); return indentationInfo; } } return null; } private GetSpecialCaseIndentationForComment(token: TokenSpan, node: ParseNode): IndentationInfo { ~~~~~~~~~ !!! error TS2304: Cannot find name 'TokenSpan'. ~~~~~~~~~ !!! error TS2304: Cannot find name 'ParseNode'. ~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'IndentationInfo'. var indentationInfo: IndentationInfo = null; ~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'IndentationInfo'. // Only indent line comment and the first line of block comment var twoCharSpan = token.Span.Intersection(new Span(token.Span.startPosition(), 2)); ~~~~ !!! error TS2304: Cannot find name 'Span'. if (twoCharSpan != null && (twoCharSpan.GetText() == "//" || twoCharSpan.GetText() == "/*")) { while (node.ChildrenIndentationDelta == null && node.Parent != null) node = node.Parent; if (this.CanIndentComment(token, node)) { indentationInfo = node.GetEffectiveChildrenIndentationForComment(this); } else { indentationInfo = this.ApplyIndentationDeltaFromParent(token, node); } } return indentationInfo; } private CanIndentComment(token: TokenSpan, node: ParseNode): boolean { ~~~~~~~~~ !!! error TS2304: Cannot find name 'TokenSpan'. ~~~~~~~~~ !!! error TS2304: Cannot find name 'ParseNode'. switch (node.AuthorNode.Details.Kind) { case AuthorParseNodeKind.apnkProg: ~~~~~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'AuthorParseNodeKind'. case AuthorParseNodeKind.apnkBlock: ~~~~~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'AuthorParseNodeKind'. case AuthorParseNodeKind.apnkSwitch: ~~~~~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'AuthorParseNodeKind'. case AuthorParseNodeKind.apnkCase: ~~~~~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'AuthorParseNodeKind'. case AuthorParseNodeKind.apnkDefaultCase: ~~~~~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'AuthorParseNodeKind'. case AuthorParseNodeKind.apnkIf: ~~~~~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'AuthorParseNodeKind'. case AuthorParseNodeKind.apnkFor: ~~~~~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'AuthorParseNodeKind'. case AuthorParseNodeKind.apnkForIn: ~~~~~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'AuthorParseNodeKind'. case AuthorParseNodeKind.apnkWhile: ~~~~~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'AuthorParseNodeKind'. case AuthorParseNodeKind.apnkWith: ~~~~~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'AuthorParseNodeKind'. case AuthorParseNodeKind.apnkDoWhile: ~~~~~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'AuthorParseNodeKind'. case AuthorParseNodeKind.apnkObject: ~~~~~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'AuthorParseNodeKind'. return true; case AuthorParseNodeKind.apnkFncDecl: ~~~~~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'AuthorParseNodeKind'. // Comments before arguments are not indented. // This code doesn't cover the cases of comment after the last argument or // when there are no arguments. Though this is okay since the only case we care about is: // function foo(/* test */ a, // /* test */ b) var result = true; var children = ParseNodeExtensions.FindChildrenWithEdge(node, AuthorParseNodeEdge.apneArgument); ~~~~~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'ParseNodeExtensions'. ~~~~~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'AuthorParseNodeEdge'. children.foreach((argumentNode) => { if (token.Span.startPosition() < argumentNode.AuthorNode.Details.StartOffset) result = false; }); return result; } return false; } private ApplyScriptBlockIndentation(languageHostIndentation: string, tree: ParseTree): void ~~~~~~~~~ !!! error TS2304: Cannot find name 'ParseTree'. { if (languageHostIndentation == null || tree.StartNodeSelf == null) return; var scriptBlockIndentation = this.ApplyIndentationLevel(languageHostIndentation, 1); //TypeScript: Projection snapshots not supported // Disconnect the sibling node if it belongs to a different script block //IProjectionSnapshot projectionSnapshot = this.snapshot as IProjectionSnapshot; //if (projectionSnapshot != null) //{ // // Get script block spans. // foreach (SnapshotSpan sourceSpan in projectionSnapshot.GetSourceSpans()) // { // // Map the spans to the JavaScript buffer. // ReadOnlyCollection spans = projectionSnapshot.MapFromSourceSnapshot(sourceSpan); // Debug.Assert(spans.Count == 1, string.Format(CultureInfo.InvariantCulture, "Unexpected span count of {0}.", spans.Count)); // if (spans.Count > 0) // { // Span span = spans.First(); // // If the "self" node is the first root-level node in a script block, then remove the start node. // if (span.Contains(tree.StartNodethis.AuthorNode.Details.StartOffset)) // { // this.scriptBlockBeginLineNumber = projectionSnapshot.GetLineNumberFromPosition(span.Start); // if (tree.StartNodePreviousSibling.HasValue) // { // int siblingStartOffset = tree.StartNodePreviousSibling.Value.Details.StartOffset; // // Don't consider sibling in these cases: // // 1. The sibling belongs to another script block // // 2. The sibling is on the same line of the script block // if (!span.Contains(siblingStartOffset) || projectionSnapshot.GetLineNumberFromPosition(siblingStartOffset) == this.scriptBlockBeginLineNumber) // { // tree.StartNodePreviousSibling = null; // } // } // break; // } // } // } //} // The root is the program. tree.Root.SetIndentationOverride(scriptBlockIndentation); } private GetIndentEdit(indentInfo: IndentationInfo, tokenStartPosition: number, sameLineIndent: boolean): TextEditInfo { ~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'IndentationInfo'. ~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'TextEditInfo'. var indentText = this.ApplyIndentationLevel(indentInfo.Prefix, indentInfo.Level); if (sameLineIndent) { return new TextEditInfo(tokenStartPosition, 0, indentText); ~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'TextEditInfo'. } else { var snapshotLine = this.snapshot.GetLineFromPosition(tokenStartPosition); var currentIndentSpan = new Span(snapshotLine.startPosition(), tokenStartPosition - snapshotLine.startPosition()); ~~~~ !!! error TS2304: Cannot find name 'Span'. var currentIndentText = this.snapshot.GetText(currentIndentSpan); if (currentIndentText !== indentText) { if (this.logger.debug()) { // Verify that currentIndentText is all whitespaces for (var i = 0, len = currentIndentText.length; i < len; i++) { var c = currentIndentText.charCodeAt(i); if (!StringUtils.IsWhiteSpace(c)) { ~~~~~~~~~~~ !!! error TS2304: Cannot find name 'StringUtils'. Debug.Fail("Formatting error: Will remove user code when indenting the line: " + snapshotLine.getText()); ~~~~~ !!! error TS2304: Cannot find name 'Debug'. break; } } } return new TextEditInfo(currentIndentSpan.start(), currentIndentSpan.length(), indentText); ~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'TextEditInfo'. } } return null; } private ApplyIndentationLevel(existingIndentation: string, level: number): string { var indentSize = this.editorOptions.IndentSize; var tabSize = this.editorOptions.TabSize; var convertTabsToSpaces = this.editorOptions.ConvertTabsToSpaces; if (level < 0) { if (StringUtils.IsNullOrEmpty(existingIndentation)) ~~~~~~~~~~~ !!! error TS2304: Cannot find name 'StringUtils'. return ""; var totalIndent = 0; StringUtils.foreach(existingIndentation, (c) => { ~~~~~~~~~~~ !!! error TS2304: Cannot find name 'StringUtils'. if (c == '\t') totalIndent += tabSize; else totalIndent++; }); totalIndent += level * indentSize; if (totalIndent < 0) return ""; else return this.GetIndentString(null, totalIndent, tabSize, convertTabsToSpaces); } var totalIndentSize = level * indentSize; return this.GetIndentString(existingIndentation, totalIndentSize, tabSize, convertTabsToSpaces); } private GetIndentString(prefix: string, totalIndentSize: number, tabSize: number, convertTabsToSpaces: boolean): string { var tabString = convertTabsToSpaces ? StringUtils.create(' ', tabSize) : "\t"; ~~~~~~~~~~~ !!! error TS2304: Cannot find name 'StringUtils'. var text = ""; if (!StringUtils.IsNullOrEmpty(prefix)) ~~~~~~~~~~~ !!! error TS2304: Cannot find name 'StringUtils'. text += prefix; var pos = 0; // fill first with tabs while (pos <= totalIndentSize - tabSize) { text += tabString; pos += tabSize; } // fill the reminder with spaces while (pos < totalIndentSize) { text += ' '; pos++; } return text; } private ApplyIndentationDeltaFromParent(token: TokenSpan, node: ParseNode): IndentationInfo { ~~~~~~~~~ !!! error TS2304: Cannot find name 'TokenSpan'. ~~~~~~~~~ !!! error TS2304: Cannot find name 'ParseNode'. ~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'IndentationInfo'. var indentationInfo: IndentationInfo = null; ~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'IndentationInfo'. var indentableParent = node; while (indentableParent != null && !indentableParent.CanIndent()) indentableParent = indentableParent.Parent; if (indentableParent != null && indentableParent.AuthorNode.Details.Kind != AuthorParseNodeKind.apnkProg) { ~~~~~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'AuthorParseNodeKind'. var parentIndentationDeltaSize = this.GetIndentationDelta(indentableParent.AuthorNode.Details.StartOffset, token.Span.startPosition()); if (parentIndentationDeltaSize !== undefined) { indentationInfo = this.ApplyIndentationDelta1(token.Span.startPosition(), parentIndentationDeltaSize); } } return indentationInfo; } private ApplyIndentationDelta1(tokenStartPosition: number, delta: number): IndentationInfo { ~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'IndentationInfo'. // Get current indentation var snapshotLine = this.snapshot.GetLineFromPosition(tokenStartPosition); var currentIndentSpan = new Span(snapshotLine.startPosition(), tokenStartPosition - snapshotLine.startPosition()); ~~~~ !!! error TS2304: Cannot find name 'Span'. var currentIndent = this.snapshot.GetText(currentIndentSpan); // Calculate new indentation from current-indentation and delta return this.ApplyIndentationDelta2(currentIndent, delta); } private ApplyIndentationDelta2(currentIndent: string, delta: number): IndentationInfo { ~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'IndentationInfo'. if (delta == 0) return null; var currentIndentSize = Indenter.GetIndentSizeFromIndentText(currentIndent, this.editorOptions); var newIndentSize = currentIndentSize + delta; if (newIndentSize < 0) { newIndentSize = 0; } var newIndent = this.GetIndentString(null, newIndentSize, this.editorOptions.TabSize, this.editorOptions.ConvertTabsToSpaces); if (newIndent != null) { return new IndentationInfo(newIndent, 0); ~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'IndentationInfo'. } return null; } private GetIndentationDelta(tokenStartPosition: number, childTokenStartPosition: number/*?*/): number/*?*/ { Debug.Assert(childTokenStartPosition !== undefined, "Error: caller must pass 'null' for undefined position"); ~~~~~ !!! error TS2304: Cannot find name 'Debug'. var indentationDeltaSize = this.offsetIndentationDeltas.GetValue(tokenStartPosition); if (indentationDeltaSize === null) { var indentEditInfo = this.indentationBag.FindIndent(tokenStartPosition); // No recorded indentation, return null if (indentEditInfo == null) return null; var origIndentText = this.snapshot.GetText(new Span(indentEditInfo.OrigIndentPosition, indentEditInfo.OrigIndentLength())); ~~~~ !!! error TS2304: Cannot find name 'Span'. var newIndentText = indentEditInfo.Indentation(); var origIndentSize = Indenter.GetIndentSizeFromText(origIndentText, this.editorOptions, /*includeNonIndentChars*/true); var newIndentSize = Indenter.GetIndentSizeFromIndentText(newIndentText, this.editorOptions); // Check the child's position whether it's before the parent position // if so indent the child based on the first token on the line as opposed to the parent position // // Example of relative to parent (not line), relative indentation should be "4 (newIndentSize) - 9 (indentSize up to for) = -5" // // if (1) { for (i = 0; i < 10; => if (1) { // i++) { for (i = 0; i < 10; // i++) { // // Example of relative to line, relative indentation should be "4 (newIndentSize) - 0 (indentSize up to if) = 4" // // if (1) { for (i = 0; i < 10; => if (1) { // i++) { for (i = 0; i < 10; // i++) { if (childTokenStartPosition !== null) { var childTokenLineStartPosition = this.snapshot.GetLineFromPosition(childTokenStartPosition).startPosition(); var childIndentText = this.snapshot.GetText(new Span(childTokenLineStartPosition, childTokenStartPosition - childTokenLineStartPosition)); ~~~~ !!! error TS2304: Cannot find name 'Span'. var childIndentSize = Indenter.GetIndentSizeFromIndentText(childIndentText, this.editorOptions); if (childIndentSize < origIndentSize) origIndentSize = Indenter.GetIndentSizeFromIndentText(origIndentText, this.editorOptions); } indentationDeltaSize = newIndentSize - origIndentSize; this.offsetIndentationDeltas.Add(tokenStartPosition, indentationDeltaSize); } return indentationDeltaSize; } private FillInheritedIndentation(tree: ParseTree): void ~~~~~~~~~ !!! error TS2304: Cannot find name 'ParseTree'. { var offset = -1; var indentNode: ParseNode = null; ~~~~~~~~~ !!! error TS2304: Cannot find name 'ParseNode'. if (tree.StartNodeSelf != null) { if (!this.smartIndent && tree.StartNodePreviousSibling !== null && tree.StartNodeSelf.AuthorNode.Label == 0 && tree.StartNodePreviousSibling.Label == 0) { indentNode = tree.StartNodeSelf; offset = tree.StartNodePreviousSibling.Details.StartOffset; // In case the sibling node is on the same line of a parent node, ex: // case 1: a++; // break; // In this example, the sibling of break is a++ but a++ is on the same line of its parent. var lineNum = this.snapshot.GetLineNumberFromPosition(offset); var node = indentNode; while (node.Parent != null && this.snapshot.GetLineNumberFromPosition(node.Parent.AuthorNode.Details.StartOffset) == lineNum) { node = node.Parent; if (node.CanIndent()) { indentNode = node; indentNode.IndentationDelta = 0; } } } else { var parent: ParseNode; ~~~~~~~~~ !!! error TS2304: Cannot find name 'ParseNode'. // Otherwise base on parent indentation. if (this.smartIndent) { // in smartIndent the self node is the parent node since it's the closest node to the new line // ... unless in case if the startNodeSelf represents the firstToken then we need to choose its parent parent = tree.StartNodeSelf; while (parent != null && parent.AuthorNode.Details.StartOffset == this.firstToken.Span.startPosition()) parent = parent.Parent; } else { // Get the parent that is really on a different line from the self node var startNodeLineNumber = this.snapshot.GetLineNumberFromPosition(tree.StartNodeSelf.AuthorNode.Details.StartOffset); parent = tree.StartNodeSelf.Parent; while (parent != null && startNodeLineNumber == this.snapshot.GetLineNumberFromPosition(parent.AuthorNode.Details.StartOffset)) { parent = parent.Parent; } } // The parent node to take its indentation is the first parent that has indentation. while (parent != null && !parent.CanIndent()) { parent = parent.Parent; } // Skip Program since it has no indentation if (parent != null && parent.AuthorNode.Details.Kind != AuthorParseNodeKind.apnkProg) { ~~~~~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'AuthorParseNodeKind'. offset = parent.AuthorNode.Details.StartOffset; indentNode = parent; } } } if (indentNode != null) { var indentOverride = this.GetLineIndentationForOffset(offset); // Set the indentation on all the siblings to be the same as indentNode if (!this.smartIndent && tree.StartNodePreviousSibling !== null && indentNode.Parent != null) { ParseNodeExtensions.GetChildren(indentNode.Parent).foreach((sibling) => { ~~~~~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'ParseNodeExtensions'. if (sibling !== indentNode) { if (sibling.CanIndent()) sibling.SetIndentationOverride(indentOverride); } }); } // Set the indent override string on the indent node and on every parent (on different line) after adjusting the indent by the negative delta var lastDelta = 0; var lastLine = this.snapshot.GetLineNumberFromPosition(indentNode.AuthorNode.Details.StartOffset); do { var currentLine = this.snapshot.GetLineNumberFromPosition(indentNode.AuthorNode.Details.StartOffset); if (lastLine != currentLine) { lastLine = currentLine; indentOverride = this.ApplyIndentationLevel(indentOverride, -lastDelta); lastDelta = 0; } if (indentNode.CanIndent()) { indentNode.SetIndentationOverride(indentOverride); lastDelta = indentNode.IndentationDelta; } indentNode = indentNode.Parent; } while (indentNode != null); } } public GetLineIndentationForOffset(offset: number): string { var indentationEdit: IndentationEditInfo; ~~~~~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'IndentationEditInfo'. // First check if we already have indentation info in our indentation bag indentationEdit = this.indentationBag.FindIndent(offset); if (indentationEdit != null) { return indentationEdit.Indentation(); } else { // Otherwise, use the indentation from the textBuffer var line = this.snapshot.GetLineFromPosition(offset); var lineText = line.getText(); var index = 0; while (index < lineText.length && (lineText.charAt(index) == ' ' || lineText.charAt(index) == '\t')) { ++index; } return lineText.substr(0, index); } } private RegisterIndentation(indent: TextEditInfo, sameLineIndent: boolean): void ~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'TextEditInfo'. { var indentationInfo: IndentationEditInfo = null; ~~~~~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'IndentationEditInfo'. if (sameLineIndent) { // Consider the original indentation from the beginning of the line up to the indent position (or really the token position) var lineStartPosition = this.snapshot.GetLineFromPosition(indent.Position).startPosition(); var lineIndentLength = indent.Position - lineStartPosition; indentationInfo = IndentationEditInfo.create2(indent.Position, indent.ReplaceWith, lineStartPosition, lineIndentLength); ~~~~~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'IndentationEditInfo'. } else { indentationInfo = new IndentationEditInfo(indent); ~~~~~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'IndentationEditInfo'. } this.indentationBag.AddIndent(indentationInfo); } public RegisterIndentation2(position: number, indent: string): void { this.RegisterIndentation(new TextEditInfo(position, 0, indent), false); ~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'TextEditInfo'. } private AdjustStartOffsetIfNeeded(token: TokenSpan, node: ParseNode): void ~~~~~~~~~ !!! error TS2304: Cannot find name 'TokenSpan'. ~~~~~~~~~ !!! error TS2304: Cannot find name 'ParseNode'. { if (token == null) return; var updateStartOffset = false; switch (token.Token) { case AuthorTokenKind.atkFunction: ~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'AuthorTokenKind'. updateStartOffset = node.AuthorNode.Details.Kind == AuthorParseNodeKind.apnkFncDecl; ~~~~~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'AuthorParseNodeKind'. break; case AuthorTokenKind.atkLCurly: ~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'AuthorTokenKind'. updateStartOffset = node.AuthorNode.Details.Kind == AuthorParseNodeKind.apnkObject; ~~~~~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'AuthorParseNodeKind'. break; case AuthorTokenKind.atkLBrack: ~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'AuthorTokenKind'. updateStartOffset = node.AuthorNode.Details.Kind == AuthorParseNodeKind.apnkArray; ~~~~~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'AuthorParseNodeKind'. break; } if (updateStartOffset) { ParseNodeExtensions.SetNodeSpan(node, token.Span.startPosition(), node.AuthorNode.Details.EndOffset); ~~~~~~~~~~~~~~~~~~~ !!! error TS2304: Cannot find name 'ParseNodeExtensions'. } } private IsMultiLineString(token: TokenSpan): boolean { ~~~~~~~~~ !!! error TS2304: Cannot find name 'TokenSpan'. return token.tokenID === TypeScript.TokenID.StringLiteral && ~~~~~~~~~~ !!! error TS2304: Cannot find name 'TypeScript'. this.snapshot.GetLineNumberFromPosition(token.Span.endPosition()) > this.snapshot.GetLineNumberFromPosition(token.Span.startPosition()); } } }