public static IList <TextChange> GetEditsAfterKeystroke(SyntaxTree syntaxTree, int position, char character, FormattingOptions options) { var location = syntaxTree.MapRootFilePosition(position); // Find span of block / statement terminated by the character just typed. var token = ((SyntaxNode)syntaxTree.Root).FindTokenOnLeft(location); if (token.Text != character.ToString()) { return(new List <TextChange>()); } // Get span of node containing this token. var span = token.Parent.GetTextSpanRoot(); if (span == null) { return(new List <TextChange>()); } return(GetEdits(syntaxTree, (SyntaxNode)syntaxTree.Root, span.Value.Span, options)); }
public static IList <TextChange> GetEdits(SyntaxTree syntaxTree, SyntaxNode syntaxNode, TextSpan textSpan, FormattingOptions options) { // Format. var formattingVisitor = new FormattingVisitor(syntaxTree, textSpan, options); formattingVisitor.Visit(syntaxNode); return(formattingVisitor.Edits.Values); }