TypeScript/tests/baselines/reference/parserindenter.errors.txt
2015-03-02 12:21:53 -08:00

1128 lines
70 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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.
//
///<reference path='formatting.ts' />
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! 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<Span> 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());
}
}
}