Exemple #1
0
 private void TestParseTypeRenameDeclarationInternal(Func <string, NativeXTypeRenameDeclaration> parser)
 {
     Action <NativeXTypeRenameDeclaration> vd1 = d =>
     {
         Assert.AreEqual("IntList", d.Name);
         NativeXInstanciatedType t = (NativeXInstanciatedType)d.Type;
         Assert.AreEqual("List", t.ElementType.ReferencedName);
         Assert.AreEqual(1, t.GenericArguments.Count);
         Assert.AreEqual("int", ((NativeXReferenceType)t.GenericArguments[0]).ReferencedName);
     };
     string d1 = "type IntList = List<int>;";
     {
         NativeXTypeRenameDeclaration d = parser(d1);
         vd1(d);
     }
     {
         NativeXTypeRenameDeclaration d = parser(g1 + d1);
         vg1(d);
         vd1(d);
     }
     {
         NativeXTypeRenameDeclaration d = parser(g2 + d1);
         vg2(d);
         vd1(d);
     }
     {
         NativeXTypeRenameDeclaration d = parser(g3 + d1);
         vg3(d);
         vd1(d);
     }
 }
Exemple #2
0
        protected IEnumerable <TextEditorPopupItem> CreatePopupTypes(CodeScope scope)
        {
            Bitmap typeImage                 = null;
            Bitmap templateImage             = null;
            Bitmap parameterImage            = null;
            List <TextEditorPopupItem> items = new List <TextEditorPopupItem>();

            foreach (CodeNode node in scope.FindAllDistinct())
            {
                {
                    NativeXStructureDeclaration structdecl = node as NativeXStructureDeclaration;
                    if (structdecl != null && structdecl.Name != null)
                    {
                        items.Add(new TextEditorPopupItem()
                        {
                            Text  = structdecl.Name,
                            Image = structdecl.GenericParameters == null
                                ? (typeImage ?? (typeImage = Images.Type))
                                : (templateImage ?? (templateImage = Images.Template))
                        });
                    }
                }
                {
                    NativeXTypeRenameDeclaration typedecl = node as NativeXTypeRenameDeclaration;
                    if (typedecl != null && typedecl.Name != null)
                    {
                        items.Add(new TextEditorPopupItem()
                        {
                            Text  = typedecl.Name,
                            Image = typedecl.GenericParameters == null
                                ? (typeImage ?? (typeImage = Images.Type))
                                : (templateImage ?? (templateImage = Images.Template))
                        });
                    }
                }
                {
                    NativeXGenericParameter genparam = node as NativeXGenericParameter;
                    if (genparam != null && genparam.ParameterName != null)
                    {
                        items.Add(new TextEditorPopupItem()
                        {
                            Text  = genparam.ParameterName,
                            Image = (parameterImage ?? (parameterImage = Images.Parameter))
                        });
                    }
                }
            }
            foreach (string key in NativeXTokenizer.TypedKeywords)
            {
                items.Add(new TextEditorPopupItem()
                {
                    Text  = key,
                    Image = (typeImage ?? (typeImage = Images.Type))
                });
            }
            foreach (string key in new string[] { "typeof", "function" })
            {
                items.Add(new TextEditorPopupItem()
                {
                    Text  = key,
                    Image = Images.Keyword
                });
            }
            return(items);
        }