Esempio n. 1
0
 static IEnumerable <MonoDevelop.Projects.Dom.IEvent> GetAllEvents(
     MonoDevelop.Projects.Dom.Parser.ProjectDom projectDatabase,
     MonoDevelop.Projects.Dom.IType cls)
 {
     foreach (MonoDevelop.Projects.Dom.IType type in projectDatabase.GetInheritanceTree(cls))
     {
         foreach (MonoDevelop.Projects.Dom.IEvent ev in type.Events)
         {
             yield return(ev);
         }
     }
 }
Esempio n. 2
0
        protected override CompletionDataList GetAttributeValueCompletions(IAttributedXObject attributedOb, XAttribute att)
        {
            var list = base.GetAttributeValueCompletions(attributedOb, att) ?? new CompletionDataList();

            GetType(attributedOb, delegate(IType type, ProjectDom dom) {
                foreach (IProperty prop in GetAllProperties(dom, type))
                {
                    if (prop.Name != att.Name.FullName)
                    {
                        continue;
                    }

                    //boolean completion
                    if (prop.ReturnType.FullName == "System.Boolean")
                    {
                        list.Add("true", "md-literal");
                        list.Add("false", "md-literal");
                        return;
                    }

                    //color completion
                    if (prop.ReturnType.FullName == "System.Windows.Media.Color")
                    {
                        System.Drawing.ColorConverter conv = new System.Drawing.ColorConverter();
                        foreach (System.Drawing.Color c in conv.GetStandardValues(null))
                        {
                            if (c.IsSystemColor)
                            {
                                continue;
                            }
                            string hexcol = string.Format("#{0:x2}{1:x2}{2:x2}", c.R, c.G, c.B);
                            list.Add(c.Name, hexcol);
                        }
                        return;
                    }

                    //enum completion
                    MonoDevelop.Projects.Dom.IType retCls = dom.GetType(prop.ReturnType);
                    if (retCls != null && retCls.ClassType == MonoDevelop.Projects.Dom.ClassType.Enum)
                    {
                        foreach (MonoDevelop.Projects.Dom.IField enumVal in retCls.Fields)
                        {
                            if (enumVal.IsPublic && enumVal.IsStatic)
                            {
                                list.Add(enumVal.Name, "md-literal", enumVal.Documentation);
                            }
                        }
                        return;
                    }
                }
            });
            return(list.Count > 0? list : null);
        }
Esempio n. 3
0
 static IEnumerable <MonoDevelop.Projects.Dom.IProperty> GetAllProperties(
     MonoDevelop.Projects.Dom.Parser.ProjectDom projectDatabase,
     MonoDevelop.Projects.Dom.IType cls)
 {
     foreach (MonoDevelop.Projects.Dom.IType type in projectDatabase.GetInheritanceTree(cls))
     {
         foreach (MonoDevelop.Projects.Dom.IProperty prop in type.Properties)
         {
             yield return(prop);
         }
     }
 }
 static string GetCorrectFileName(MonoDevelop.Projects.Dom.IType type)
 {
     if (type == null || type.CompilationUnit == null || type.SourceProject == null || string.IsNullOrEmpty(type.CompilationUnit.FileName))
     {
         return(null);
     }
     if (type is InstantiatedType)
     {
         type = ((InstantiatedType)type).UninstantiatedType;
     }
     return(Path.Combine(Path.GetDirectoryName(type.CompilationUnit.FileName), type.Name + Path.GetExtension(type.CompilationUnit.FileName)));
 }