static string ResolveExpression (Document doc, int offset) { var editor = doc.Editor; var unit = doc.ParsedDocument.GetAst<SyntaxTree> (); if (unit == null) return null; var file = doc.ParsedDocument.ParsedFile as CSharpUnresolvedFile; if (file == null) return null; ResolveResult result; AstNode node; var loc = editor.OffsetToLocation (offset); if (!doc.TryResolveAt (loc, out result, out node)) return null; if (result is LocalResolveResult) return ((LocalResolveResult)result).Variable.Name; return editor.GetTextBetween (node.StartLocation, node.EndLocation); }
static string ResolveExpression (Document doc, string content, int offset) { var editor = doc.Editor; ResolveResult result; int startOffset; AstNode node; var loc = editor.OffsetToLocation (offset); if (!doc.TryResolveAt (loc, out result, out node)) return null; return DebugValueTooltipProvider.ResolveExpression (doc.Editor, result, node, out startOffset); }
static string ResolveExpression(Document doc, string content, int offset) { var editor = doc.Editor; ResolveResult result; int startOffset; AstNode node; var loc = editor.OffsetToLocation (offset); if (!doc.TryResolveAt (loc, out result, out node)) return null; return CSharpCompletionTextEditorExtension.ResolveExpression (doc.Editor, result, node, out startOffset); }