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

GetNewExpressionAt() private method

private GetNewExpressionAt ( int offset ) : ExpressionResult
offset int
return ExpressionResult
		ExpressionResult GetNewExpressionAt(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);
			if (expr == null) {
				// try without ";"
				sb = new StringBuilder(text);
				sb.Append("a ()");
				AppendMissingClosingBrackets(sb, text, false);
				stream = new System.IO.StringReader(sb.ToString());
				completionUnit = parser.Parse(stream, "a.cs", 0);
				stream.Close();
				loc = document.GetLocation(offset);
				
				expr = completionUnit.GetNodeAt(loc, n => n is Expression);
				if (expr == null) {
					return null;
				}
			}
			return new ExpressionResult(expr, completionUnit);
		}