Ejemplo n.º 1
0
        private void ModuleRenamed(object source, ElementPropertyChangedEventArgs e)
        {
            //If an element with the old name exists it means the designer is auto-assigning a new name
            //to a newly dropped element and there's no need to rename the corresponding code element. In
            //fact that would be wrong because we would end up renaming the code element corresponding to the
            //model element with the old name, whose name hasn't changed.
            if (((Module)e.ModelElement).CountModulesWithName((string)e.OldValue) > 0)
            {
                return;
            }

            FileCodeModel2 fcm = GetGeneratedFileCodeModel();

            if (fcm == null)
            {
                return;
            }
            CodeElement2 field = FindElement(fcm.CodeElements, (string)e.OldValue, vsCMElement.vsCMElementVariable);

            if (field != null)
            {
                field.RenameSymbol((string)e.NewValue);
            }

            UpdateView();
        }
Ejemplo n.º 2
0
        private string RenameMethod(CodeElement item)
        {
            //var sb = new StringBuilder();
            if (item.Kind == vsCMElement.vsCMElementFunction)
            {
                //Debug.WriteLine("RenameMethod.FullName:" + item.FullName);
                if (methodWhiteList.Contains(item.Name) || interFaceFunction.Contains(item.Name) || item.Name.Contains(alien))
                {
                    Print("WriteListFunction :" + item.Name);
                    return("");
                }
                try
                {
                    CodeFunction2 code3 = item as CodeFunction2;
                    PrintFunction2Info(code3);
                    if (code3.OverrideKind == vsCMOverrideKind.vsCMOverrideKindOverride ||
                        code3.OverrideKind == vsCMOverrideKind.vsCMOverrideKindNew ||
                        code3.OverrideKind == vsCMOverrideKind.vsCMOverrideKindAbstract ||
                        code3.OverrideKind == vsCMOverrideKind.vsCMOverrideKindVirtual)
                    {
                        PrintDetial("SpecialFunction :" + item.Name);
                        return("");
                    }
                    if (code3.IsShared)
                    {
                        PrintDetial("StaticFunction :" + item.Name);
                        return("");
                    }
                    if (item.Name.Contains(stringGlobal))
                    {
                        PrintDetial("GlobalFunction :" + item.Name);
                        return("");
                    }

                    CodeElement2 code2  = item as CodeElement2;
                    var          one    = nameCounter++;
                    var          alien2 = alien + nameCounter++;
                    var          three  = nameCounter++;
                    PrintDetial("RenameFunction :" + item.Name);
                    var randomOne   = GetRandomName(3, 5, useUpper: true);
                    var randomThree = GetRandomName(3, 5, useUpper: true);
                    var replacement = string.Format("{0}{1}{2}{3}{4}", randomOne, one, item.Name.Insert(item.Name.Length / 2, alien2), randomThree, three);
                    code2.RenameSymbol(replacement);

                    //sb += ("    " + code.Name + " " + code.IsCodeType + " " + code.Kind + "\n");
                }
                catch (Exception ex)
                {
                    //except += " error: " + ex.Message + "\n" + item.Name;
                    CodeFunction2 code3 = item as CodeFunction2;
                    PrintFunction2Info(code3);
                }
            }
            else
            {
            }
            return("");
        }
Ejemplo n.º 3
0
        private string RenameAttr(CodeElement item)
        {
            //var sb = new StringBuilder();
            //try
            //{
            if (item.Kind == vsCMElement.vsCMElementVariable || item.Kind == vsCMElement.vsCMElementParameter || item.Kind == vsCMElement.vsCMElementProperty)
            {
                if (item.Name.Contains(alien))
                {
                    PrintDetial("AttrNameHasAlien :" + item.Name);
                    return("");
                }
                if (item.Name.Contains(stringThis))
                {
                    PrintDetial("AttrNameHasThis :" + item.Name);
                    return("");
                }
                if (item.Name.Contains(stringGlobal))
                {
                    PrintDetial("GlobalAttr :" + item.Name);
                    return("");
                }
                if (interFaceFunction.Contains(item.Name))
                {
                    PrintDetial("InterFaceAttr :" + item.Name);
                    return("");
                }
                CodeProperty2 CodeProperty = item as CodeProperty2;
                if (CodeProperty != null && CodeProperty.OverrideKind != null && (CodeProperty.OverrideKind == vsCMOverrideKind.vsCMOverrideKindOverride ||
                                                                                  CodeProperty.OverrideKind == vsCMOverrideKind.vsCMOverrideKindNew ||
                                                                                  CodeProperty.OverrideKind == vsCMOverrideKind.vsCMOverrideKindAbstract ||
                                                                                  CodeProperty.OverrideKind == vsCMOverrideKind.vsCMOverrideKindVirtual))
                {
                    PrintDetial("AttrIsSpecial :" + item.Name);
                    return("");
                }
                CodeVariable2 codeVariable = item as CodeVariable2;
                if ((CodeProperty != null && CodeProperty.IsShared) ||
                    (codeVariable != null && codeVariable.IsShared))
                {
                    PrintDetial("StaticAttr :" + item.Name);
                    return("");
                }
                try
                {
                    CodeElement2 code2  = item as CodeElement2;
                    var          one    = nameCounter++;
                    var          alien2 = alien + nameCounter++;
                    var          three  = nameCounter++;
                    PrintDetial("RenameAttribute :" + item.Name);
                    var randomOne   = GetRandomName(3, 5, useUpper: true);
                    var randomThree = GetRandomName(3, 5, useUpper: true);
                    var replacement = string.Format("{0}{1}{2}{3}{4}", randomOne, one, item.Name.Insert(item.Name.Length / 2, alien2), randomThree, three);
                    code2.RenameSymbol(replacement);
                }
                catch (Exception ex)
                {
                    except += " error: " + ex.Message + "\n" + item.Name;
                    PrintProperty2Info(CodeProperty);
                }
                //sb += ("    " + code.Name + " " + code.IsCodeType + " " + code.Kind + "\n");
            }
            else
            {
            }

            return("");
        }
Ejemplo n.º 4
0
        private string RenameClass(CodeElement item)
        {
            //var sb = new StringBuilder();
            //try
            //{
            if (item.Kind == vsCMElement.vsCMElementClass)
            {
                //if (item.Name.Contains("ACTRuntimeSoundPlayer"))
                //{
                //}
                CodeClass2 codeClass2 = item as CodeClass2;
                PrintClass2Info(codeClass2);
                //if (hasHandleClasses.Contains(item.Name) && codeClass2.ClassKind != vsCMClassKind.vsCMClassKindPartialClass)
                //    return "";
                //if (whiteList.Contains(item.Name))
                //    return "";
                //if (item.Name.Contains(alien) && codeClass2.ClassKind != vsCMClassKind.vsCMClassKindPartialClass)
                //    return "";
                if (codeClass2.IsShared)
                {
                    PrintDetial("StaticClass :" + item.Name);
                    return("");
                }
                if (codeClass2.Name.Contains(stringGlobal))
                {
                    PrintDetial("GlobalClass :" + item.Name);
                    return("");
                }

                if (codeClass2.ImplementedInterfaces.Count > 0)
                {
                    foreach (CodeInterface2 codeE in codeClass2.ImplementedInterfaces)
                    {
                        if (codeE.Members != null && codeE.Members.Count > 0)
                        {
                            if (codeE.Bases != null)
                            {
                                PrintDetial("实现了非基接口类 :" + item.Name);
                                return("");
                            }
                            foreach (CodeElement codeE2 in codeE.Members)
                            {
                                if (codeE2.Kind == vsCMElement.vsCMElementFunction)
                                {
                                    Debug.WriteLine("interface name:" + codeE.Name + "." + codeE2.Name);
                                }
                                interFaceFunction.Add(codeE.Name + "." + codeE2.Name);
                                interFaceFunction.Add(codeE2.Name);
                            }
                        }
                    }
                }

                CodeElement2 code2 = item as CodeElement2;
                try
                {
                    var one    = nameCounter++;
                    var alien2 = alien + nameCounter++;
                    var three  = nameCounter++;
                    PrintDetial("RenameClass :" + item.Name);
                    hasHandleClasses.Add(item.Name);
                    var randomOne   = GetRandomName(3, 5, useUpper: true);
                    var randomThree = GetRandomName(3, 5, useUpper: true);
                    var replacement = string.Format("{0}{1}{2}{3}{4}", randomOne, one, item.Name.Insert(item.Name.Length / 2, alien2), randomThree, three);
                    code2.RenameSymbol(replacement);
                    hasHandleClasses.Add(replacement);
                }
                catch (Exception ex)
                {
                    except += " error: " + ex.Message + "\n" + item.Name;
                    PrintClass2Info(codeClass2);
                }
                //sb += ("    " + code.Name + " " + code.IsCodeType + " " + code.Kind + "\n");
                var resAttrs   = RenameAttrs(item);
                var resMethods = RenameMethods(item);
            }
            //sb.AppendLine(RenameClasses(item));

            //sb.AppendLine(resAttrs);
            //sb.AppendLine(resMethods);

            //sb.AppendLine(item.Name + " " + item.Kind);
            //}
            //catch (Exception ex)
            //{
            //    except += " error: " + ex.Message + "\n";// item.Name +
            //}
            //return sb.ToString();
            return("");
        }