From 6ca9a1a6d875b76dddb1f9ed57e4fdbe29e82c14 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Thu, 24 Jul 2014 17:36:06 -0700 Subject: [PATCH] Move updated code to the ts namespace --- src/services/breakpoints.ts | 92 ++++----- src/services/formatting/formattingManager.ts | 18 +- src/services/formatting/rulesProvider.ts | 8 +- .../getScriptLexicalStructureWalker.ts | 52 ++--- src/services/keywordCompletions.ts | 10 +- src/services/services.ts | 184 +++++++++--------- src/services/shims.ts | 6 +- 7 files changed, 183 insertions(+), 187 deletions(-) diff --git a/src/services/breakpoints.ts b/src/services/breakpoints.ts index 237df5afce0..5dd057ac2af 100644 --- a/src/services/breakpoints.ts +++ b/src/services/breakpoints.ts @@ -4,7 +4,7 @@ /// module TypeScript.Services.Breakpoints { - function createBreakpointSpanInfo(parentElement: TypeScript.ISyntaxElement, ...childElements: TypeScript.ISyntaxElement[]): SpanInfo { + function createBreakpointSpanInfo(parentElement: TypeScript.ISyntaxElement, ...childElements: TypeScript.ISyntaxElement[]): ts.SpanInfo { if (!parentElement) { return null; } @@ -34,7 +34,7 @@ module TypeScript.Services.Breakpoints { }; } - function createBreakpointSpanInfoWithLimChar(startElement: TypeScript.ISyntaxElement, limChar: number): SpanInfo { + function createBreakpointSpanInfoWithLimChar(startElement: TypeScript.ISyntaxElement, limChar: number): ts.SpanInfo { return { minChar: start(startElement), limChar: limChar @@ -45,7 +45,7 @@ module TypeScript.Services.Breakpoints { constructor(private posLine: number, private lineMap: TypeScript.LineMap) { } - private breakpointSpanOfToken(positionedToken: TypeScript.ISyntaxToken): SpanInfo { + private breakpointSpanOfToken(positionedToken: TypeScript.ISyntaxToken): ts.SpanInfo { switch (positionedToken.kind()) { case TypeScript.SyntaxKind.OpenBraceToken: return this.breakpointSpanOfOpenBrace(positionedToken); @@ -74,7 +74,7 @@ module TypeScript.Services.Breakpoints { return this.breakpointSpanOfContainingNode(positionedToken); } - private breakpointSpanOfOpenBrace(openBraceToken: TypeScript.ISyntaxToken): SpanInfo { + private breakpointSpanOfOpenBrace(openBraceToken: TypeScript.ISyntaxToken): ts.SpanInfo { var container = Syntax.containingNode(openBraceToken); if (container) { var originalContainer = container; @@ -168,7 +168,7 @@ module TypeScript.Services.Breakpoints { return null; } - private breakpointSpanOfCloseBrace(closeBraceToken: TypeScript.ISyntaxToken): SpanInfo { + private breakpointSpanOfCloseBrace(closeBraceToken: TypeScript.ISyntaxToken): ts.SpanInfo { var container = Syntax.containingNode(closeBraceToken); if (container) { var originalContainer = container; @@ -243,7 +243,7 @@ module TypeScript.Services.Breakpoints { } - private breakpointSpanOfComma(commaToken: TypeScript.ISyntaxToken): SpanInfo { + private breakpointSpanOfComma(commaToken: TypeScript.ISyntaxToken): ts.SpanInfo { var commaParent = commaToken.parent; if (isSeparatedList(commaParent)) { var grandParent = commaParent.parent; @@ -271,7 +271,7 @@ module TypeScript.Services.Breakpoints { return this.breakpointSpanOfContainingNode(commaToken); } - private breakpointSpanOfCloseParen(closeParenToken: TypeScript.ISyntaxToken): SpanInfo { + private breakpointSpanOfCloseParen(closeParenToken: TypeScript.ISyntaxToken): ts.SpanInfo { var closeParenParent = closeParenToken.parent; if (closeParenParent) { switch (closeParenParent.kind()) { @@ -293,7 +293,7 @@ module TypeScript.Services.Breakpoints { return blockSyntax.statements && blockSyntax.statements.length != 0; } - private breakpointSpanOfFirstStatementInBlock(blockNode: TypeScript.ISyntaxNode): SpanInfo { + private breakpointSpanOfFirstStatementInBlock(blockNode: TypeScript.ISyntaxNode): ts.SpanInfo { if (!blockNode) { return null; } @@ -316,7 +316,7 @@ module TypeScript.Services.Breakpoints { } } - private breakpointSpanOfLastStatementInBlock(blockNode: TypeScript.ISyntaxNode): SpanInfo { + private breakpointSpanOfLastStatementInBlock(blockNode: TypeScript.ISyntaxNode): ts.SpanInfo { if (!blockNode) { return null; } @@ -339,7 +339,7 @@ module TypeScript.Services.Breakpoints { } } - private breakpointSpanOfFirstChildOfSyntaxList(positionedList: TypeScript.ISyntaxNodeOrToken[]): SpanInfo { + private breakpointSpanOfFirstChildOfSyntaxList(positionedList: TypeScript.ISyntaxNodeOrToken[]): ts.SpanInfo { if (!positionedList) { return null; } @@ -363,7 +363,7 @@ module TypeScript.Services.Breakpoints { } } - private breakpointSpanOfLastChildOfSyntaxList(positionedList: TypeScript.ISyntaxNodeOrToken[]): SpanInfo { + private breakpointSpanOfLastChildOfSyntaxList(positionedList: TypeScript.ISyntaxNodeOrToken[]): ts.SpanInfo { if (!positionedList) { return null; } @@ -385,7 +385,7 @@ module TypeScript.Services.Breakpoints { } } - private breakpointSpanOfNode(positionedNode: TypeScript.ISyntaxNode): SpanInfo { + private breakpointSpanOfNode(positionedNode: TypeScript.ISyntaxNode): ts.SpanInfo { var node = positionedNode; switch (node.kind()) { // Declarations with elements @@ -552,12 +552,12 @@ module TypeScript.Services.Breakpoints { return false; } - private breakpointOfLeftOfCommaExpression(commaExpressionNode: TypeScript.ISyntaxNode): SpanInfo { + private breakpointOfLeftOfCommaExpression(commaExpressionNode: TypeScript.ISyntaxNode): ts.SpanInfo { var commaExpression = commaExpressionNode; return this.breakpointSpanOf(commaExpression.left); } - private breakpointOfExpression(expressionNode: TypeScript.ISyntaxNode): SpanInfo { + private breakpointOfExpression(expressionNode: TypeScript.ISyntaxNode): ts.SpanInfo { if (this.isInitializerOfForStatement(expressionNode) || this.isConditionOfForStatement(expressionNode) || this.isIncrememtorOfForStatement(expressionNode)) { @@ -582,7 +582,7 @@ module TypeScript.Services.Breakpoints { return this.breakpointSpanOfContainingNode(expressionNode); } - private breakpointSpanOfStatement(statementNode: TypeScript.ISyntaxNode): SpanInfo { + private breakpointSpanOfStatement(statementNode: TypeScript.ISyntaxNode): ts.SpanInfo { var statement = statementNode; if (statement.kind() == TypeScript.SyntaxKind.EmptyStatement) { return null; @@ -722,7 +722,7 @@ module TypeScript.Services.Breakpoints { return positionedNode && !TypeScript.SyntaxUtilities.isAmbientDeclarationSyntax(positionedNode); } - private breakpointSpanOfDeclarationWithElements(positionedNode: TypeScript.ISyntaxNode): SpanInfo { + private breakpointSpanOfDeclarationWithElements(positionedNode: TypeScript.ISyntaxNode): ts.SpanInfo { if (!this.canHaveBreakpointInDeclaration(positionedNode)) { return null; } @@ -751,7 +751,7 @@ module TypeScript.Services.Breakpoints { return !!varDeclaratorSyntax.equalsValueClause; } - private breakpointSpanOfVariableDeclarator(varDeclaratorNode: TypeScript.ISyntaxNode): SpanInfo { + private breakpointSpanOfVariableDeclarator(varDeclaratorNode: TypeScript.ISyntaxNode): ts.SpanInfo { if (!this.canHaveBreakpointInVariableDeclarator(varDeclaratorNode)) { return null; } @@ -799,7 +799,7 @@ module TypeScript.Services.Breakpoints { return false; } - private breakpointSpanOfVariableDeclaration(varDeclarationNode: TypeScript.ISyntaxNode): SpanInfo { + private breakpointSpanOfVariableDeclaration(varDeclarationNode: TypeScript.ISyntaxNode): ts.SpanInfo { if (!this.canHaveBreakpointInDeclaration(varDeclarationNode)) { return null; } @@ -830,7 +830,7 @@ module TypeScript.Services.Breakpoints { return this.canHaveBreakpointInVariableDeclaration(variableStatement.variableDeclaration); } - private breakpointSpanOfVariableStatement(varStatementNode: TypeScript.ISyntaxNode): SpanInfo { + private breakpointSpanOfVariableStatement(varStatementNode: TypeScript.ISyntaxNode): ts.SpanInfo { if (!this.canHaveBreakpointInVariableStatement(varStatementNode)) { return null; } @@ -842,7 +842,7 @@ module TypeScript.Services.Breakpoints { return createBreakpointSpanInfoWithLimChar(varStatementNode, end(childAt(varDeclarators, 0))); } - private breakpointSpanOfParameter(parameterNode: TypeScript.ISyntaxNode): SpanInfo { + private breakpointSpanOfParameter(parameterNode: TypeScript.ISyntaxNode): ts.SpanInfo { if (parameterNode.parent.kind() === SyntaxKind.SimpleArrowFunctionExpression) { return this.breakpointSpanOfNode(parameterNode.parent); } @@ -860,7 +860,7 @@ module TypeScript.Services.Breakpoints { } } - private breakpointSpanOfMemberVariableDeclaration(memberVarDeclarationNode: TypeScript.ISyntaxNode): SpanInfo { + private breakpointSpanOfMemberVariableDeclaration(memberVarDeclarationNode: TypeScript.ISyntaxNode): ts.SpanInfo { if (TypeScript.SyntaxUtilities.isAmbientDeclarationSyntax(memberVarDeclarationNode)) { return null; } @@ -874,7 +874,7 @@ module TypeScript.Services.Breakpoints { } } - private breakpointSpanOfImportDeclaration(importDeclarationNode: TypeScript.ISyntaxNode): SpanInfo { + private breakpointSpanOfImportDeclaration(importDeclarationNode: TypeScript.ISyntaxNode): ts.SpanInfo { if (TypeScript.SyntaxUtilities.isAmbientDeclarationSyntax(importDeclarationNode)) { return null; } @@ -883,7 +883,7 @@ module TypeScript.Services.Breakpoints { return createBreakpointSpanInfo(importDeclarationNode, importSyntax.modifiers, importSyntax.importKeyword, importSyntax.identifier, importSyntax.equalsToken, importSyntax.moduleReference); } - private breakpointSpanOfEnumDeclaration(enumDeclarationNode: TypeScript.ISyntaxNode): SpanInfo { + private breakpointSpanOfEnumDeclaration(enumDeclarationNode: TypeScript.ISyntaxNode): ts.SpanInfo { if (!this.canHaveBreakpointInDeclaration(enumDeclarationNode)) { return null; } @@ -891,7 +891,7 @@ module TypeScript.Services.Breakpoints { return createBreakpointSpanInfo(enumDeclarationNode); } - private breakpointSpanOfFirstEnumElement(enumDeclarationNode: TypeScript.ISyntaxNode): SpanInfo { + private breakpointSpanOfFirstEnumElement(enumDeclarationNode: TypeScript.ISyntaxNode): ts.SpanInfo { var enumDeclarationSyntax = enumDeclarationNode; var enumElements = enumDeclarationSyntax.enumElements; if (enumElements && childCount(enumElements)) { @@ -901,7 +901,7 @@ module TypeScript.Services.Breakpoints { return null; } - private breakpointSpanOfEnumElement(enumElementNode: TypeScript.ISyntaxNode): SpanInfo { + private breakpointSpanOfEnumElement(enumElementNode: TypeScript.ISyntaxNode): ts.SpanInfo { if (TypeScript.SyntaxUtilities.isAmbientDeclarationSyntax(enumElementNode)) { return null; } @@ -909,45 +909,45 @@ module TypeScript.Services.Breakpoints { return createBreakpointSpanInfo(enumElementNode); } - private breakpointSpanOfIfStatement(ifStatementNode: TypeScript.ISyntaxNode): SpanInfo { + private breakpointSpanOfIfStatement(ifStatementNode: TypeScript.ISyntaxNode): ts.SpanInfo { var ifStatement = ifStatementNode; return createBreakpointSpanInfo(ifStatementNode, ifStatement.ifKeyword, ifStatement.openParenToken, ifStatement.condition, ifStatement.closeParenToken); } - private breakpointSpanOfElseClause(elseClauseNode: TypeScript.ISyntaxNode): SpanInfo { + private breakpointSpanOfElseClause(elseClauseNode: TypeScript.ISyntaxNode): ts.SpanInfo { var elseClause = elseClauseNode; return this.breakpointSpanOf(elseClause.statement); } - private breakpointSpanOfForInStatement(forInStatementNode: TypeScript.ISyntaxNode): SpanInfo { + private breakpointSpanOfForInStatement(forInStatementNode: TypeScript.ISyntaxNode): ts.SpanInfo { var forInStatement = forInStatementNode; return createBreakpointSpanInfo(forInStatementNode, forInStatement.forKeyword, forInStatement.openParenToken, forInStatement.variableDeclaration, forInStatement.left, forInStatement.inKeyword, forInStatement.expression, forInStatement.closeParenToken); } - private breakpointSpanOfForStatement(forStatementNode: TypeScript.ISyntaxNode): SpanInfo { + private breakpointSpanOfForStatement(forStatementNode: TypeScript.ISyntaxNode): ts.SpanInfo { var forStatement = forStatementNode; return this.breakpointSpanOf(forStatement.variableDeclaration ? forStatement.variableDeclaration : forStatement.initializer); } - private breakpointSpanOfWhileStatement(whileStatementNode: TypeScript.ISyntaxNode): SpanInfo { + private breakpointSpanOfWhileStatement(whileStatementNode: TypeScript.ISyntaxNode): ts.SpanInfo { var whileStatement = whileStatementNode; return createBreakpointSpanInfo(whileStatementNode, whileStatement.whileKeyword, whileStatement.openParenToken, whileStatement.condition, whileStatement.closeParenToken); } - private breakpointSpanOfDoStatement(doStatementNode: TypeScript.ISyntaxNode): SpanInfo { + private breakpointSpanOfDoStatement(doStatementNode: TypeScript.ISyntaxNode): ts.SpanInfo { var doStatement = doStatementNode; return createBreakpointSpanInfo(doStatementNode, doStatement.whileKeyword, doStatement.openParenToken, doStatement.condition, doStatement.closeParenToken); } - private breakpointSpanOfSwitchStatement(switchStatementNode: TypeScript.ISyntaxNode): SpanInfo { + private breakpointSpanOfSwitchStatement(switchStatementNode: TypeScript.ISyntaxNode): ts.SpanInfo { var switchStatement = switchStatementNode; return createBreakpointSpanInfo(switchStatementNode, switchStatement.switchKeyword, switchStatement.openParenToken, switchStatement.expression, switchStatement.closeParenToken); } - private breakpointSpanOfFirstStatementOfFirstCaseClause(switchStatementNode: TypeScript.ISyntaxNode): SpanInfo { + private breakpointSpanOfFirstStatementOfFirstCaseClause(switchStatementNode: TypeScript.ISyntaxNode): ts.SpanInfo { var switchStatement = switchStatementNode; if (switchStatement.switchClauses && switchStatement.switchClauses.length == 0) { return null; @@ -964,7 +964,7 @@ module TypeScript.Services.Breakpoints { return this.breakpointSpanOfFirstChildOfSyntaxList(statements); } - private breakpointSpanOfLastStatementOfLastCaseClause(switchStatementNode: TypeScript.ISyntaxNode): SpanInfo { + private breakpointSpanOfLastStatementOfLastCaseClause(switchStatementNode: TypeScript.ISyntaxNode): ts.SpanInfo { var switchStatement = switchStatementNode; if (switchStatement.switchClauses && switchStatement.switchClauses.length == 0) { return null; @@ -981,37 +981,37 @@ module TypeScript.Services.Breakpoints { return this.breakpointSpanOfLastChildOfSyntaxList(statements); } - private breakpointSpanOfCaseSwitchClause(caseClauseNode: TypeScript.ISyntaxNode): SpanInfo { + private breakpointSpanOfCaseSwitchClause(caseClauseNode: TypeScript.ISyntaxNode): ts.SpanInfo { var caseSwitchClause = caseClauseNode; return this.breakpointSpanOfFirstChildOfSyntaxList(caseSwitchClause.statements); } - private breakpointSpanOfDefaultSwitchClause(defaultSwithClauseNode: TypeScript.ISyntaxNode): SpanInfo { + private breakpointSpanOfDefaultSwitchClause(defaultSwithClauseNode: TypeScript.ISyntaxNode): ts.SpanInfo { var defaultSwitchClause = defaultSwithClauseNode; return this.breakpointSpanOfFirstChildOfSyntaxList(defaultSwitchClause.statements); } - private breakpointSpanOfWithStatement(withStatementNode: TypeScript.ISyntaxNode): SpanInfo { + private breakpointSpanOfWithStatement(withStatementNode: TypeScript.ISyntaxNode): ts.SpanInfo { var withStatement = withStatementNode; return this.breakpointSpanOf(withStatement.statement); } - private breakpointSpanOfTryStatement(tryStatementNode: TypeScript.ISyntaxNode): SpanInfo { + private breakpointSpanOfTryStatement(tryStatementNode: TypeScript.ISyntaxNode): ts.SpanInfo { var tryStatement = tryStatementNode; return this.breakpointSpanOfFirstStatementInBlock(tryStatement.block); } - private breakpointSpanOfCatchClause(catchClauseNode: TypeScript.ISyntaxNode): SpanInfo { + private breakpointSpanOfCatchClause(catchClauseNode: TypeScript.ISyntaxNode): ts.SpanInfo { var catchClause = catchClauseNode; return createBreakpointSpanInfo(catchClauseNode, catchClause.catchKeyword, catchClause.openParenToken, catchClause.identifier, catchClause.typeAnnotation, catchClause.closeParenToken); } - private breakpointSpanOfFinallyClause(finallyClauseNode: TypeScript.ISyntaxNode): SpanInfo { + private breakpointSpanOfFinallyClause(finallyClauseNode: TypeScript.ISyntaxNode): ts.SpanInfo { var finallyClause = finallyClauseNode; return this.breakpointSpanOfFirstStatementInBlock(finallyClause.block); } - private breakpointSpanOfParenthesizedArrowFunctionExpression(arrowFunctionExpression: ParenthesizedArrowFunctionExpressionSyntax): SpanInfo { + private breakpointSpanOfParenthesizedArrowFunctionExpression(arrowFunctionExpression: ParenthesizedArrowFunctionExpressionSyntax): ts.SpanInfo { if (arrowFunctionExpression.block) { return this.breakpointSpanOfFirstStatementInBlock(arrowFunctionExpression.block); } @@ -1020,7 +1020,7 @@ module TypeScript.Services.Breakpoints { } } - private breakpointSpanOfSimpleArrowFunctionExpression(arrowFunctionExpression: SimpleArrowFunctionExpressionSyntax): SpanInfo { + private breakpointSpanOfSimpleArrowFunctionExpression(arrowFunctionExpression: SimpleArrowFunctionExpressionSyntax): ts.SpanInfo { if (arrowFunctionExpression.block) { return this.breakpointSpanOfFirstStatementInBlock(arrowFunctionExpression.block); } @@ -1029,7 +1029,7 @@ module TypeScript.Services.Breakpoints { } } - private breakpointSpanOfContainingNode(positionedElement: ISyntaxElement): SpanInfo { + private breakpointSpanOfContainingNode(positionedElement: ISyntaxElement): ts.SpanInfo { var current = positionedElement.parent; while (!isNode(current)) { current = current.parent; @@ -1038,7 +1038,7 @@ module TypeScript.Services.Breakpoints { return this.breakpointSpanOf(current); } - private breakpointSpanIfStartsOnSameLine(positionedElement: TypeScript.ISyntaxElement): SpanInfo { + private breakpointSpanIfStartsOnSameLine(positionedElement: TypeScript.ISyntaxElement): ts.SpanInfo { if (positionedElement && this.posLine == this.lineMap.getLineNumberFromPosition(start(positionedElement))) { return this.breakpointSpanOf(positionedElement); } @@ -1046,7 +1046,7 @@ module TypeScript.Services.Breakpoints { return null; } - public breakpointSpanOf(positionedElement: TypeScript.ISyntaxElement): SpanInfo { + public breakpointSpanOf(positionedElement: TypeScript.ISyntaxElement): ts.SpanInfo { if (!positionedElement) { return null; } @@ -1075,7 +1075,7 @@ module TypeScript.Services.Breakpoints { } } - export function getBreakpointLocation(syntaxTree: TypeScript.SyntaxTree, askedPos: number): SpanInfo { + export function getBreakpointLocation(syntaxTree: TypeScript.SyntaxTree, askedPos: number): ts.SpanInfo { // Cannot set breakpoint in dts file if (TypeScript.isDTSFile(syntaxTree.fileName())) { return null; diff --git a/src/services/formatting/formattingManager.ts b/src/services/formatting/formattingManager.ts index bc700d068ef..4756b6eb240 100644 --- a/src/services/formatting/formattingManager.ts +++ b/src/services/formatting/formattingManager.ts @@ -19,28 +19,28 @@ module TypeScript.Services.Formatting { export class FormattingManager { private options: FormattingOptions; - constructor(private syntaxTree: SyntaxTree, private snapshot: ITextSnapshot, private rulesProvider: RulesProvider, editorOptions: TypeScript.Services.EditorOptions) { + constructor(private syntaxTree: SyntaxTree, private snapshot: ITextSnapshot, private rulesProvider: RulesProvider, editorOptions: ts.EditorOptions) { // // TODO: convert to use FormattingOptions instead of EditorOptions this.options = new FormattingOptions(!editorOptions.ConvertTabsToSpaces, editorOptions.TabSize, editorOptions.IndentSize, editorOptions.NewLineCharacter) } - public formatSelection(minChar: number, limChar: number): TypeScript.Services.TextEdit[] { + public formatSelection(minChar: number, limChar: number): ts.TextEdit[] { var span = TextSpan.fromBounds(minChar, limChar); return this.formatSpan(span, FormattingRequestKind.FormatSelection); } - public formatDocument(minChar: number, limChar: number): TypeScript.Services.TextEdit[] { + public formatDocument(minChar: number, limChar: number): ts.TextEdit[] { var span = TextSpan.fromBounds(minChar, limChar); return this.formatSpan(span, FormattingRequestKind.FormatDocument); } - public formatOnPaste(minChar: number, limChar: number): TypeScript.Services.TextEdit[] { + public formatOnPaste(minChar: number, limChar: number): ts.TextEdit[] { var span = TextSpan.fromBounds(minChar, limChar); return this.formatSpan(span, FormattingRequestKind.FormatOnPaste); } - public formatOnSemicolon(caretPosition: number): TypeScript.Services.TextEdit[] { + public formatOnSemicolon(caretPosition: number): ts.TextEdit[] { var sourceUnit = this.syntaxTree.sourceUnit(); var semicolonPositionedToken = findToken(sourceUnit, caretPosition - 1); @@ -63,7 +63,7 @@ module TypeScript.Services.Formatting { return []; } - public formatOnClosingCurlyBrace(caretPosition: number): TypeScript.Services.TextEdit[] { + public formatOnClosingCurlyBrace(caretPosition: number): ts.TextEdit[] { var sourceUnit = this.syntaxTree.sourceUnit(); var closeBracePositionedToken = findToken(sourceUnit, caretPosition - 1); @@ -86,7 +86,7 @@ module TypeScript.Services.Formatting { return []; } - public formatOnEnter(caretPosition: number): TypeScript.Services.TextEdit[] { + public formatOnEnter(caretPosition: number): ts.TextEdit[] { var lineNumber = this.snapshot.getLineNumberFromPosition(caretPosition); if (lineNumber > 0) { @@ -103,12 +103,12 @@ module TypeScript.Services.Formatting { return []; } - private formatSpan(span: TextSpan, formattingRequestKind: FormattingRequestKind): TypeScript.Services.TextEdit[] { + private formatSpan(span: TextSpan, formattingRequestKind: FormattingRequestKind): ts.TextEdit[] { // Always format from the beginning of the line var startLine = this.snapshot.getLineFromPosition(span.start()); span = TextSpan.fromBounds(startLine.startPosition(), span.end()); - var result: TypeScript.Services.TextEdit[] = []; + var result: ts.TextEdit[] = []; var formattingEdits = Formatter.getEdits(span, this.syntaxTree.sourceUnit(), this.options, true, this.snapshot, this.rulesProvider, formattingRequestKind); diff --git a/src/services/formatting/rulesProvider.ts b/src/services/formatting/rulesProvider.ts index 87c803658bf..608ee97254a 100644 --- a/src/services/formatting/rulesProvider.ts +++ b/src/services/formatting/rulesProvider.ts @@ -18,7 +18,7 @@ module TypeScript.Services.Formatting { export class RulesProvider { private globalRules: Rules; - private options: TypeScript.Services.FormatCodeOptions; + private options: ts.FormatCodeOptions; private activeRules: Rule[]; private rulesMap: RulesMap; @@ -38,8 +38,8 @@ module TypeScript.Services.Formatting { return this.rulesMap; } - public ensureUpToDate(options: TypeScript.Services.FormatCodeOptions) { - if (this.options == null || !compareDataObjects(this.options, options)) { + public ensureUpToDate(options: ts.FormatCodeOptions) { + if (this.options == null || !ts.compareDataObjects(this.options, options)) { var activeRules: Rule[] = TypeScript.timeFunction(this.logger, "RulesProvider: createActiveRules()", () => { return this.createActiveRules(options); }); var rulesMap: RulesMap = TypeScript.timeFunction(this.logger, "RulesProvider: RulesMap.create()", () => { return RulesMap.create(activeRules); }); @@ -49,7 +49,7 @@ module TypeScript.Services.Formatting { } } - private createActiveRules(options: TypeScript.Services.FormatCodeOptions): Rule[] { + private createActiveRules(options: ts.FormatCodeOptions): Rule[] { var rules = this.globalRules.HighPriorityCommonRules.slice(0); if (options.InsertSpaceAfterCommaDelimiter) { diff --git a/src/services/getScriptLexicalStructureWalker.ts b/src/services/getScriptLexicalStructureWalker.ts index a9a179e51b7..df182d3b404 100644 --- a/src/services/getScriptLexicalStructureWalker.ts +++ b/src/services/getScriptLexicalStructureWalker.ts @@ -2,7 +2,7 @@ /// module TypeScript.Services { interface LexicalScope { - items: ts.Map; + items: ts.Map; itemNames: string[]; childScopes: ts.Map; childScopeNames: string[]; @@ -17,7 +17,7 @@ module TypeScript.Services { private createScope(): LexicalScope { return { - items: TypeScript.createIntrinsicsObject(), + items: TypeScript.createIntrinsicsObject(), childScopes: TypeScript.createIntrinsicsObject(), childScopeNames: [], itemNames: [] @@ -57,7 +57,7 @@ module TypeScript.Services { this.currentScope = this.createScope(); } - private collectItems(items: NavigateToItem[], scope = this.currentScope) { + private collectItems(items: ts.NavigateToItem[], scope = this.currentScope) { scope.itemNames.forEach(item => { items.push(scope.items[item]); }); @@ -67,7 +67,7 @@ module TypeScript.Services { }); } - static getListsOfAllScriptLexicalStructure(items: NavigateToItem[], fileName: string, unit: TypeScript.SourceUnitSyntax) { + static getListsOfAllScriptLexicalStructure(items: ts.NavigateToItem[], fileName: string, unit: TypeScript.SourceUnitSyntax) { var visitor = new GetScriptLexicalStructureWalker(fileName); visitNodeOrToken(visitor, unit); visitor.collectItems(items); @@ -81,10 +81,10 @@ module TypeScript.Services { return; } - var item: NavigateToItem = { + var item: ts.NavigateToItem = { name: name, kind: kind, - matchKind: MatchKind.exact, + matchKind: ts.MatchKind.exact, fileName: this.fileName, kindModifiers: this.getKindModifiers(modifiers), minChar: start(node), @@ -104,7 +104,7 @@ module TypeScript.Services { Debug.assert(item !== undefined); var start = TypeScript.start(node); - var span: SpanInfo = { + var span: ts.SpanInfo = { minChar: start, limChar: start + width(node) }; @@ -125,7 +125,7 @@ module TypeScript.Services { result.push(modifiers[i].text()); } - return result.length > 0 ? result.join(',') : ScriptElementKindModifier.none; + return result.length > 0 ? result.join(',') : ts.ScriptElementKindModifier.none; } public visitModuleDeclaration(node: TypeScript.ModuleDeclarationSyntax): void { @@ -140,7 +140,7 @@ module TypeScript.Services { } else { var name = names[nameIndex]; - var kind = ScriptElementKind.moduleElement; + var kind = ts.ScriptElementKind.moduleElement; this.createItem(node, node.modifiers, kind, name); @@ -178,7 +178,7 @@ module TypeScript.Services { public visitClassDeclaration(node: TypeScript.ClassDeclarationSyntax): void { var name = node.identifier.text(); - var kind = ScriptElementKind.classElement; + var kind = ts.ScriptElementKind.classElement; this.createItem(node, node.modifiers, kind, name); @@ -191,7 +191,7 @@ module TypeScript.Services { public visitInterfaceDeclaration(node: TypeScript.InterfaceDeclarationSyntax): void { var name = node.identifier.text(); - var kind = ScriptElementKind.interfaceElement; + var kind = ts.ScriptElementKind.interfaceElement; this.createItem(node, node.modifiers, kind, name); @@ -212,7 +212,7 @@ module TypeScript.Services { public visitEnumDeclaration(node: TypeScript.EnumDeclarationSyntax): void { var name = node.identifier.text(); - var kind = ScriptElementKind.enumElement; + var kind = ts.ScriptElementKind.enumElement; this.createItem(node, node.modifiers, kind, name); @@ -224,7 +224,7 @@ module TypeScript.Services { } public visitConstructorDeclaration(node: TypeScript.ConstructorDeclarationSyntax): void { - this.createItem(node, TypeScript.Syntax.emptyList(), ScriptElementKind.constructorImplementationElement, "constructor"); + this.createItem(node, TypeScript.Syntax.emptyList(), ts.ScriptElementKind.constructorImplementationElement, "constructor"); // Search the parameter list of class properties var parameters = node.callSignature.parameterList.parameters; @@ -236,7 +236,7 @@ module TypeScript.Services { if (SyntaxUtilities.containsToken(parameter.modifiers, SyntaxKind.PublicKeyword) || SyntaxUtilities.containsToken(parameter.modifiers, SyntaxKind.PrivateKeyword)) { - this.createItem(node, parameter.modifiers, ScriptElementKind.memberVariableElement, parameter.identifier.text()); + this.createItem(node, parameter.modifiers, ts.ScriptElementKind.memberVariableElement, parameter.identifier.text()); } } } @@ -245,19 +245,19 @@ module TypeScript.Services { } public visitMemberFunctionDeclaration(node: TypeScript.MemberFunctionDeclarationSyntax): void { - this.createItem(node, node.modifiers, ScriptElementKind.memberFunctionElement, node.propertyName.text()); + this.createItem(node, node.modifiers, ts.ScriptElementKind.memberFunctionElement, node.propertyName.text()); // No need to descend into a member function; } public visitGetAccessor(node: TypeScript.GetAccessorSyntax): void { - this.createItem(node, node.modifiers, ScriptElementKind.memberGetAccessorElement, node.propertyName.text()); + this.createItem(node, node.modifiers, ts.ScriptElementKind.memberGetAccessorElement, node.propertyName.text()); // No need to descend into a member accessor; } public visitSetAccessor(node: TypeScript.SetAccessorSyntax): void { - this.createItem(node, node.modifiers, ScriptElementKind.memberSetAccessorElement, node.propertyName.text()); + this.createItem(node, node.modifiers, ts.ScriptElementKind.memberSetAccessorElement, node.propertyName.text()); // No need to descend into a member accessor; } @@ -267,45 +267,45 @@ module TypeScript.Services { ? (node.parent).modifiers : TypeScript.Syntax.emptyList(); var kind = node.parent.kind() === SyntaxKind.MemberVariableDeclaration - ? ScriptElementKind.memberVariableElement - : ScriptElementKind.variableElement; + ? ts.ScriptElementKind.memberVariableElement + : ts.ScriptElementKind.variableElement; this.createItem(node, modifiers, kind, node.propertyName.text()); // No need to descend into a variable declarator; } public visitIndexSignature(node: TypeScript.IndexSignatureSyntax): void { - this.createItem(node, TypeScript.Syntax.emptyList(), ScriptElementKind.indexSignatureElement, "[]"); + this.createItem(node, TypeScript.Syntax.emptyList(), ts.ScriptElementKind.indexSignatureElement, "[]"); // No need to descend into an index signature; } public visitEnumElement(node: TypeScript.EnumElementSyntax): void { - this.createItem(node, TypeScript.Syntax.emptyList(), ScriptElementKind.memberVariableElement, node.propertyName.text()); + this.createItem(node, TypeScript.Syntax.emptyList(), ts.ScriptElementKind.memberVariableElement, node.propertyName.text()); // No need to descend into an enum element; } public visitCallSignature(node: TypeScript.CallSignatureSyntax): void { - this.createItem(node, TypeScript.Syntax.emptyList(), ScriptElementKind.callSignatureElement, "()"); + this.createItem(node, TypeScript.Syntax.emptyList(), ts.ScriptElementKind.callSignatureElement, "()"); // No need to descend into a call signature; } public visitConstructSignature(node: TypeScript.ConstructSignatureSyntax): void { - this.createItem(node, TypeScript.Syntax.emptyList(), ScriptElementKind.constructSignatureElement, "new()"); + this.createItem(node, TypeScript.Syntax.emptyList(), ts.ScriptElementKind.constructSignatureElement, "new()"); // No need to descend into a construct signature; } public visitMethodSignature(node: TypeScript.MethodSignatureSyntax): void { - this.createItem(node, TypeScript.Syntax.emptyList(), ScriptElementKind.memberFunctionElement, node.propertyName.text()); + this.createItem(node, TypeScript.Syntax.emptyList(), ts.ScriptElementKind.memberFunctionElement, node.propertyName.text()); // No need to descend into a method signature; } public visitPropertySignature(node: TypeScript.PropertySignatureSyntax): void { - this.createItem(node, TypeScript.Syntax.emptyList(), ScriptElementKind.memberVariableElement, node.propertyName.text()); + this.createItem(node, TypeScript.Syntax.emptyList(), ts.ScriptElementKind.memberVariableElement, node.propertyName.text()); // No need to descend into a property signature; } @@ -316,7 +316,7 @@ module TypeScript.Services { // the parser will synthesize an identifier. // we shouldn't add an unnamed function declaration if (width(node.identifier) > 0) { - this.createItem(node, node.modifiers, ScriptElementKind.functionElement, node.identifier.text()); + this.createItem(node, node.modifiers, ts.ScriptElementKind.functionElement, node.identifier.text()); } // No need to descend into a function declaration; diff --git a/src/services/keywordCompletions.ts b/src/services/keywordCompletions.ts index 3233a0f95a7..5e6b667b2d9 100644 --- a/src/services/keywordCompletions.ts +++ b/src/services/keywordCompletions.ts @@ -53,17 +53,17 @@ module TypeScript.Services { "with", ]; - private static keywordCompletions: CompletionEntry[] = null; + private static keywordCompletions: ts.CompletionEntry[] = null; - public static getKeywordCompltions(): CompletionEntry[]{ + public static getKeywordCompltions(): ts.CompletionEntry[]{ if (KeywordCompletions.keywordCompletions === null) { - var completions: CompletionEntry[] = []; + var completions: ts.CompletionEntry[] = []; for (var i = 0, n = KeywordCompletions.keywords.length; i < n; i++) { var keyword = KeywordCompletions.keywords[i]; completions.push({ name: keyword, - kind: ScriptElementKind.keyword, - kindModifiers: ScriptElementKindModifier.none + kind: ts.ScriptElementKind.keyword, + kindModifiers: ts.ScriptElementKindModifier.none }); } diff --git a/src/services/services.ts b/src/services/services.ts index d3810d30059..488cd4a7282 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -280,31 +280,6 @@ module ts { } } - function initializeServices() { - objectAllocator = { - getNodeConstructor: kind => { - function Node() { - } - var proto = new NodeObject(); - proto.kind = kind; - proto.pos = 0; - proto.end = 0; - proto.flags = 0; - proto.parent = undefined; - Node.prototype = proto; - return Node; - }, - getSymbolConstructor: () => SymbolObject, - getTypeConstructor: () => TypeObject, - getSignatureConstructor: () => SignatureObject, - }; - } - - initializeServices(); -} - - -module TypeScript.Services { export interface Logger { information(): boolean; debug(): boolean; @@ -363,7 +338,7 @@ module TypeScript.Services { getOutliningRegions(fileName: string): TypeScript.TextSpan[]; getBraceMatchingAtPosition(fileName: string, position: number): TypeScript.TextSpan[]; - getIndentationAtPosition(fileName: string, position: number, options: TypeScript.Services.EditorOptions): number; + getIndentationAtPosition(fileName: string, position: number, options: EditorOptions): number; getFormattingEditsForRange(fileName: string, minChar: number, limChar: number, options: FormatCodeOptions): TextEdit[]; getFormattingEditsForDocument(fileName: string, minChar: number, limChar: number, options: FormatCodeOptions): TextEdit[]; @@ -431,8 +406,14 @@ module TypeScript.Services { containerName: string; } + export interface MemberName { + prefix: string; + suffix: string; + text: string; + } + export interface TypeInfo { - memberName: TypeScript.MemberName; + memberName: MemberName; docComment: string; fullSymbolName: string; kind: string; @@ -564,7 +545,7 @@ module TypeScript.Services { acquireDocument( filename: string, compilationSettings: ts.CompilerOptions, - scriptSnapshot: IScriptSnapshot, + scriptSnapshot: TypeScript.IScriptSnapshot, byteOrderMark: ts.ByteOrderMark, version: number, isOpen: boolean, @@ -574,10 +555,10 @@ module TypeScript.Services { document: Document, filename: string, compilationSettings: ts.CompilerOptions, - scriptSnapshot: IScriptSnapshot, + scriptSnapshot: TypeScript.IScriptSnapshot, version: number, isOpen: boolean, - textChangeRange: TextChangeRange + textChangeRange: TypeScript.TextChangeRange ): Document; releaseDocument(filename: string, compilationSettings: ts.CompilerOptions): void @@ -666,59 +647,52 @@ module TypeScript.Services { static prefix = "prefix"; } - export class DiagnosticCategory { - static none = ""; - static error = "error"; - static warning = "warning"; - static message = "message"; - } - export interface IncrementalParse { - (oldSyntaxTree: SyntaxTree, textChangeRange: TextChangeRange, newText: ISimpleText): SyntaxTree + (oldSyntaxTree: TypeScript.SyntaxTree, textChangeRange: TypeScript.TextChangeRange, newText: TypeScript.ISimpleText): TypeScript.SyntaxTree } export class Document { - private _bloomFilter: BloomFilter = null; + private _bloomFilter: TypeScript.BloomFilter = null; // By default, our Document class doesn't support incremental update of its contents. // However, we enable other layers (like teh services layer) to inject the capability // into us by setting this function. - public static incrementalParse: IncrementalParse = IncrementalParser.parse; + public static incrementalParse: IncrementalParse = TypeScript.IncrementalParser.parse; constructor(private compilationSettings: ts.CompilerOptions, public filename: string, public referencedFiles: string[], - private _scriptSnapshot: IScriptSnapshot, + private _scriptSnapshot: TypeScript.IScriptSnapshot, public byteOrderMark: ts.ByteOrderMark, public version: number, public isOpen: boolean, - private _syntaxTree: SyntaxTree, + private _syntaxTree: TypeScript.SyntaxTree, private _soruceFile: ts.SourceFile) { } public isDeclareFile(): boolean { - return isDTSFile(this.filename); + return TypeScript.isDTSFile(this.filename); } - public sourceUnit(): SourceUnitSyntax { + public sourceUnit(): TypeScript.SourceUnitSyntax { // If we don't have a script, create one from our parse tree. return this.syntaxTree().sourceUnit(); } - public diagnostics(): Diagnostic[] { - return this.syntaxTree().diagnostics(); - } + //public diagnostics(): Diagnostic[] { + // return this.syntaxTree().diagnostics(); + //} - public lineMap(): LineMap { + public lineMap(): TypeScript.LineMap { return this.syntaxTree().lineMap(); } - public syntaxTree(): SyntaxTree { + public syntaxTree(): TypeScript.SyntaxTree { if (!this._syntaxTree) { var start = new Date().getTime(); - this._syntaxTree = Parser.parse( - this.filename, SimpleText.fromScriptSnapshot(this._scriptSnapshot), this.compilationSettings.target, this.isDeclareFile()); + this._syntaxTree = TypeScript.Parser.parse( + this.filename, TypeScript.SimpleText.fromScriptSnapshot(this._scriptSnapshot), this.compilationSettings.target, this.isDeclareFile()); var time = new Date().getTime() - start; @@ -742,13 +716,13 @@ module TypeScript.Services { return this._soruceFile; } - public bloomFilter(): BloomFilter { + public bloomFilter(): TypeScript.BloomFilter { if (!this._bloomFilter) { - var identifiers = createIntrinsicsObject(); + var identifiers = TypeScript.createIntrinsicsObject(); var pre = function (cur: TypeScript.ISyntaxElement) { - if (ASTHelpers.isValidAstNode(cur)) { - if (cur.kind() === SyntaxKind.IdentifierName) { - var nodeText = tokenValueText((cur)); + if (TypeScript.ASTHelpers.isValidAstNode(cur)) { + if (cur.kind() === TypeScript.SyntaxKind.IdentifierName) { + var nodeText = TypeScript.tokenValueText((cur)); identifiers[nodeText] = true; } @@ -764,7 +738,7 @@ module TypeScript.Services { } } - this._bloomFilter = new BloomFilter(identifierCount); + this._bloomFilter = new TypeScript.BloomFilter(identifierCount); this._bloomFilter.addKeys(identifiers); } return this._bloomFilter; @@ -780,7 +754,7 @@ module TypeScript.Services { return !this.compilationSettings.out || this.syntaxTree().isExternalModule(); } - public update(scriptSnapshot: IScriptSnapshot, version: number, isOpen: boolean, textChangeRange: TextChangeRange): Document { + public update(scriptSnapshot: TypeScript.IScriptSnapshot, version: number, isOpen: boolean, textChangeRange: TypeScript.TextChangeRange): Document { // See if we are currently holding onto a syntax tree. We may not be because we're // either a closed file, or we've just been lazy and haven't had to create the syntax // tree yet. Access the field instead of the method so we don't accidently realize @@ -804,7 +778,7 @@ module TypeScript.Services { } } - var text = SimpleText.fromScriptSnapshot(scriptSnapshot); + var text = TypeScript.SimpleText.fromScriptSnapshot(scriptSnapshot); // If we don't have a text change, or we don't have an old syntax tree, then do a full // parse. Otherwise, do an incremental parse. @@ -815,7 +789,7 @@ module TypeScript.Services { return new Document(this.compilationSettings, this.filename, this.referencedFiles, scriptSnapshot, this.byteOrderMark, version, isOpen, newSyntaxTree, /*soruceFile*/ null); } - public static create(compilationSettings: ts.CompilerOptions, fileName: string, scriptSnapshot: IScriptSnapshot, byteOrderMark: ts.ByteOrderMark, version: number, isOpen: boolean, referencedFiles: string[]): Document { + public static create(compilationSettings: ts.CompilerOptions, fileName: string, scriptSnapshot: TypeScript.IScriptSnapshot, byteOrderMark: ts.ByteOrderMark, version: number, isOpen: boolean, referencedFiles: string[]): Document { return new Document(compilationSettings, fileName, referencedFiles, scriptSnapshot, byteOrderMark, version, isOpen, /*syntaxTree:*/ null, /*soruceFile*/ null); } } @@ -1015,7 +989,7 @@ module TypeScript.Services { return this._currentFileSyntaxTree; } - public getCurrentScriptSnapshot(filename: string): IScriptSnapshot { + public getCurrentScriptSnapshot(filename: string): TypeScript.IScriptSnapshot { // update _currentFileScriptSnapshot as a part of 'getCurrentFileSyntaxTree' call this.getCurrentFileSyntaxTree(filename); return this._currentFileScriptSnapshot; @@ -1042,8 +1016,8 @@ module TypeScript.Services { return this.createSyntaxTree(filename, scriptSnapshot); } - var nextSyntaxTree = IncrementalParser.parse( - previousSyntaxTree, editRange, SimpleText.fromScriptSnapshot(scriptSnapshot)); + var nextSyntaxTree = TypeScript.IncrementalParser.parse( + previousSyntaxTree, editRange, TypeScript.SimpleText.fromScriptSnapshot(scriptSnapshot)); this.ensureInvariants(filename, editRange, nextSyntaxTree, this._currentFileScriptSnapshot, scriptSnapshot); @@ -1106,7 +1080,7 @@ module TypeScript.Services { // Ok, the trees looked good. So at least our incremental parser agrees with the // normal parser. Now, verify that the incremental tree matches the contents of the // script snapshot. - var incrementalTreeText = fullText(incrementalTree.sourceUnit()); + var incrementalTreeText = TypeScript.fullText(incrementalTree.sourceUnit()); var actualSnapshotText = newScriptSnapshot.getText(0, newScriptSnapshot.getLength()); Debug.assert(incrementalTreeText === actualSnapshotText, 'Expected full texts to be equal'); } @@ -1150,7 +1124,7 @@ module TypeScript.Services { public acquireDocument( filename: string, compilationSettings: ts.CompilerOptions, - scriptSnapshot: IScriptSnapshot, + scriptSnapshot: TypeScript.IScriptSnapshot, byteOrderMark: ts.ByteOrderMark, version: number, isOpen: boolean, @@ -1176,10 +1150,10 @@ module TypeScript.Services { document: Document, filename: string, compilationSettings: ts.CompilerOptions, - scriptSnapshot: IScriptSnapshot, + scriptSnapshot: TypeScript.IScriptSnapshot, version: number, isOpen: boolean, - textChangeRange: TextChangeRange + textChangeRange: TypeScript.TextChangeRange ): Document { var bucket = this.getBucketForCompilationSettings(compilationSettings, /*createIfMissing*/ false); @@ -1211,7 +1185,7 @@ module TypeScript.Services { export function createLanguageService(host: LanguageServiceHost, documentRegistry: IDocumentRegistry): LanguageService { var _syntaxTreeCache: SyntaxTreeCache = new SyntaxTreeCache(host); - var formattingRulesProvider: Formatting.RulesProvider; + var formattingRulesProvider: TypeScript.Services.Formatting.RulesProvider; var hostCache: HostCache; // A cache of all the information about the files on the host side. var program: ts.Program; var typeChecker: ts.TypeChecker; @@ -1313,7 +1287,7 @@ module TypeScript.Services { // file was closed, then we always want to reparse. This is so our tree doesn't keep // the old buffer alive that represented the file on disk (as the host has moved to a // new text buffer). - var textChangeRange: TextChangeRange = null; + var textChangeRange: TypeScript.TextChangeRange = null; if (document.isOpen && isOpen) { textChangeRange = hostCache.getScriptTextChangeRangeSinceVersion(filename, document.version); } @@ -1361,7 +1335,7 @@ module TypeScript.Services { // Try to get a valid display name for this symbol, if we could not find one, then ignore it. // We would like to only show things that can be added after a dot, so for instance numeric properties can // not be accessed with a dot (a.1 <- invalid) - var displayName = CompletionHelpers.getValidCompletionEntryDisplayName(symbol.getName(), program.getCompilerOptions().target); + var displayName = TypeScript.Services.CompletionHelpers.getValidCompletionEntryDisplayName(symbol.getName(), program.getCompilerOptions().target); if (!displayName) { return undefined; } @@ -1393,7 +1367,7 @@ module TypeScript.Services { var document = documentsByName[filename]; var sourceUnit = document.sourceUnit(); - if (CompletionHelpers.isCompletionListBlocker(document.syntaxTree().sourceUnit(), position)) { + if (TypeScript.Services.CompletionHelpers.isCompletionListBlocker(document.syntaxTree().sourceUnit(), position)) { host.log("Returning an empty list because completion was blocked."); return null; } @@ -1401,7 +1375,7 @@ module TypeScript.Services { var node = TypeScript.ASTHelpers.getAstAtPosition(sourceUnit, position, /*useTrailingTriviaAsLimChar*/ true, /*forceInclusive*/ true); if (node && node.kind() === TypeScript.SyntaxKind.IdentifierName && - start(node) === end(node)) { + TypeScript.start(node) === TypeScript.end(node)) { // Ignore missing name nodes node = node.parent; } @@ -1409,14 +1383,14 @@ module TypeScript.Services { var isRightOfDot = false; if (node && node.kind() === TypeScript.SyntaxKind.MemberAccessExpression && - end((node).expression) < position) { + TypeScript.end((node).expression) < position) { isRightOfDot = true; node = (node).expression; } else if (node && node.kind() === TypeScript.SyntaxKind.QualifiedName && - end((node).left) < position) { + TypeScript.end((node).left) < position) { isRightOfDot = true; node = (node).left; @@ -1439,7 +1413,7 @@ module TypeScript.Services { } // TODO: this is a hack for now, we need a proper walking mechanism to verify that we have the correct node - var mappedNode = getNodeAtPosition(document.sourceFile(), end(node) - 1); + var mappedNode = getNodeAtPosition(document.sourceFile(), TypeScript.end(node) - 1); Debug.assert(mappedNode, "Could not map a Fidelity node to an AST node"); @@ -1465,11 +1439,11 @@ module TypeScript.Services { getCompletionEntriesFromSymbols(symbols, activeCompletionSession); } else { - var containingObjectLiteral = CompletionHelpers.getContainingObjectLiteralApplicableForCompletion(document.syntaxTree().sourceUnit(), position); + var containingObjectLiteral = TypeScript.Services.CompletionHelpers.getContainingObjectLiteralApplicableForCompletion(document.syntaxTree().sourceUnit(), position); // Object literal expression, look up possible property names from contextual type if (containingObjectLiteral) { - var searchPosition = Math.min(position, end(containingObjectLiteral)); + var searchPosition = Math.min(position, TypeScript.end(containingObjectLiteral)); var path = TypeScript.ASTHelpers.getAstAtPosition(sourceUnit, searchPosition); // Get the object literal node @@ -1511,7 +1485,7 @@ module TypeScript.Services { // Add keywords if this is not a member completion list if (!isMemberCompletion) { - Array.prototype.push.apply(activeCompletionSession.entries, KeywordCompletions.getKeywordCompltions()); + Array.prototype.push.apply(activeCompletionSession.entries, TypeScript.Services.KeywordCompletions.getKeywordCompltions()); } return { @@ -1666,7 +1640,7 @@ module TypeScript.Services { var type = typeChecker.getTypeOfSymbol(symbol); return { - memberName: new MemberNameString(typeChecker.typeToString(type)), + memberName: new TypeScript.MemberNameString(typeChecker.typeToString(type)), docComment: "", fullSymbolName: typeChecker.symbolToString(symbol, getEnclosingDeclaration(node)), kind: getSymbolKind(symbol), @@ -1682,7 +1656,7 @@ module TypeScript.Services { var type = typeChecker.getTypeOfExpression(node); Debug.assert(type, "getTypeAtPosition: Could not find type for node"); return { - memberName: new MemberNameString(""), + memberName: new TypeScript.MemberNameString(""), docComment: "", fullSymbolName: typeChecker.typeToString(type, getEnclosingDeclaration(node)), kind: getTypeKind(type), @@ -1708,7 +1682,7 @@ module TypeScript.Services { return null; } - if (ast.kind() === SyntaxKind.ParameterList && ast.parent.kind() === SyntaxKind.CallSignature && ast.parent.parent.kind() === SyntaxKind.ConstructorDeclaration) { + if (ast.kind() === TypeScript.SyntaxKind.ParameterList && ast.parent.kind() === TypeScript.SyntaxKind.CallSignature && ast.parent.parent.kind() === TypeScript.SyntaxKind.ConstructorDeclaration) { ast = ast.parent.parent; } @@ -1717,7 +1691,7 @@ module TypeScript.Services { return null; case TypeScript.SyntaxKind.ConstructorDeclaration: var constructorAST = ast; - if (!isConstructorValidPosition || !(position >= start(constructorAST) && position <= start(constructorAST) + "constructor".length)) { + if (!isConstructorValidPosition || !(position >= TypeScript.start(constructorAST) && position <= TypeScript.start(constructorAST) + "constructor".length)) { return null; } else { @@ -1751,8 +1725,8 @@ module TypeScript.Services { } return { - minChar: start(node), - limChar: end(node) + minChar: TypeScript.start(node), + limChar: TypeScript.end(node) }; } @@ -1768,7 +1742,7 @@ module TypeScript.Services { filename = TypeScript.switchToForwardSlashes(filename); var syntaxTree = getSyntaxTree(filename); var items: NavigateToItem[] = []; - GetScriptLexicalStructureWalker.getListsOfAllScriptLexicalStructure(items, filename, syntaxTree.sourceUnit()); + TypeScript.Services.GetScriptLexicalStructureWalker.getListsOfAllScriptLexicalStructure(items, filename, syntaxTree.sourceUnit()); return items; } @@ -1776,13 +1750,13 @@ module TypeScript.Services { // doesn't use compiler - no need to synchronize with host filename = TypeScript.switchToForwardSlashes(filename); var syntaxTree = getSyntaxTree(filename); - return OutliningElementsCollector.collectElements(syntaxTree.sourceUnit()); + return TypeScript.Services.OutliningElementsCollector.collectElements(syntaxTree.sourceUnit()); } function getBraceMatchingAtPosition(filename: string, position: number) { filename = TypeScript.switchToForwardSlashes(filename); var syntaxTree = getSyntaxTree(filename); - return BraceMatcher.getMatchSpans(syntaxTree, position); + return TypeScript.Services.BraceMatcher.getMatchSpans(syntaxTree, position); } function getIndentationAtPosition(filename: string, position: number, editorOptions: EditorOptions) { @@ -1793,7 +1767,7 @@ module TypeScript.Services { var scriptSnapshot = _syntaxTreeCache.getCurrentScriptSnapshot(filename); var scriptText = TypeScript.SimpleText.fromScriptSnapshot(scriptSnapshot); var textSnapshot = new TypeScript.Services.Formatting.TextSnapshot(scriptText); - var options = new FormattingOptions(!editorOptions.ConvertTabsToSpaces, editorOptions.TabSize, editorOptions.IndentSize, editorOptions.NewLineCharacter) + var options = new TypeScript.FormattingOptions(!editorOptions.ConvertTabsToSpaces, editorOptions.TabSize, editorOptions.IndentSize, editorOptions.NewLineCharacter) return TypeScript.Services.Formatting.SingleTokenIndenter.getIndentationAmount(position, syntaxTree.sourceUnit(), textSnapshot, options); } @@ -1934,10 +1908,10 @@ module TypeScript.Services { }; var simpleText = TypeScript.SimpleText.fromString(text); - scanner = Scanner.createScanner(ts.ScriptTarget.ES5, simpleText, reportDiagnostic); + scanner = TypeScript.Scanner.createScanner(ts.ScriptTarget.ES5, simpleText, reportDiagnostic); var lastTokenKind = TypeScript.SyntaxKind.None; - var token: ISyntaxToken = null; + var token: TypeScript.ISyntaxToken = null; do { lastDiagnosticKey = null; @@ -1946,18 +1920,18 @@ module TypeScript.Services { processToken(text, simpleText, offset, token, result); } - while (token.kind() !== SyntaxKind.EndOfFileToken); + while (token.kind() !== TypeScript.SyntaxKind.EndOfFileToken); lastDiagnosticKey = null; return result; } - function processToken(text: string, simpleText: ISimpleText, offset: number, token: TypeScript.ISyntaxToken, result: ClassificationResult): void { + function processToken(text: string, simpleText: TypeScript.ISimpleText, offset: number, token: TypeScript.ISyntaxToken, result: ClassificationResult): void { processTriviaList(text, offset, token.leadingTrivia(simpleText), result); - addResult(text, offset, result, width(token), token.kind()); + addResult(text, offset, result, TypeScript.width(token), token.kind()); processTriviaList(text, offset, token.trailingTrivia(simpleText), result); - if (fullEnd(token) >= text.length) { + if (TypeScript.fullEnd(token) >= text.length) { // We're at the end. if (lastDiagnosticKey === TypeScript.DiagnosticCode.AsteriskSlash_expected) { result.finalLexState = EndOfLineState.InMultiLineCommentTrivia; @@ -2030,4 +2004,26 @@ module TypeScript.Services { getClassificationsForLine: getClassificationsForLine }; } + + function initializeServices() { + objectAllocator = { + getNodeConstructor: kind => { + function Node() { + } + var proto = new NodeObject(); + proto.kind = kind; + proto.pos = 0; + proto.end = 0; + proto.flags = 0; + proto.parent = undefined; + Node.prototype = proto; + return Node; + }, + getSymbolConstructor: () => SymbolObject, + getTypeConstructor: () => TypeObject, + getSignatureConstructor: () => SignatureObject, + }; + } + + initializeServices(); } \ No newline at end of file diff --git a/src/services/shims.ts b/src/services/shims.ts index a8821b1ea44..71fd0ba0320 100644 --- a/src/services/shims.ts +++ b/src/services/shims.ts @@ -18,7 +18,7 @@ /// /// var debugObjectHost = (this); -module TypeScript.Services { +module ts { export interface ScriptSnapshotShim { // Get's a portion of the script snapshot specified by [start, end). getText(start: number, end: number): string; @@ -904,7 +904,7 @@ module TypeScript.Services { /// TODO: this is used by VS, clean this up on both sides of the interfrace -module Services { - export var TypeScriptServicesFactory = TypeScriptServicesFactory; +module TypeScript.Services { + export var TypeScriptServicesFactory = ts.TypeScriptServicesFactory; }