protected override ReferenceNode CreateReferenceNode(string referenceType, ProjectElement element)
        {
            if (referenceType == ProjectFileConstants.Reference)
            {
                if (Path.GetExtension(element.Url).Equals(".pyd", StringComparison.OrdinalIgnoreCase))
                {
                    return(new DeprecatedReferenceNode(
                               ProjectMgr,
                               element,
                               element.GetMetadata(ProjectFileConstants.Include),
                               Strings.PydReferenceDeprecated
                               ));
                }
            }
            else if (referenceType == ProjectFileConstants.WebPiReference)
            {
                return(new DeprecatedReferenceNode(
                           ProjectMgr,
                           element,
                           element.GetMetadata("FriendlyName"),
                           Strings.WebPIReferenceDeprecated
                           ));
            }

            return(base.CreateReferenceNode(referenceType, element));
        }
Example #2
0
        /// <summary>
        /// Create a file node based on an msbuild item.
        /// </summary>
        /// <param name="item">The msbuild item to be analyzed</param>
        public override FileNode CreateFileNode(ProjectElement item)
        {
            Utilities.ArgumentNotNull("item", item);

            CommonFileNode newNode;

            if (string.Compare(GetCodeFileExtension(), Path.GetExtension(item.GetFullPathForElement()), StringComparison.OrdinalIgnoreCase) == 0)
            {
                newNode = CreateCodeFileNode(item);
            }
            else
            {
                newNode = CreateNonCodeFileNode(item);
            }
            string include = item.GetMetadata(ProjectFileConstants.Include);

            newNode.OleServiceProvider.AddService(typeof(EnvDTE.Project),
                                                  new OleServiceProvider.ServiceCreatorCallback(CreateServices), false);
            newNode.OleServiceProvider.AddService(typeof(EnvDTE.ProjectItem), newNode.ServiceCreator, false);
            if (!string.IsNullOrEmpty(include) && Path.GetExtension(include).Equals(".xaml", StringComparison.OrdinalIgnoreCase))
            {
                //Create a DesignerContext for the XAML designer for this file
                newNode.OleServiceProvider.AddService(typeof(DesignerContext), newNode.ServiceCreator, false);
            }

            newNode.OleServiceProvider.AddService(typeof(VSLangProj.VSProject),
                                                  new OleServiceProvider.ServiceCreatorCallback(CreateServices), false);
            return(newNode);
        }
        protected override ReferenceNode CreateReferenceNode(string referenceType, ProjectElement element)
        {
            if (referenceType == ProjectFileConstants.Reference)
            {
                string pyExtension = element.GetMetadata(PythonConstants.PythonExtension);
                if (!String.IsNullOrWhiteSpace(pyExtension))
                {
                    return(new PythonExtensionReferenceNode((PythonProjectNode)ProjectMgr, element, pyExtension));
                }
            }
            else if (referenceType == ProjectFileConstants.WebPiReference)
            {
                return(new WebPiReferenceNode(
                           ProjectMgr,
                           element,
                           element.GetMetadata("Feed"),
                           element.GetMetadata("ProductId"),
                           element.GetMetadata("FriendlyName")
                           ));
            }

            return(base.CreateReferenceNode(referenceType, element));
        }
Example #4
0
        public override DependentFileNode CreateDependentFileNode(ProjectElement item)
        {
            DependentFileNode node = base.CreateDependentFileNode(item);

            if (null != node)
            {
                string include = item.GetMetadata(ProjectFileConstants.Include);
                if (IsCodeFile(include))
                {
                    node.OleServiceProvider.AddService(
                        typeof(SVSMDCodeDomProvider), new OleServiceProvider.ServiceCreatorCallback(CreateServices), false);
                }
            }

            return(node);
        }