MonoDevelop.CSharp.Completion.CSharpTextEditorCompletion.GetParameterCompletionCommandOffset C# (CSharp) Method

GetParameterCompletionCommandOffset() public method

public GetParameterCompletionCommandOffset ( int &cpos ) : bool
cpos int
return bool
		public override bool GetParameterCompletionCommandOffset (out int cpos)
		{
// Start calculating the parameter offset from the beginning of the
// current member, instead of the beginning of the file. 
			cpos = textEditorData.Caret.Offset - 1;
			IMember mem = Document.ParsedDocument.CompilationUnit.GetMemberAt (textEditorData.Caret.Line, textEditorData.Caret.Column);
			if (mem == null || (mem is IType))
				return false;
			int startPos = GetMemberStartPosition (mem);
			int parenDepth = 0;
			int chevronDepth = 0;
			while (cpos > startPos) {
				char c = textEditorData.GetCharAt (cpos);
				if (c == ')')
					parenDepth++;
				if (c == '>')
					chevronDepth++;
				if (parenDepth == 0 && c == '(' || chevronDepth == 0 && c == '<') {
					int p = NRefactoryParameterDataProvider.GetCurrentParameterIndex (CompletionWidget, cpos + 1, startPos);
					if (p != -1) {
						cpos++;
						return true;
					} else {
						return false;
					}
				}
				if (c == '(')
					parenDepth--;
				if (c == '<')
					chevronDepth--;
				cpos--;
			}
			return false;
		}