In Visual Studio 2013 there is a command for implementing an interface called Edit.ImplementInterfaceStubImplicitly.
In Visual studio 2015 Update 2 the Edit.ImplementInterfaceStubImplicitly command is gone.
The function Implement Interface is still there, I guess implemented as a Codefix.
Is there a way to invoke the Implement Interface Codefix from an OleMenuCommand or IWizard?
IVsTextManager textManager = (IVsTextManager)VSObjects.GlobalProvider.GetService(typeof(SVsTextManager)); foreach (CodeElement element in ProjectItem.FileCodeModel.CodeElements) { if (element.Kind == vsCMElement.vsCMElementNamespace) { foreach (CodeElement type in ((CodeNamespace)element).Members) { CodeClass codeClass = type as CodeClass; if (codeClass != null && HasInterfacesToImplement(codeClass)) { string classDeclaration = GetClassDeclarationLine(codeClass); List<int> columnNumbers = GetInterfacesStartColumns(classDeclaration, 4); TextPoint textPoint = codeClass.GetStartPoint(vsCMPart.vsCMPartHeader); IVsTextBuffer buffer = null; IVsTextView view; textManager.GetActiveView(1, buffer, out view); foreach (int column in columnNumbers) { view.SetCaretPos(textPoint.Line - 1, column); VSObjects.DTE.ExecuteCommand("Edit.ImplementInterfaceStubsImplicitly", ""); } ProjectItem.Save(ProjectItem.Name); return true; } } }
This is my code that worked in Visual Studio 2013 that called the Edit.ImplementInterfaceStubImplicitly command. I need to replace this with some code that calls the new implementation of the Implement Interface function in Visual Studio 2015.
I can't find any documentation on how to invoke a Codefix from code.
/Christer Eriksson