public void StubCode(CodeGenDescription desc, VisualElement ve)
 {
     LoadMonoScript();
     if (desc.Type == typeof(Button))
     {
         if (!ContainsCallback(desc.CallbackMethodName))
         {
             var stubCode = EditorWindowCodeGen.GetMethodCode(
                 methodName: desc.CallbackMethodName,
                 debugLogMessage: $"{ve.name} Clicked");
             StubCodeAndSave(windowEventFilePath, monoScript.text, stubCode);
         }
     }
     else
     {
         if (!ContainsCallback(desc.CallbackMethodName))
         {
             var stubCode = EditorWindowCodeGen.GetEventMethodCode(
                 methodName: desc.CallbackMethodName,
                 eventTypeName: desc.EventTypeName,
                 debugLogMessage: $"On {desc.EventTypeName}"
                 );
             StubCodeAndSave(windowEventFilePath, monoScript.text, stubCode);
         }
     }
 }
예제 #2
0
    void GenerateCode(CodeGenDescription desc)
    {
        var treeAssetPath = Path;

        editorWindowCodeBuilder.Save(ClassName);

        var windowRegisterFilePath = Path.Replace(".uxml", ".RegisterCallbacks.cs");
        var registerWindowScript   = AssetDatabase.LoadAssetAtPath <MonoScript>(windowRegisterFilePath);

        if (registerWindowScript == null)
        {
            var registerScriptCode = EditorWindowCodeGen.GenerateEditorWindowRegisterCode(ClassName, treeAssetPath);
            SaveWindowScript(windowRegisterFilePath, registerScriptCode);
        }

        registerWindowScript = AssetDatabase.LoadAssetAtPath <MonoScript>(windowRegisterFilePath);
        var stubCode = string.Empty;

        if (desc.Type == typeof(Button))
        {
            stubCode = EditorWindowCodeGen.GetRegisterClickedCode(CurrentSelection.name, desc.CallbackMethodName);
        }
        else
        {
            stubCode = EditorWindowCodeGen.GetRegisterCallbackCode(desc, CurrentSelection.name);
        }
        if (!registerWindowScript.text.Contains(stubCode))
        {
            Debug.Log($"Add Method {stubCode}");
            var script = EditorWindowCodeGen.GetStubbedCodeAtSecondLastIndexOfBlacket(registerWindowScript.text, stubCode);
            SaveWindowScript(windowRegisterFilePath, script);
        }

        editorWindowCodeBuilder.StubCode(desc, CurrentSelection);
    }
 public void Save(string className)
 {
     LoadMonoScript();
     if (monoScript == null)
     {
         var scriptCode = EditorWindowCodeGen.GenerateEditorWindowCode(className);
         // var eventScriptCode = EditorWindowCodeGen.GenerateEditorWindowEventCode(className);
         SaveWindowScript(windowEventFilePath, scriptCode);
     }
 }