public ExpressionResult getExpressionFromCodeSnippet(TextArea textArea)
        {
            IExpressionFinder finder = new CSharpExpressionFinder(this.parseInformation);
            var firstMethodOffset = calculateFirstMethodOffset();
            var adjustedSnippeetText = getAdjustedSnippetText(textArea, firstMethodOffset);

            var offset = firstMethodOffset + textArea.Caret.Offset;

            var expression = finder.FindExpression(adjustedSnippeetText, offset);
            return expression;
        }
		bool ShowNewCompletion(SharpDevelopTextAreaControl editor)
		{
			CSharpExpressionFinder ef = new CSharpExpressionFinder(editor.FileName);
			int cursor = editor.ActiveTextAreaControl.Caret.Offset;
			ExpressionContext context = ef.FindExpression(editor.Document.GetText(0, cursor) + " T.", cursor + 2).Context;
			if (context.IsObjectCreation) {
				editor.ShowCompletionWindow(new CtrlSpaceCompletionDataProvider(context), ' ');
				return true;
			}
			return false;
		}
 public ExpressionResult getExpressionFromTextArea(TextArea textArea)
 {
     IExpressionFinder finder = new CSharpExpressionFinder(parseInformation);
     return finder.FindExpression(textArea.Document.TextContent, textArea.Caret.Offset);            
 }