Пример #1
0
        internal void GenerateAndWriteSolutionAndProjects(ScriptEditorUtility.ScriptEditor scriptEditor)
        {
            Profiler.BeginSample("GenerateAndWriteSolutionAndProjects");

            Profiler.BeginSample("SolutionSynchronizer.GetIslands");
            // Only synchronize islands that have associated source files and ones that we actually want in the project.
            // This also filters out DLLs coming from .asmdef files in packages.
            IEnumerable <MonoIsland> islands = m_assemblyNameProvider.GetAllScriptAssemblies(ShouldFileBePartOfSolution, _projectDirectory);

            Profiler.EndSample();

            Profiler.BeginSample("GenerateAllAssetProjectParts.GetIslands");
            var allAssetProjectParts = GenerateAllAssetProjectParts();

            Profiler.EndSample();

            var monoIslands = islands.ToList();

            Profiler.BeginSample("SyncSolution");
            SyncSolution(monoIslands.ToList());
            Profiler.EndSample();

            var allProjectIslands = RelevantIslandsForMode(monoIslands, ModeForCurrentExternalEditor()).ToList();

            foreach (MonoIsland island in allProjectIslands)
            {
                Profiler.BeginSample("SyncProject");
                SyncProject(island, allAssetProjectParts, ParseResponseFileData(island), allProjectIslands);
                Profiler.EndSample();
            }

            Profiler.EndSample();
        }