/// <summary> /// Perform constructor-specific completion /// </summary> private ValaCompletionDataList CompleteConstructor(string lineText, int line, int column) { ProjectInformation parser = Parser; Match match = initializationRegex.Match(lineText); ValaCompletionDataList list = new ValaCompletionDataList(); ThreadPool.QueueUserWorkItem(delegate { if (match.Success) { // variable initialization if (match.Groups["typename"].Success || "var" != match.Groups["typename"].Value) { // simultaneous declaration and initialization parser.GetConstructorsForType(match.Groups["typename"].Value, Document.FileName, line, column, list); } else if (match.Groups["variable"].Success) { // initialization of previously declared variable parser.GetConstructorsForExpression(match.Groups["variable"].Value, Document.FileName, line, column, list); } if (0 == list.Count) { // Fallback to known types parser.GetTypesVisibleFrom(Document.FileName, line, column, list); } } }); return(list); } // CompleteConstructor