public void Invoke() { var classPicker = new ClassPicker(_snapshot.GetProject(GaugePackage.DTE)); var selectedClass = string.Empty; classPicker.ShowModal(); selectedClass = classPicker.SelectedClass; var containingLine = _trackingSpan.GetStartPoint(_snapshot).GetContainingLine(); if (_project.GetStepImplementation(containingLine) != null || selectedClass == null) { return; } CodeClass targetClass; CodeFunction implementationFunction; var gotImplementation = _stepImplementationGenerator.TryGenerateMethodStub(selectedClass, containingLine, out targetClass, out implementationFunction); if (!gotImplementation) { return; } _project.RefreshImplementations(); Project.NavigateToFunction(implementationFunction); _unimplementedStepTagger.MarkTagImplemented(_span); IsEnabled = false; }