public ExpressionCodeGenerator( InsertionPoint insertionPoint, SelectionResult selectionResult, AnalyzerResult analyzerResult) : base(insertionPoint, selectionResult, analyzerResult) { }
public SingleStatementCodeGenerator( InsertionPoint insertionPoint, SelectionResult selectionResult, AnalyzerResult analyzerResult) : base(insertionPoint, selectionResult, analyzerResult) { }
public MultipleStatementsCodeGenerator( InsertionPoint insertionPoint, SelectionResult selectionResult, AnalyzerResult analyzerResult) : base(insertionPoint, selectionResult, analyzerResult) { }
protected override async Task <InsertionPoint> GetInsertionPointAsync(SemanticDocument document, int position, CancellationToken cancellationToken) { //Contract.ThrowIfFalse(position >= 0); var root = await document.Document.GetSyntaxRootAsync(cancellationToken).ConfigureAwait(false); var basePosition = root.FindToken(position); var memberNode = basePosition.GetAncestor <MemberDeclarationSyntax>(); // Contract.ThrowIfNull(memberNode); // Contract.ThrowIfTrue(memberNode.Kind() == SyntaxKind.NamespaceDeclaration); var globalStatement = memberNode as GlobalStatementSyntax; if (globalStatement != null) { // check whether we are extracting whole global statement out if (this.OriginalSelectionResult.FinalSpan.Contains(memberNode.Span)) { return(await InsertionPoint.CreateAsync(document, globalStatement.Parent, cancellationToken).ConfigureAwait(false)); } return(await InsertionPoint.CreateAsync(document, globalStatement.Statement, cancellationToken).ConfigureAwait(false)); } return(await InsertionPoint.CreateAsync(document, memberNode, cancellationToken).ConfigureAwait(false)); }
public static async Task <GeneratedCode> GenerateAsync( InsertionPoint insertionPoint, SelectionResult selectionResult, AnalyzerResult analyzerResult, CancellationToken cancellationToken) { var codeGenerator = Create(insertionPoint, selectionResult, analyzerResult); return(await codeGenerator.GenerateAsync(cancellationToken).ConfigureAwait(false)); }
protected CSharpCodeGenerator( InsertionPoint insertionPoint, SelectionResult selectionResult, AnalyzerResult analyzerResult) : base(insertionPoint, selectionResult, analyzerResult) { //Contract.ThrowIfFalse(this.SemanticDocument == selectionResult.SemanticDocument); var nameToken = (SyntaxToken)CreateMethodName(); _methodName = nameToken.WithAdditionalAnnotations(this.MethodNameAnnotation); }
protected CodeGenerator(InsertionPoint insertionPoint, SelectionResult selectionResult, AnalyzerResult analyzerResult) { //Contract.ThrowIfFalse(insertionPoint.SemanticDocument == analyzerResult.SemanticDocument); this.InsertionPoint = insertionPoint; this.SemanticDocument = insertionPoint.SemanticDocument; this.SelectionResult = selectionResult; this.AnalyzerResult = analyzerResult; this.MethodNameAnnotation = new SyntaxAnnotation(); this.CallSiteAnnotation = new SyntaxAnnotation(); this.MethodDefinitionAnnotation = new SyntaxAnnotation(); }
private static CSharpCodeGenerator Create( InsertionPoint insertionPoint, SelectionResult selectionResult, AnalyzerResult analyzerResult) { if (ExpressionCodeGenerator.IsExtractMethodOnExpression(selectionResult)) { return(new ExpressionCodeGenerator(insertionPoint, selectionResult, analyzerResult)); } if (SingleStatementCodeGenerator.IsExtractMethodOnSingleStatement(selectionResult)) { return(new SingleStatementCodeGenerator(insertionPoint, selectionResult, analyzerResult)); } if (MultipleStatementsCodeGenerator.IsExtractMethodOnMultipleStatements(selectionResult)) { return(new MultipleStatementsCodeGenerator(insertionPoint, selectionResult, analyzerResult)); } return(null); //Contract.FailWithReturn<CSharpCodeGenerator>("Unknown selection"); }
protected override Task<MethodExtractor.GeneratedCode> GenerateCodeAsync(InsertionPoint insertionPoint, SelectionResult selectionResult, AnalyzerResult analyzeResult, CancellationToken cancellationToken) { return CSharpCodeGenerator.GenerateAsync(insertionPoint, selectionResult, analyzeResult, cancellationToken); }
protected override Task <MethodExtractor.GeneratedCode> GenerateCodeAsync(InsertionPoint insertionPoint, SelectionResult selectionResult, AnalyzerResult analyzeResult, CancellationToken cancellationToken) { return(CSharpCodeGenerator.GenerateAsync(insertionPoint, selectionResult, analyzeResult, cancellationToken)); }
protected abstract Task<GeneratedCode> GenerateCodeAsync(InsertionPoint insertionPoint, SelectionResult selectionResult, AnalyzerResult analyzeResult, CancellationToken cancellationToken);
protected abstract Task <GeneratedCode> GenerateCodeAsync(InsertionPoint insertionPoint, SelectionResult selectionResult, AnalyzerResult analyzeResult, CancellationToken cancellationToken);