ICSharpCode.NRefactory.CSharp.Completion.CSharpCompletionEngine.GetExpressionAt C# (CSharp) Method

GetExpressionAt() private method

private GetExpressionAt ( int offset ) : ExpressionResult
offset int
return ExpressionResult
		ExpressionResult GetExpressionAt(int offset)
		{
			var parser = new CSharpParser();
			string text = this.document.GetText(0, this.offset); 
			var sb = new StringBuilder(text);
			sb.Append("a;");
			AppendMissingClosingBrackets(sb, text, false);
			var stream = new System.IO.StringReader(sb.ToString());
			var completionUnit = parser.Parse(stream, "a.cs", 0);
			stream.Close();
			var loc = document.GetLocation(offset);
			
			var expr = completionUnit.GetNodeAt(
				loc,
				n => n is Expression || n is VariableDeclarationStatement
			);
			if (expr == null) {
				return null;
			}
			return new ExpressionResult(expr, completionUnit);
		}