private string CreateValidIdentifier(IVsHierarchy hierarchy, string originalFileName) { CodeDomProvider codeDomProvider = null; IVSMDCodeDomProvider service = base.GetService(typeof(SVSMDCodeDomProvider)) as IVSMDCodeDomProvider; if (service != null) { codeDomProvider = (CodeDomProvider)service.CodeDomProvider; } if (codeDomProvider == null) { string kind = ToDteProject(hierarchy).Kind; if (StringComparer.OrdinalIgnoreCase.Compare("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}", kind) == 0) { codeDomProvider = new CSharpCodeProvider(); } else { codeDomProvider = new VBCodeProvider(); } } if (codeDomProvider != null) { return(codeDomProvider.CreateValidIdentifier(originalFileName)); } return(originalFileName); }
/// <include file='doc\VSDesignerLoader.uex' path='docs/doc[@for="VSDesignerLoader.CreateCodeLoader"]/*' /> /// <devdoc> /// Called to create the MCM loader. /// </devdoc> protected override CodeLoader CreateCodeLoader(TextBuffer buffer, IDesignerLoaderHost host) { CodeLoader loader = null; // Get the context object off of the hierarchy, and ask it for an IVSMDCodeDomProvider // instance. // IVsHierarchy hier = Hierarchy; if (hier is IVsProject) { NativeMethods.IOleServiceProvider oleProvider = (NativeMethods.IOleServiceProvider)((IVsProject)hier).GetItemContext(ItemId); if (oleProvider != null) { ServiceProvider contextProv = new ServiceProvider(oleProvider); IVSMDCodeDomProvider codeDomProvider = (IVSMDCodeDomProvider)contextProv.GetService(typeof(IVSMDCodeDomProvider)); if (codeDomProvider != null) { loader = new VsCodeDomLoader(this, hier, ItemId, (CodeDomProvider)codeDomProvider.CodeDomProvider, buffer, host); } } } if (loader == null) { throw new NotSupportedException(SR.GetString(SR.DESIGNERLOADERNoLanguageSupport)); } return(loader); }
/// <summary> /// This method will get the CodeDomDocDataAdapter corresponding to the active XAML file in /// the designer. /// </summary> /// <returns>The CodeDomDocDataAdapter for the .py file that corresponds to the active xaml file</returns> public CodeDomDocDataAdapter GetDocDataAdapterForPyFile() { IVSMDCodeDomProvider codeDom = (new ServiceProvider(pyFile.OleServiceProvider, true)).GetService(typeof(SVSMDCodeDomProvider)) as IVSMDCodeDomProvider; DocData data = new DocData((project as PythonProjectNode).ProjectMgr.Site, pyFile.Url); CodeDomDocDataAdapter cdDocDataAdapter = new CodeDomDocDataAdapter((project as PythonProjectNode).ProjectMgr.Site, data); return(cdDocDataAdapter); }
///------------------------------------------------------------------------------------------------------------- /// <summary> /// Create CodeDomProvider for the language of the file /// </summary> ///------------------------------------------------------------------------------------------------------------- protected virtual CodeDomProvider CreateCodeDomProvider(uint itemid) { Microsoft.VisualStudio.OLE.Interop.IServiceProvider oleServiceProvider; ErrorHandler.ThrowOnFailure(((IVsProject)this._hierarchy).GetItemContext(itemid, out oleServiceProvider)); ServiceProvider serviceProvider = new ServiceProvider(oleServiceProvider); IVSMDCodeDomProvider provider = serviceProvider.GetService(typeof(SVSMDCodeDomProvider)) as IVSMDCodeDomProvider; CodeDomProvider codeDomProvider = null; if (provider != null) { codeDomProvider = provider.CodeDomProvider as CodeDomProvider; } Debug.Assert(codeDomProvider!=null, "Failed to create CodeDomProvider"); return codeDomProvider; }
protected virtual CodeDomProvider GetCodeProvider() { if (codeDomProvider == null) { IVSMDCodeDomProvider provider = GetService(typeof(SVSMDCodeDomProvider)) as IVSMDCodeDomProvider; if (provider != null) { codeDomProvider = provider.CodeDomProvider as CodeDomProvider; } else { codeDomProvider = CodeDomProvider.CreateProvider("C#"); } } return(codeDomProvider); }
/// <summary> /// Returns a CodeDomProvider object for the language of the project containing /// the project item the generator was called on /// </summary> /// <returns>A CodeDomProvider object</returns> protected virtual CodeDomProvider GetCodeProvider() { if (codeDomProvider == null) { //Query for IVSMDCodeDomProvider/SVSMDCodeDomProvider for this project type IVSMDCodeDomProvider provider = GetService(typeof(SVSMDCodeDomProvider)) as IVSMDCodeDomProvider; if (provider != null) { codeDomProvider = provider.CodeDomProvider as CodeDomProvider; } else { //In the case where no language specific CodeDom is available, fall back to C# codeDomProvider = CodeDomProvider.CreateProvider("C#"); } } return(codeDomProvider); }
/// <summary> /// Returns a CodeDomProvider object for the language of the project containing /// the project item the generator was called on /// </summary> /// <returns>A CodeDomProvider object</returns> protected virtual CodeDomProvider GetCodeProvider() { if (codeDomProvider == null) { //Query for IVSMDCodeDomProvider/SVSMDCodeDomProvider for this project type IVSMDCodeDomProvider provider = GetService(typeof(Microsoft.VisualStudio.Shell.Interop.SVSMDCodeDomProvider)) as IVSMDCodeDomProvider; if (provider != null) { codeDomProvider = provider.CodeDomProvider as CodeDomProvider; } else { //In the case where no language specific CodeDom is available, fall back to CSharp codeDomProvider = CodeDomProvider.CreateProvider("CSharp"); } } return(codeDomProvider); }
private CodeDomProvider GetCodeDomProvider() { if (_fileNode is NemerleFileNode) { return(((NemerleFileNode)_fileNode).CodeDomProvider); } else { // более универсальный способ получить CodeDomProvider. Скопирован из примера интеграции IronPython using (ServiceProvider sp = new ServiceProvider(_fileNode.OleServiceProvider)) { IVSMDCodeDomProvider smdProvider = sp.GetService(typeof(Microsoft.VisualStudio.Shell.Interop.SVSMDCodeDomProvider)) as IVSMDCodeDomProvider; if (null == smdProvider) { return(null); } return(smdProvider.CodeDomProvider as CodeDomProvider); } } }