From 3af4c218c0e70167db23a6303d2af30aff37d2fe Mon Sep 17 00:00:00 2001 From: Andrew Lee Date: Thu, 20 Aug 2020 23:40:50 -0400 Subject: Removed a bunch of stuff; Changes --- .../com.unity.ide.rider@1.1.4/Rider/Editor.meta | 8 - .../Rider/Editor/Discovery.cs | 457 -------- .../Rider/Editor/Discovery.cs.meta | 11 - .../Rider/Editor/EditorPluginInterop.cs | 136 --- .../Rider/Editor/EditorPluginInterop.cs.meta | 11 - .../Rider/Editor/LoggingLevel.cs | 22 - .../Rider/Editor/LoggingLevel.cs.meta | 11 - .../Rider/Editor/PluginSettings.cs | 128 --- .../Rider/Editor/PluginSettings.cs.meta | 11 - .../Rider/Editor/PostProcessors.meta | 8 - .../PostProcessors/RiderAssetPostprocessor.cs | 16 - .../PostProcessors/RiderAssetPostprocessor.cs.meta | 11 - .../Rider/Editor/ProjectGeneration.meta | 8 - .../Editor/ProjectGeneration/FileIOProvider.cs | 23 - .../ProjectGeneration/FileIOProvider.cs.meta | 11 - .../Rider/Editor/ProjectGeneration/GUIDProvider.cs | 16 - .../Editor/ProjectGeneration/GUIDProvider.cs.meta | 11 - .../Editor/ProjectGeneration/ProjectGeneration.cs | 1090 -------------------- .../ProjectGeneration/ProjectGeneration.cs.meta | 11 - .../Rider/Editor/RiderInitializer.cs | 38 - .../Rider/Editor/RiderInitializer.cs.meta | 11 - .../Rider/Editor/RiderScriptEditor.cs | 404 -------- .../Rider/Editor/RiderScriptEditor.cs.meta | 11 - .../Rider/Editor/RiderScriptEditorData.cs | 29 - .../Rider/Editor/RiderScriptEditorData.cs.meta | 11 - .../Rider/Editor/UnitTesting.meta | 8 - .../Rider/Editor/UnitTesting/CallbackData.cs | 27 - .../Rider/Editor/UnitTesting/CallbackData.cs.meta | 11 - .../Editor/UnitTesting/CallbackInitializer.cs | 18 - .../Editor/UnitTesting/CallbackInitializer.cs.meta | 11 - .../Rider/Editor/UnitTesting/RiderTestRunner.cs | 47 - .../Editor/UnitTesting/RiderTestRunner.cs.meta | 11 - .../Rider/Editor/UnitTesting/TestEvent.cs | 31 - .../Rider/Editor/UnitTesting/TestEvent.cs.meta | 11 - .../Rider/Editor/UnitTesting/TestsCallback.cs | 83 -- .../Rider/Editor/UnitTesting/TestsCallback.cs.meta | 11 - .../Rider/Editor/Util.meta | 8 - .../Rider/Editor/Util/CommandLineParser.cs | 36 - .../Rider/Editor/Util/CommandLineParser.cs.meta | 11 - .../Rider/Editor/Util/FileSystemUtil.cs | 66 -- .../Rider/Editor/Util/FileSystemUtil.cs.meta | 11 - .../Rider/Editor/Util/LibcNativeInterop.cs | 12 - .../Rider/Editor/Util/LibcNativeInterop.cs.meta | 11 - .../Rider/Editor/Util/RiderMenu.cs | 25 - .../Rider/Editor/Util/RiderMenu.cs.meta | 11 - .../Rider/Editor/Util/UnityUtils.cs | 20 - .../Rider/Editor/Util/UnityUtils.cs.meta | 11 - .../Rider/Editor/com.unity.ide.rider.asmdef | 22 - .../Rider/Editor/com.unity.ide.rider.asmdef.meta | 7 - 49 files changed, 3024 deletions(-) delete mode 100644 Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor.meta delete mode 100644 Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Discovery.cs delete mode 100644 Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Discovery.cs.meta delete mode 100644 Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/EditorPluginInterop.cs delete mode 100644 Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/EditorPluginInterop.cs.meta delete mode 100644 Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/LoggingLevel.cs delete mode 100644 Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/LoggingLevel.cs.meta delete mode 100644 Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/PluginSettings.cs delete mode 100644 Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/PluginSettings.cs.meta delete mode 100644 Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/PostProcessors.meta delete mode 100644 Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/PostProcessors/RiderAssetPostprocessor.cs delete mode 100644 Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/PostProcessors/RiderAssetPostprocessor.cs.meta delete mode 100644 Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/ProjectGeneration.meta delete mode 100644 Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/ProjectGeneration/FileIOProvider.cs delete mode 100644 Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/ProjectGeneration/FileIOProvider.cs.meta delete mode 100644 Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/ProjectGeneration/GUIDProvider.cs delete mode 100644 Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/ProjectGeneration/GUIDProvider.cs.meta delete mode 100644 Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/ProjectGeneration/ProjectGeneration.cs delete mode 100644 Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/ProjectGeneration/ProjectGeneration.cs.meta delete mode 100644 Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/RiderInitializer.cs delete mode 100644 Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/RiderInitializer.cs.meta delete mode 100644 Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/RiderScriptEditor.cs delete mode 100644 Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/RiderScriptEditor.cs.meta delete mode 100644 Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/RiderScriptEditorData.cs delete mode 100644 Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/RiderScriptEditorData.cs.meta delete mode 100644 Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting.meta delete mode 100644 Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/CallbackData.cs delete mode 100644 Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/CallbackData.cs.meta delete mode 100644 Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/CallbackInitializer.cs delete mode 100644 Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/CallbackInitializer.cs.meta delete mode 100644 Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/RiderTestRunner.cs delete mode 100644 Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/RiderTestRunner.cs.meta delete mode 100644 Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/TestEvent.cs delete mode 100644 Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/TestEvent.cs.meta delete mode 100644 Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/TestsCallback.cs delete mode 100644 Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/TestsCallback.cs.meta delete mode 100644 Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util.meta delete mode 100644 Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/CommandLineParser.cs delete mode 100644 Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/CommandLineParser.cs.meta delete mode 100644 Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/FileSystemUtil.cs delete mode 100644 Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/FileSystemUtil.cs.meta delete mode 100644 Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/LibcNativeInterop.cs delete mode 100644 Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/LibcNativeInterop.cs.meta delete mode 100644 Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/RiderMenu.cs delete mode 100644 Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/RiderMenu.cs.meta delete mode 100644 Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/UnityUtils.cs delete mode 100644 Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/UnityUtils.cs.meta delete mode 100644 Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/com.unity.ide.rider.asmdef delete mode 100644 Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/com.unity.ide.rider.asmdef.meta (limited to 'Library/PackageCache/com.unity.ide.rider@1.1.4/Rider') diff --git a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor.meta b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor.meta deleted file mode 100644 index 61363f1..0000000 --- a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 1b393f6b29a9ee84c803af1ab4944b71 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Discovery.cs b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Discovery.cs deleted file mode 100644 index 150d70c..0000000 --- a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Discovery.cs +++ /dev/null @@ -1,457 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using JetBrains.Annotations; -using Microsoft.Win32; -using Unity.CodeEditor; -using UnityEngine; - -namespace Packages.Rider.Editor -{ - public interface IDiscovery - { - CodeEditor.Installation[] PathCallback(); - } - - public class Discovery : IDiscovery - { - public CodeEditor.Installation[] PathCallback() - { - return RiderPathLocator.GetAllRiderPaths() - .Select(riderInfo => new CodeEditor.Installation - { - Path = riderInfo.Path, - Name = riderInfo.Presentation - }) - .OrderBy(a=>a.Name) - .ToArray(); - } - } - - /// - /// This code is a modified version of the JetBrains resharper-unity plugin listed here: - /// https://github.com/JetBrains/resharper-unity/blob/master/unity/JetBrains.Rider.Unity.Editor/EditorPlugin/RiderPathLocator.cs - /// - public static class RiderPathLocator - { -#if !(UNITY_4_7 || UNITY_5_5) - [UsedImplicitly] // Used in com.unity.ide.rider - public static RiderInfo[] GetAllRiderPaths() - { - try - { - switch (SystemInfo.operatingSystemFamily) - { - case OperatingSystemFamily.Windows: - { - return CollectRiderInfosWindows(); - } - - case OperatingSystemFamily.MacOSX: - { - return CollectRiderInfosMac(); - } - - case OperatingSystemFamily.Linux: - { - return CollectAllRiderPathsLinux(); - } - } - } - catch (Exception e) - { - Debug.LogException(e); - } - - return new RiderInfo[0]; - } -#endif - -#if RIDER_EDITOR_PLUGIN // can't be used in com.unity.ide.rider - internal static RiderInfo[] GetAllFoundInfos(OperatingSystemFamilyRider operatingSystemFamily) - { - try - { - switch (operatingSystemFamily) - { - case OperatingSystemFamilyRider.Windows: - { - return CollectRiderInfosWindows(); - } - case OperatingSystemFamilyRider.MacOSX: - { - return CollectRiderInfosMac(); - } - case OperatingSystemFamilyRider.Linux: - { - return CollectAllRiderPathsLinux(); - } - } - } - catch (Exception e) - { - Debug.LogException(e); - } - - return new RiderInfo[0]; - } - - internal static string[] GetAllFoundPaths(OperatingSystemFamilyRider operatingSystemFamily) - { - return GetAllFoundInfos(operatingSystemFamily).Select(a=>a.Path).ToArray(); - } -#endif - - private static RiderInfo[] CollectAllRiderPathsLinux() - { - var installInfos = new List(); - var home = Environment.GetEnvironmentVariable("HOME"); - if (!string.IsNullOrEmpty(home)) - { - var toolboxRiderRootPath = GetToolboxBaseDir(); - installInfos.AddRange(CollectPathsFromToolbox(toolboxRiderRootPath, "bin", "rider.sh", false) - .Select(a => new RiderInfo(a, true)).ToList()); - - //$Home/.local/share/applications/jetbrains-rider.desktop - var shortcut = new FileInfo(Path.Combine(home, @".local/share/applications/jetbrains-rider.desktop")); - - if (shortcut.Exists) - { - var lines = File.ReadAllLines(shortcut.FullName); - foreach (var line in lines) - { - if (!line.StartsWith("Exec=\"")) - continue; - var path = line.Split('"').Where((item, index) => index == 1).SingleOrDefault(); - if (string.IsNullOrEmpty(path)) - continue; - - if (installInfos.Any(a => a.Path == path)) // avoid adding similar build as from toolbox - continue; - installInfos.Add(new RiderInfo(path, false)); - } - } - } - - // snap install - var snapInstallPath = "/snap/rider/current/bin/rider.sh"; - if (new FileInfo(snapInstallPath).Exists) - installInfos.Add(new RiderInfo(snapInstallPath, false)); - - return installInfos.ToArray(); - } - - private static RiderInfo[] CollectRiderInfosMac() - { - var installInfos = new List(); - // "/Applications/*Rider*.app" - var folder = new DirectoryInfo("/Applications"); - if (folder.Exists) - { - installInfos.AddRange(folder.GetDirectories("*Rider*.app") - .Select(a => new RiderInfo(a.FullName, false)) - .ToList()); - } - - // /Users/user/Library/Application Support/JetBrains/Toolbox/apps/Rider/ch-1/181.3870.267/Rider EAP.app - var toolboxRiderRootPath = GetToolboxBaseDir(); - var paths = CollectPathsFromToolbox(toolboxRiderRootPath, "", "Rider*.app", true) - .Select(a => new RiderInfo(a, true)); - installInfos.AddRange(paths); - - return installInfos.ToArray(); - } - - private static RiderInfo[] CollectRiderInfosWindows() - { - var installInfos = new List(); - var toolboxRiderRootPath = GetToolboxBaseDir(); - var installPathsToolbox = CollectPathsFromToolbox(toolboxRiderRootPath, "bin", "rider64.exe", false).ToList(); - installInfos.AddRange(installPathsToolbox.Select(a => new RiderInfo(a, true)).ToList()); - - var installPaths = new List(); - const string registryKey = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"; - CollectPathsFromRegistry(registryKey, installPaths); - const string wowRegistryKey = @"SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall"; - CollectPathsFromRegistry(wowRegistryKey, installPaths); - - installInfos.AddRange(installPaths.Select(a => new RiderInfo(a, false)).ToList()); - - return installInfos.ToArray(); - } - - private static string GetToolboxBaseDir() - { - switch (SystemInfo.operatingSystemFamily) - { - case OperatingSystemFamily.Windows: - { - var localAppData = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); - return Path.Combine(localAppData, @"JetBrains\Toolbox\apps\Rider"); - } - - case OperatingSystemFamily.MacOSX: - { - var home = Environment.GetEnvironmentVariable("HOME"); - if (!string.IsNullOrEmpty(home)) - { - return Path.Combine(home, @"Library/Application Support/JetBrains/Toolbox/apps/Rider"); - } - break; - } - - case OperatingSystemFamily.Linux: - { - var home = Environment.GetEnvironmentVariable("HOME"); - if (!string.IsNullOrEmpty(home)) - { - return Path.Combine(home, @".local/share/JetBrains/Toolbox/apps/Rider"); - } - break; - } - } - return string.Empty; - } - - internal static string GetBuildNumber(string path) - { - var file = new FileInfo(Path.Combine(path, GetRelativePathToBuildTxt())); - if (!file.Exists) - return string.Empty; - var text = File.ReadAllText(file.FullName); - if (text.Length > 3) - return text.Substring(3); - return string.Empty; - } - - internal static bool IsToolbox(string path) - { - return path.StartsWith(GetToolboxBaseDir()); - } - - private static string GetRelativePathToBuildTxt() - { - switch (SystemInfo.operatingSystemFamily) - { - case OperatingSystemFamily.Windows: - case OperatingSystemFamily.Linux: - return "../../build.txt"; - case OperatingSystemFamily.MacOSX: - return "Contents/Resources/build.txt"; - } - throw new Exception("Unknown OS"); - } - - private static void CollectPathsFromRegistry(string registryKey, List installPaths) - { - using (var key = Registry.LocalMachine.OpenSubKey(registryKey)) - { - if (key == null) return; - foreach (var subkeyName in key.GetSubKeyNames().Where(a => a.Contains("Rider"))) - { - using (var subkey = key.OpenSubKey(subkeyName)) - { - var folderObject = subkey?.GetValue("InstallLocation"); - if (folderObject == null) continue; - var folder = folderObject.ToString(); - var possiblePath = Path.Combine(folder, @"bin\rider64.exe"); - if (File.Exists(possiblePath)) - installPaths.Add(possiblePath); - } - } - } - } - - private static string[] CollectPathsFromToolbox(string toolboxRiderRootPath, string dirName, string searchPattern, - bool isMac) - { - if (!Directory.Exists(toolboxRiderRootPath)) - return new string[0]; - - var channelDirs = Directory.GetDirectories(toolboxRiderRootPath); - var paths = channelDirs.SelectMany(channelDir => - { - try - { - // use history.json - last entry stands for the active build https://jetbrains.slack.com/archives/C07KNP99D/p1547807024066500?thread_ts=1547731708.057700&cid=C07KNP99D - var historyFile = Path.Combine(channelDir, ".history.json"); - if (File.Exists(historyFile)) - { - var json = File.ReadAllText(historyFile); - var build = ToolboxHistory.GetLatestBuildFromJson(json); - if (build != null) - { - var buildDir = Path.Combine(channelDir, build); - var executablePaths = GetExecutablePaths(dirName, searchPattern, isMac, buildDir); - if (executablePaths.Any()) - return executablePaths; - } - } - - var channelFile = Path.Combine(channelDir, ".channel.settings.json"); - if (File.Exists(channelFile)) - { - var json = File.ReadAllText(channelFile).Replace("active-application", "active_application"); - var build = ToolboxInstallData.GetLatestBuildFromJson(json); - if (build != null) - { - var buildDir = Path.Combine(channelDir, build); - var executablePaths = GetExecutablePaths(dirName, searchPattern, isMac, buildDir); - if (executablePaths.Any()) - return executablePaths; - } - } - - // changes in toolbox json files format may brake the logic above, so return all found Rider installations - return Directory.GetDirectories(channelDir) - .SelectMany(buildDir => GetExecutablePaths(dirName, searchPattern, isMac, buildDir)); - } - catch (Exception e) - { - // do not write to Debug.Log, just log it. - Logger.Warn($"Failed to get RiderPath from {channelDir}", e); - } - - return new string[0]; - }) - .Where(c => !string.IsNullOrEmpty(c)) - .ToArray(); - return paths; - } - - private static string[] GetExecutablePaths(string dirName, string searchPattern, bool isMac, string buildDir) - { - var folder = new DirectoryInfo(Path.Combine(buildDir, dirName)); - if (!folder.Exists) - return new string[0]; - - if (!isMac) - return new[] {Path.Combine(folder.FullName, searchPattern)}.Where(File.Exists).ToArray(); - return folder.GetDirectories(searchPattern).Select(f => f.FullName) - .Where(Directory.Exists).ToArray(); - } - - // Disable the "field is never assigned" compiler warning. We never assign it, but Unity does. - // Note that Unity disable this warning in the generated C# projects -#pragma warning disable 0649 - - [Serializable] - class ToolboxHistory - { - public List history; - - [CanBeNull] - public static string GetLatestBuildFromJson(string json) - { - try - { -#if UNITY_4_7 || UNITY_5_5 - return JsonConvert.DeserializeObject(json).history.LastOrDefault()?.item.build; -#else - return JsonUtility.FromJson(json).history.LastOrDefault()?.item.build; -#endif - } - catch (Exception) - { - Logger.Warn($"Failed to get latest build from json {json}"); - } - - return null; - } - } - - [Serializable] - class ItemNode - { - public BuildNode item; - } - - [Serializable] - class BuildNode - { - public string build; - } - - // ReSharper disable once ClassNeverInstantiated.Global - [Serializable] - class ToolboxInstallData - { - // ReSharper disable once InconsistentNaming - public ActiveApplication active_application; - - [CanBeNull] - public static string GetLatestBuildFromJson(string json) - { - try - { -#if UNITY_4_7 || UNITY_5_5 - var toolbox = JsonConvert.DeserializeObject(json); -#else - var toolbox = JsonUtility.FromJson(json); -#endif - var builds = toolbox.active_application.builds; - if (builds != null && builds.Any()) - return builds.First(); - } - catch (Exception) - { - Logger.Warn($"Failed to get latest build from json {json}"); - } - - return null; - } - } - - [Serializable] - class ActiveApplication - { - // ReSharper disable once InconsistentNaming - public List builds; - } - -#pragma warning restore 0649 - - public struct RiderInfo - { - public bool IsToolbox; - public string Presentation; - public string BuildVersion; - public string Path; - - public RiderInfo(string path, bool isToolbox) - { - if (path == RiderScriptEditor.CurrentEditor) - { - RiderScriptEditorData.instance.Init(); - BuildVersion = RiderScriptEditorData.instance.currentEditorVersion; - } - else - BuildVersion = GetBuildNumber(path); - Path = new FileInfo(path).FullName; // normalize separators - var presentation = "Rider " + BuildVersion; - if (isToolbox) - presentation += " (JetBrains Toolbox)"; - - Presentation = presentation; - IsToolbox = isToolbox; - } - } - - private static class Logger - { - internal static void Warn(string message, Exception e = null) - { -#if RIDER_EDITOR_PLUGIN // can't be used in com.unity.ide.rider - Log.GetLog(typeof(RiderPathLocator).Name).Warn(message); - if (e != null) - Log.GetLog(typeof(RiderPathLocator).Name).Warn(e); -#else - Debug.LogError(message); - if (e != null) - Debug.LogException(e); -#endif - } - } - } -} \ No newline at end of file diff --git a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Discovery.cs.meta b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Discovery.cs.meta deleted file mode 100644 index fc30914..0000000 --- a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Discovery.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: dab656c79e1985c40b31faebcda44442 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/EditorPluginInterop.cs b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/EditorPluginInterop.cs deleted file mode 100644 index 749218f..0000000 --- a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/EditorPluginInterop.cs +++ /dev/null @@ -1,136 +0,0 @@ -using System; -using System.IO; -using System.Linq; -using System.Reflection; -using System.Runtime.CompilerServices; -using Debug = UnityEngine.Debug; - -namespace Packages.Rider.Editor -{ - public static class EditorPluginInterop - { - private static string ourEntryPointTypeName = "JetBrains.Rider.Unity.Editor.PluginEntryPoint"; - - private static Assembly ourEditorPluginAssembly; - - public static Assembly EditorPluginAssembly - { - get - { - if (ourEditorPluginAssembly != null) - return ourEditorPluginAssembly; - var assemblies = AppDomain.CurrentDomain.GetAssemblies(); - ourEditorPluginAssembly = assemblies.FirstOrDefault(a => a.GetName().Name.Equals("JetBrains.Rider.Unity.Editor.Plugin.Full.Repacked")); - return ourEditorPluginAssembly; - } - } - - - private static void DisableSyncSolutionOnceCallBack() - { - // RiderScriptableSingleton.Instance.CsprojProcessedOnce = true; - // Otherwise EditorPlugin regenerates all on every AppDomain reload - var assembly = EditorPluginAssembly; - if (assembly == null) return; - var type = assembly.GetType("JetBrains.Rider.Unity.Editor.Utils.RiderScriptableSingleton"); - if (type == null) return; - var baseType = type.BaseType; - if (baseType == null) return; - var instance = baseType.GetProperty("Instance"); - if (instance == null) return; - var instanceVal = instance.GetValue(null); - var member = type.GetProperty("CsprojProcessedOnce"); - if (member==null) return; - member.SetValue(instanceVal, true); - } - - public static string LogPath - { - get - { - try - { - var assembly = EditorPluginAssembly; - if (assembly == null) return null; - var type = assembly.GetType(ourEntryPointTypeName); - if (type == null) return null; - var field = type.GetField("LogPath", BindingFlags.NonPublic | BindingFlags.Static); - if (field == null) return null; - return field.GetValue(null) as string; - } - catch (Exception) - { - Debug.Log("Unable to do OpenFile to Rider from dll, fallback to com.unity.ide.rider implementation."); - } - - return null; - } - } - - public static bool OpenFileDllImplementation(string path, int line, int column) - { - var openResult = false; - // reflection for fast OpenFileLineCol, when Rider is started and protocol connection is established - try - { - var assembly = EditorPluginAssembly; - if (assembly == null) return false; - var type = assembly.GetType(ourEntryPointTypeName); - if (type == null) return false; - var field = type.GetField("OpenAssetHandler", BindingFlags.NonPublic | BindingFlags.Static); - if (field == null) return false; - var handlerInstance = field.GetValue(null); - var method = handlerInstance.GetType() - .GetMethod("OnOpenedAsset", new[] {typeof(string), typeof(int), typeof(int)}); - if (method == null) return false; - var assetFilePath = path; - if (!string.IsNullOrEmpty(path)) - assetFilePath = Path.GetFullPath(path); - - openResult = (bool) method.Invoke(handlerInstance, new object[] {assetFilePath, line, column}); - } - catch (Exception e) - { - Debug.Log("Unable to do OpenFile to Rider from dll, fallback to com.unity.ide.rider implementation."); - Debug.LogException(e); - } - - return openResult; - } - - public static bool EditorPluginIsLoadedFromAssets(Assembly assembly) - { - if (assembly == null) - return false; - var location = assembly.Location; - var currentDir = Directory.GetCurrentDirectory(); - return location.StartsWith(currentDir, StringComparison.InvariantCultureIgnoreCase); - } - - - internal static void InitEntryPoint(Assembly assembly) - { - try - { - if (Version.TryParse(RiderScriptEditorData.instance.currentEditorVersion, out var version)) - { - if (version.Major < 192) - DisableSyncSolutionOnceCallBack(); // is require for Rider prior to 2019.2 - } - else - DisableSyncSolutionOnceCallBack(); - - var type = assembly.GetType("JetBrains.Rider.Unity.Editor.AfterUnity56.EntryPoint"); - if (type == null) - type = assembly.GetType("JetBrains.Rider.Unity.Editor.UnitTesting.EntryPoint"); // oldRider - RuntimeHelpers.RunClassConstructor(type.TypeHandle); - } - catch (TypeInitializationException ex) - { - Debug.LogException(ex); - if (ex.InnerException != null) - Debug.LogException(ex.InnerException); - } - } - } -} \ No newline at end of file diff --git a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/EditorPluginInterop.cs.meta b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/EditorPluginInterop.cs.meta deleted file mode 100644 index 2c34764..0000000 --- a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/EditorPluginInterop.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f9bd02a3a916be64c9b47b1305149423 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/LoggingLevel.cs b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/LoggingLevel.cs deleted file mode 100644 index 0fb025d..0000000 --- a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/LoggingLevel.cs +++ /dev/null @@ -1,22 +0,0 @@ -namespace Packages.Rider.Editor -{ - public enum LoggingLevel - { - /// - /// Do not use it in logging. Only in config to disable logging. - /// - OFF, - /// For errors that lead to application failure - FATAL, - /// For errors that must be shown in Exception Browser - ERROR, - /// Suspicious situations but not errors - WARN, - /// Regular level for important events - INFO, - /// Additional info for debbuging - VERBOSE, - /// Methods & callstacks tracing, more than verbose - TRACE, - } -} \ No newline at end of file diff --git a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/LoggingLevel.cs.meta b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/LoggingLevel.cs.meta deleted file mode 100644 index 45be604..0000000 --- a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/LoggingLevel.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 71bb46b59a9a7a346bbab1e185c723df -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/PluginSettings.cs b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/PluginSettings.cs deleted file mode 100644 index d3c139a..0000000 --- a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/PluginSettings.cs +++ /dev/null @@ -1,128 +0,0 @@ -using Unity.CodeEditor; -using UnityEditor; -using UnityEngine; - -namespace Packages.Rider.Editor -{ - public class PluginSettings - { - public static LoggingLevel SelectedLoggingLevel - { - get => (LoggingLevel) EditorPrefs.GetInt("Rider_SelectedLoggingLevel", 0); - set - { - EditorPrefs.SetInt("Rider_SelectedLoggingLevel", (int) value); - } - } - - public static bool LogEventsCollectorEnabled - { - get { return EditorPrefs.GetBool("Rider_LogEventsCollectorEnabled", true); } - private set { EditorPrefs.SetBool("Rider_LogEventsCollectorEnabled", value); } - } - - - private static GUIStyle ourVersionInfoStyle = new GUIStyle() - { - normal = new GUIStyleState() - { - textColor = new Color(0, 0, 0, .6f), - }, - margin = new RectOffset(4, 4, 4, 4), - }; - - /// - /// Preferences menu layout - /// - /// - /// Contains all 3 toggles: Enable/Disable; Debug On/Off; Writing Launch File On/Off - /// - [SettingsProvider] - private static SettingsProvider RiderPreferencesItem() - { - if (!RiderScriptEditor.IsRiderInstallation(RiderScriptEditor.CurrentEditor)) - return null; - if (!RiderScriptEditorData.instance.shouldLoadEditorPlugin) - return null; - var provider = new SettingsProvider("Preferences/Rider", SettingsScope.User) - { - label = "Rider", - keywords = new[] { "Rider" }, - guiHandler = (searchContext) => - { - EditorGUIUtility.labelWidth = 200f; - EditorGUILayout.BeginVertical(); - - GUILayout.BeginVertical(); - LogEventsCollectorEnabled = - EditorGUILayout.Toggle(new GUIContent("Pass Console to Rider:"), LogEventsCollectorEnabled); - - GUILayout.EndVertical(); - GUILayout.Label(""); - - if (!string.IsNullOrEmpty(EditorPluginInterop.LogPath)) - { - EditorGUILayout.BeginHorizontal(); - EditorGUILayout.PrefixLabel("Log file:"); - var previous = GUI.enabled; - GUI.enabled = previous && SelectedLoggingLevel != LoggingLevel.OFF; - var button = GUILayout.Button(new GUIContent("Open log")); - if (button) - { - //UnityEditorInternal.InternalEditorUtility.OpenFileAtLineExternal(PluginEntryPoint.LogPath, 0); - // works much faster than the commented code, when Rider is already started - CodeEditor.CurrentEditor.OpenProject(EditorPluginInterop.LogPath, 0, 0); - } - - GUI.enabled = previous; - GUILayout.EndHorizontal(); - } - - var loggingMsg = - @"Sets the amount of Rider Debug output. If you are about to report an issue, please select Verbose logging level and attach Unity console output to the issue."; - SelectedLoggingLevel = - (LoggingLevel) EditorGUILayout.EnumPopup(new GUIContent("Logging Level:", loggingMsg), - SelectedLoggingLevel); - - - EditorGUILayout.HelpBox(loggingMsg, MessageType.None); - - var githubRepo = "https://github.com/JetBrains/resharper-unity"; - var caption = $"{githubRepo}"; - LinkButton(caption: caption, url: githubRepo); - - GUILayout.FlexibleSpace(); - GUILayout.BeginHorizontal(); - - GUILayout.FlexibleSpace(); - var assembly = EditorPluginInterop.EditorPluginAssembly; - if (assembly != null) - { - var version = assembly.GetName().Version; - GUILayout.Label("Plugin version: " + version, ourVersionInfoStyle); - } - - GUILayout.EndHorizontal(); - - EditorGUILayout.EndVertical(); - } - }; - return provider; - } - - private static void LinkButton(string caption, string url) - { - var style = GUI.skin.label; - style.richText = true; - - var bClicked = GUILayout.Button(caption, style); - - var rect = GUILayoutUtility.GetLastRect(); - rect.width = style.CalcSize(new GUIContent(caption)).x; - EditorGUIUtility.AddCursorRect(rect, MouseCursor.Link); - - if (bClicked) - Application.OpenURL(url); - } - } -} \ No newline at end of file diff --git a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/PluginSettings.cs.meta b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/PluginSettings.cs.meta deleted file mode 100644 index a2b0299..0000000 --- a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/PluginSettings.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 1bfe12aa306c0c74db4f4f1a1a0ae5ce -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/PostProcessors.meta b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/PostProcessors.meta deleted file mode 100644 index 6a6a961..0000000 --- a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/PostProcessors.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: aa290bd9a165a0543a4bf85ac73914bc -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/PostProcessors/RiderAssetPostprocessor.cs b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/PostProcessors/RiderAssetPostprocessor.cs deleted file mode 100644 index c442dd1..0000000 --- a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/PostProcessors/RiderAssetPostprocessor.cs +++ /dev/null @@ -1,16 +0,0 @@ -using Unity.CodeEditor; -using UnityEditor; - -namespace Packages.Rider.Editor.PostProcessors -{ - public class RiderAssetPostprocessor: AssetPostprocessor - { - public static bool OnPreGeneratingCSProjectFiles() - { - var path = RiderScriptEditor.GetEditorRealPath(CodeEditor.CurrentEditorInstallation); - if (RiderScriptEditor.IsRiderInstallation(path)) - return !ProjectGeneration.isRiderProjectGeneration; - return false; - } - } -} \ No newline at end of file diff --git a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/PostProcessors/RiderAssetPostprocessor.cs.meta b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/PostProcessors/RiderAssetPostprocessor.cs.meta deleted file mode 100644 index f3e3377..0000000 --- a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/PostProcessors/RiderAssetPostprocessor.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 45471ad7b8c1f964da5e3c07d57fbf4f -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/ProjectGeneration.meta b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/ProjectGeneration.meta deleted file mode 100644 index 2afe02d..0000000 --- a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/ProjectGeneration.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 313cbe17019f1934397f91069831062c -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/ProjectGeneration/FileIOProvider.cs b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/ProjectGeneration/FileIOProvider.cs deleted file mode 100644 index c7896c7..0000000 --- a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/ProjectGeneration/FileIOProvider.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System; -using System.IO; -using System.Text; - -namespace Packages.Rider.Editor { - class FileIOProvider : IFileIO - { - public bool Exists(string fileName) - { - return File.Exists(fileName); - } - - public string ReadAllText(string fileName) - { - return File.ReadAllText(fileName); - } - - public void WriteAllText(string fileName, string content) - { - File.WriteAllText(fileName, content, Encoding.UTF8); - } - } -} diff --git a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/ProjectGeneration/FileIOProvider.cs.meta b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/ProjectGeneration/FileIOProvider.cs.meta deleted file mode 100644 index 59ead4f..0000000 --- a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/ProjectGeneration/FileIOProvider.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: a6ba838b1348d5e46a7eaacd1646c1d3 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/ProjectGeneration/GUIDProvider.cs b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/ProjectGeneration/GUIDProvider.cs deleted file mode 100644 index 54851ce..0000000 --- a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/ProjectGeneration/GUIDProvider.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; - -namespace Packages.Rider.Editor { - class GUIDProvider : IGUIDGenerator - { - public string ProjectGuid(string projectName, string assemblyName) - { - return SolutionGuidGenerator.GuidForProject(projectName + assemblyName); - } - - public string SolutionGuid(string projectName, string extension) - { - return SolutionGuidGenerator.GuidForSolution(projectName, extension); // GetExtensionOfSourceFiles(assembly.sourceFiles) - } - } -} diff --git a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/ProjectGeneration/GUIDProvider.cs.meta b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/ProjectGeneration/GUIDProvider.cs.meta deleted file mode 100644 index e1bc7ef..0000000 --- a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/ProjectGeneration/GUIDProvider.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 8cfde1a59fb35574189691a9de1df93b -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/ProjectGeneration/ProjectGeneration.cs b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/ProjectGeneration/ProjectGeneration.cs deleted file mode 100644 index 7f5ec31..0000000 --- a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/ProjectGeneration/ProjectGeneration.cs +++ /dev/null @@ -1,1090 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Security; -using System.Security.Cryptography; -using System.Text; -using System.Text.RegularExpressions; -using Packages.Rider.Editor.Util; -using UnityEditor; -using UnityEditor.Compilation; -using UnityEditor.PackageManager; -using UnityEditorInternal; -using UnityEngine; - -namespace Packages.Rider.Editor -{ - public interface IGenerator - { - bool SyncIfNeeded(IEnumerable affectedFiles, IEnumerable reimportedFiles); - void Sync(); - bool HasSolutionBeenGenerated(); - string SolutionFile(); - string ProjectDirectory { get; } - void GenerateAll(bool generateAll); - } - - public interface IFileIO - { - bool Exists(string fileName); - - string ReadAllText(string fileName); - void WriteAllText(string fileName, string content); - } - - public interface IGUIDGenerator - { - string ProjectGuid(string projectName, string assemblyName); - string SolutionGuid(string projectName, string extension); - } - - public interface IAssemblyNameProvider - { - string GetAssemblyNameFromScriptPath(string path); - IEnumerable GetAssemblies(Func shouldFileBePartOfSolution); - IEnumerable GetAllAssetPaths(); - UnityEditor.PackageManager.PackageInfo FindForAssetPath(string assetPath); - ResponseFileData ParseResponseFile(string responseFilePath, string projectDirectory, string[] systemReferenceDirectories); - } - - class AssemblyNameProvider : IAssemblyNameProvider - { - public string GetAssemblyNameFromScriptPath(string path) - { - return CompilationPipeline.GetAssemblyNameFromScriptPath(path); - } - - public IEnumerable GetAssemblies(Func shouldFileBePartOfSolution) - { - return CompilationPipeline.GetAssemblies() - .Where(i => 0 < i.sourceFiles.Length && i.sourceFiles.Any(shouldFileBePartOfSolution)); - } - - public IEnumerable GetAllAssetPaths() - { - return AssetDatabase.GetAllAssetPaths(); - } - - public UnityEditor.PackageManager.PackageInfo FindForAssetPath(string assetPath) - { - return UnityEditor.PackageManager.PackageInfo.FindForAssetPath(assetPath); - } - - public ResponseFileData ParseResponseFile(string responseFilePath, string projectDirectory, string[] systemReferenceDirectories) - { - return CompilationPipeline.ParseResponseFile( - responseFilePath, - projectDirectory, - systemReferenceDirectories - ); - } - } - - public class ProjectGeneration : IGenerator - { - enum ScriptingLanguage - { - None, - CSharp - } - - public static readonly string MSBuildNamespaceUri = "http://schemas.microsoft.com/developer/msbuild/2003"; - - /// - /// Map source extensions to ScriptingLanguages - /// - static readonly Dictionary k_BuiltinSupportedExtensions = - new Dictionary - { - {"cs", ScriptingLanguage.CSharp}, - {"uxml", ScriptingLanguage.None}, - {"uss", ScriptingLanguage.None}, - {"shader", ScriptingLanguage.None}, - {"compute", ScriptingLanguage.None}, - {"cginc", ScriptingLanguage.None}, - {"hlsl", ScriptingLanguage.None}, - {"glslinc", ScriptingLanguage.None}, - {"template", ScriptingLanguage.None}, - {"raytrace", ScriptingLanguage.None} - }; - - string m_SolutionProjectEntryTemplate = string.Join(Environment.NewLine, - @"Project(""{{{0}}}"") = ""{1}"", ""{2}"", ""{{{3}}}""", - @"EndProject").Replace(" ", "\t"); - - string m_SolutionProjectConfigurationTemplate = string.Join(Environment.NewLine, - @" {{{0}}}.Debug|Any CPU.ActiveCfg = Debug|Any CPU", - @" {{{0}}}.Debug|Any CPU.Build.0 = Debug|Any CPU", - @" {{{0}}}.Release|Any CPU.ActiveCfg = Release|Any CPU", - @" {{{0}}}.Release|Any CPU.Build.0 = Release|Any CPU").Replace(" ", "\t"); - - static readonly string[] k_ReimportSyncExtensions = {".dll", ".asmdef"}; - - /// - /// Map ScriptingLanguages to project extensions - /// - /*static readonly Dictionary k_ProjectExtensions = new Dictionary - { - { ScriptingLanguage.CSharp, ".csproj" }, - { ScriptingLanguage.None, ".csproj" }, - };*/ - static readonly Regex k_ScriptReferenceExpression = new Regex( - @"^Library.ScriptAssemblies.(?(?.*)\.dll$)", - RegexOptions.Compiled | RegexOptions.IgnoreCase); - - string[] m_ProjectSupportedExtensions = new string[0]; - bool m_ShouldGenerateAll; - - public string ProjectDirectory { get; } - - public void GenerateAll(bool generateAll) - { - m_ShouldGenerateAll = generateAll; - } - - readonly string m_ProjectName; - readonly IAssemblyNameProvider m_AssemblyNameProvider; - readonly IFileIO m_FileIOProvider; - readonly IGUIDGenerator m_GUIDGenerator; - internal static bool isRiderProjectGeneration; // workaround to https://github.cds.internal.unity3d.com/unity/com.unity.ide.rider/issues/28 - - const string k_ToolsVersion = "4.0"; - const string k_ProductVersion = "10.0.20506"; - const string k_BaseDirectory = "."; - const string k_TargetFrameworkVersion = "v4.7.1"; - const string k_TargetLanguageVersion = "latest"; - - static readonly Regex scriptReferenceExpression = new Regex( - @"^Library.ScriptAssemblies.(?(?.*)\.dll$)", - RegexOptions.Compiled | RegexOptions.IgnoreCase); - - public ProjectGeneration() : this(Directory.GetParent(Application.dataPath).FullName) - { - } - - public ProjectGeneration(string tempDirectory) : this(tempDirectory, new AssemblyNameProvider(), new FileIOProvider(), new GUIDProvider()) - { - } - - public ProjectGeneration(string tempDirectory, IAssemblyNameProvider assemblyNameProvider, IFileIO fileIoProvider, IGUIDGenerator guidGenerator) - { - ProjectDirectory = tempDirectory.Replace('\\', '/'); - m_ProjectName = Path.GetFileName(ProjectDirectory); - m_AssemblyNameProvider = assemblyNameProvider; - m_FileIOProvider = fileIoProvider; - m_GUIDGenerator = guidGenerator; - } - - /// - /// Syncs the scripting solution if any affected files are relevant. - /// - /// - /// Whether the solution was synced. - /// - /// - /// A set of files whose status has changed - /// - /// - /// A set of files that got reimported - /// - public bool SyncIfNeeded(IEnumerable affectedFiles, IEnumerable reimportedFiles) - { - SetupProjectSupportedExtensions(); - - if (HasFilesBeenModified(affectedFiles, reimportedFiles)) - { - Sync(); - return true; - } - - return false; - } - - bool HasFilesBeenModified(IEnumerable affectedFiles, IEnumerable reimportedFiles) - { - return affectedFiles.Any(ShouldFileBePartOfSolution) || reimportedFiles.Any(ShouldSyncOnReimportedAsset); - } - - static bool ShouldSyncOnReimportedAsset(string asset) - { - return k_ReimportSyncExtensions.Contains(new FileInfo(asset).Extension); - } - - public void Sync() - { - SetupProjectSupportedExtensions(); - var types = GetAssetPostprocessorTypes(); - isRiderProjectGeneration = true; - bool externalCodeAlreadyGeneratedProjects = OnPreGeneratingCSProjectFiles(types); - isRiderProjectGeneration = false; - if (!externalCodeAlreadyGeneratedProjects) - { - GenerateAndWriteSolutionAndProjects(types); - } - - OnGeneratedCSProjectFiles(types); - } - - public bool HasSolutionBeenGenerated() - { - return m_FileIOProvider.Exists(SolutionFile()); - } - - void SetupProjectSupportedExtensions() - { - m_ProjectSupportedExtensions = EditorSettings.projectGenerationUserExtensions; - } - - bool ShouldFileBePartOfSolution(string file) - { - string extension = Path.GetExtension(file); - - // Exclude files coming from packages except if they are internalized. - if (!m_ShouldGenerateAll && IsInternalizedPackagePath(file)) - { - return false; - } - - // Dll's are not scripts but still need to be included.. - if (extension == ".dll") - return true; - - if (file.ToLower().EndsWith(".asmdef")) - return true; - - return IsSupportedExtension(extension); - } - - bool IsSupportedExtension(string extension) - { - extension = extension.TrimStart('.'); - if (k_BuiltinSupportedExtensions.ContainsKey(extension)) - return true; - if (m_ProjectSupportedExtensions.Contains(extension)) - return true; - return false; - } - - static ScriptingLanguage ScriptingLanguageFor(Assembly island) - { - return ScriptingLanguageFor(GetExtensionOfSourceFiles(island.sourceFiles)); - } - - static string GetExtensionOfSourceFiles(string[] files) - { - return files.Length > 0 ? GetExtensionOfSourceFile(files[0]) : "NA"; - } - - static string GetExtensionOfSourceFile(string file) - { - var ext = Path.GetExtension(file).ToLower(); - ext = ext.Substring(1); //strip dot - return ext; - } - - static ScriptingLanguage ScriptingLanguageFor(string extension) - { - return k_BuiltinSupportedExtensions.TryGetValue(extension.TrimStart('.'), out var result) - ? result - : ScriptingLanguage.None; - } - - public void GenerateAndWriteSolutionAndProjects(Type[] types) - { - // 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. - var assemblies = m_AssemblyNameProvider.GetAssemblies(ShouldFileBePartOfSolution); - - var allAssetProjectParts = GenerateAllAssetProjectParts(); - - var monoIslands = assemblies.ToList(); - - SyncSolution(monoIslands, types); - var allProjectIslands = RelevantIslandsForMode(monoIslands).ToList(); - foreach (Assembly assembly in allProjectIslands) - { - var responseFileData = ParseResponseFileData(assembly); - SyncProject(assembly, allAssetProjectParts, responseFileData, allProjectIslands, types); - } - } - - IEnumerable ParseResponseFileData(Assembly assembly) - { - var systemReferenceDirectories = - CompilationPipeline.GetSystemAssemblyDirectories(assembly.compilerOptions.ApiCompatibilityLevel); - - Dictionary responseFilesData = assembly.compilerOptions.ResponseFiles.ToDictionary( - x => x, x => m_AssemblyNameProvider.ParseResponseFile( - x, - ProjectDirectory, - systemReferenceDirectories - )); - - Dictionary responseFilesWithErrors = responseFilesData.Where(x => x.Value.Errors.Any()) - .ToDictionary(x => x.Key, x => x.Value); - - if (responseFilesWithErrors.Any()) - { - foreach (var error in responseFilesWithErrors) - foreach (var valueError in error.Value.Errors) - { - Debug.LogError($"{error.Key} Parse Error : {valueError}"); - } - } - - return responseFilesData.Select(x => x.Value); - } - - Dictionary GenerateAllAssetProjectParts() - { - Dictionary stringBuilders = new Dictionary(); - - foreach (string asset in m_AssemblyNameProvider.GetAllAssetPaths()) - { - // Exclude files coming from packages except if they are internalized. - if (!m_ShouldGenerateAll && IsInternalizedPackagePath(asset)) - { - continue; - } - - string extension = Path.GetExtension(asset); - if (IsSupportedExtension(extension) && ScriptingLanguage.None == ScriptingLanguageFor(extension)) - { - // Find assembly the asset belongs to by adding script extension and using compilation pipeline. - var assemblyName = m_AssemblyNameProvider.GetAssemblyNameFromScriptPath(asset + ".cs"); - - if (string.IsNullOrEmpty(assemblyName)) - { - continue; - } - - assemblyName = FileSystemUtil.FileNameWithoutExtension(assemblyName); - - if (!stringBuilders.TryGetValue(assemblyName, out var projectBuilder)) - { - projectBuilder = new StringBuilder(); - stringBuilders[assemblyName] = projectBuilder; - } - - projectBuilder.Append(" ") - .Append(Environment.NewLine); - } - } - - var result = new Dictionary(); - - foreach (var entry in stringBuilders) - result[entry.Key] = entry.Value.ToString(); - - return result; - } - - bool IsInternalizedPackagePath(string file) - { - if (string.IsNullOrWhiteSpace(file)) - { - return false; - } - - var packageInfo = m_AssemblyNameProvider.FindForAssetPath(file); - if (packageInfo == null) - { - return false; - } - - var packageSource = packageInfo.source; - return packageSource != PackageSource.Embedded && packageSource != PackageSource.Local; - } - - void SyncProject( - Assembly island, - Dictionary allAssetsProjectParts, - IEnumerable responseFilesData, - List allProjectIslands, - Type[] types) - { - SyncProjectFileIfNotChanged(ProjectFile(island), - ProjectText(island, allAssetsProjectParts, responseFilesData.ToList(), allProjectIslands), types); - } - - void SyncProjectFileIfNotChanged(string path, string newContents, Type[] types) - { - if (Path.GetExtension(path) == ".csproj") - { - newContents = OnGeneratedCSProject(path, newContents, types); - } - - SyncFileIfNotChanged(path, newContents); - } - - void SyncSolutionFileIfNotChanged(string path, string newContents, Type[] types) - { - newContents = OnGeneratedSlnSolution(path, newContents, types); - - SyncFileIfNotChanged(path, newContents); - } - - static List SafeGetTypes(System.Reflection.Assembly a) - { - List ret; - - try - { - ret = a.GetTypes().ToList(); - } - catch (System.Reflection.ReflectionTypeLoadException rtl) - { - ret = rtl.Types.ToList(); - } - catch (Exception) - { - return new List(); - } - - return ret.Where(r => r != null).ToList(); - } - - static void OnGeneratedCSProjectFiles(Type[] types) - { - var args = new object[0]; - foreach (var type in types) - { - var method = type.GetMethod("OnGeneratedCSProjectFiles", - System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic | - System.Reflection.BindingFlags.Static); - if (method == null) - { - continue; - } - - method.Invoke(null, args); - } - } - - public static Type[] GetAssetPostprocessorTypes() - { - return TypeCache.GetTypesDerivedFrom().ToArray(); // doesn't find types from EditorPlugin, which is fine - } - - static bool OnPreGeneratingCSProjectFiles(Type[] types) - { - bool result = false; - foreach (var type in types) - { - var args = new object[0]; - var method = type.GetMethod("OnPreGeneratingCSProjectFiles", - System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic | - System.Reflection.BindingFlags.Static); - if (method == null) - { - continue; - } - - var returnValue = method.Invoke(null, args); - if (method.ReturnType == typeof(bool)) - { - result |= (bool) returnValue; - } - } - - return result; - } - - static string OnGeneratedCSProject(string path, string content, Type[] types) - { - foreach (var type in types) - { - var args = new[] {path, content}; - var method = type.GetMethod("OnGeneratedCSProject", - System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic | - System.Reflection.BindingFlags.Static); - if (method == null) - { - continue; - } - - var returnValue = method.Invoke(null, args); - if (method.ReturnType == typeof(string)) - { - content = (string) returnValue; - } - } - - return content; - } - - static string OnGeneratedSlnSolution(string path, string content, Type[] types) - { - foreach (var type in types) - { - var args = new[] {path, content}; - var method = type.GetMethod("OnGeneratedSlnSolution", - System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic | - System.Reflection.BindingFlags.Static); - if (method == null) - { - continue; - } - - var returnValue = method.Invoke(null, args); - if (method.ReturnType == typeof(string)) - { - content = (string) returnValue; - } - } - - return content; - } - - void SyncFileIfNotChanged(string filename, string newContents) - { - try - { - if (m_FileIOProvider.Exists(filename) && newContents == m_FileIOProvider.ReadAllText(filename)) - { - return; - } - } - catch (Exception exception) - { - Debug.LogException(exception); - } - - m_FileIOProvider.WriteAllText(filename, newContents); - } - - string ProjectText(Assembly assembly, - Dictionary allAssetsProjectParts, - List responseFilesData, - List allProjectIslands) - { - var projectBuilder = new StringBuilder(ProjectHeader(assembly, responseFilesData)); - var references = new List(); - var projectReferences = new List(); - - foreach (string file in assembly.sourceFiles) - { - if (!ShouldFileBePartOfSolution(file)) - continue; - - var extension = Path.GetExtension(file).ToLower(); - var fullFile = EscapedRelativePathFor(file); - if (".dll" != extension) - { - projectBuilder.Append(" ").Append(Environment.NewLine); - } - else - { - references.Add(fullFile); - } - } - - // Append additional non-script files that should be included in project generation. - if (allAssetsProjectParts.TryGetValue(assembly.name, out var additionalAssetsForProject)) - projectBuilder.Append(additionalAssetsForProject); - - var islandRefs = references.Union(assembly.allReferences); - foreach (string reference in islandRefs) - { - if (reference.EndsWith("/UnityEditor.dll", StringComparison.Ordinal) - || reference.EndsWith("/UnityEngine.dll", StringComparison.Ordinal) - || reference.EndsWith("\\UnityEditor.dll", StringComparison.Ordinal) - || reference.EndsWith("\\UnityEngine.dll", StringComparison.Ordinal)) - continue; - - var match = k_ScriptReferenceExpression.Match(reference); - if (match.Success) - { - // assume csharp language - // Add a reference to a project except if it's a reference to a script assembly - // that we are not generating a project for. This will be the case for assemblies - // coming from .assembly.json files in non-internalized packages. - var dllName = match.Groups["dllname"].Value; - if (allProjectIslands.Any(i => Path.GetFileName(i.outputPath) == dllName)) - { - projectReferences.Add(match); - continue; - } - } - - string fullReference = Path.IsPathRooted(reference) ? reference : Path.Combine(ProjectDirectory, reference); - - AppendReference(fullReference, projectBuilder); - } - - var responseRefs = responseFilesData.SelectMany(x => x.FullPathReferences.Select(r => r)); - foreach (var reference in responseRefs) - { - AppendReference(reference, projectBuilder); - } - - if (0 < projectReferences.Count) - { - projectBuilder.AppendLine(" "); - projectBuilder.AppendLine(" "); - foreach (Match reference in projectReferences) - { - var referencedProject = reference.Groups["project"].Value; - - projectBuilder.Append(" ").Append(Environment.NewLine); - projectBuilder - .Append(" {") - .Append(m_GUIDGenerator.ProjectGuid(m_ProjectName, reference.Groups["project"].Value)) - .Append("}") - .Append(Environment.NewLine); - projectBuilder.Append(" ").Append(referencedProject).Append("").Append(Environment.NewLine); - projectBuilder.AppendLine(" "); - } - } - - projectBuilder.Append(ProjectFooter()); - return projectBuilder.ToString(); - } - - static void AppendReference(string fullReference, StringBuilder projectBuilder) - { - //replace \ with / and \\ with / - var escapedFullPath = SecurityElement.Escape(fullReference); - escapedFullPath = escapedFullPath.Replace("\\\\", "/").Replace("\\", "/"); - projectBuilder.Append(" ").Append(Environment.NewLine); - projectBuilder.Append(" ").Append(escapedFullPath).Append("").Append(Environment.NewLine); - projectBuilder.Append(" ").Append(Environment.NewLine); - } - - public string ProjectFile(Assembly assembly) - { - return Path.Combine(ProjectDirectory, $"{assembly.name}.csproj"); - } - - public string SolutionFile() - { - return Path.Combine(ProjectDirectory, $"{m_ProjectName}.sln"); - } - - string ProjectHeader( - Assembly assembly, - List responseFilesData - ) - { - var otherResponseFilesData = GetOtherArgumentsFromResponseFilesData(responseFilesData); - var arguments = new object[] - { - k_ToolsVersion, k_ProductVersion, m_GUIDGenerator.ProjectGuid(m_ProjectName, assembly.name), - InternalEditorUtility.GetEngineAssemblyPath(), - InternalEditorUtility.GetEditorAssemblyPath(), - string.Join(";", - new[] {"DEBUG", "TRACE"}.Concat(EditorUserBuildSettings.activeScriptCompilationDefines).Concat(assembly.defines) - .Concat(responseFilesData.SelectMany(x => x.Defines)).Distinct().ToArray()), - MSBuildNamespaceUri, - assembly.name, - EditorSettings.projectGenerationRootNamespace, - k_TargetFrameworkVersion, - GenerateLangVersion(otherResponseFilesData["langversion"]), - k_BaseDirectory, - assembly.compilerOptions.AllowUnsafeCode | responseFilesData.Any(x => x.Unsafe), - GenerateNoWarn(otherResponseFilesData["nowarn"].Distinct().ToArray()), - GenerateAnalyserItemGroup(otherResponseFilesData["analyzer"].Concat(otherResponseFilesData["a"]).SelectMany(x=>x.Split(';')).Distinct().ToArray()), - GenerateAnalyserAdditionalFiles(otherResponseFilesData["additionalfile"].SelectMany(x=>x.Split(';')).Distinct().ToArray()), - GenerateAnalyserRuleSet(otherResponseFilesData["ruleset"].Distinct().ToArray()), - GenerateWarningLevel(otherResponseFilesData["warn"].Concat(otherResponseFilesData["w"]).Distinct()), - GenerateWarningAsError(otherResponseFilesData["warnaserror"]), - GenerateDocumentationFile(otherResponseFilesData["doc"]) - }; - - try - { - return string.Format(GetProjectHeaderTemplate(), arguments); - } - catch (Exception) - { - throw new NotSupportedException( - "Failed creating c# project because the c# project header did not have the correct amount of arguments, which is " + - arguments.Length); - } - } - - private string GenerateDocumentationFile(IEnumerable paths) - { - if (!paths.Any()) - return String.Empty; - - - return $"{Environment.NewLine}{string.Join(Environment.NewLine, paths.Select(a => $" {a}"))}"; - } - - private string GenerateWarningAsError(IEnumerable enumerable) - { - string returnValue = String.Empty; - bool allWarningsAsErrors = false; - List warningIds = new List(); - - foreach (string s in enumerable) - { - if (s == "+") allWarningsAsErrors = true; - else if (s == "-") allWarningsAsErrors = false; - else - { - warningIds.Add(s); - } - } - - returnValue += $@" {allWarningsAsErrors}"; - if (warningIds.Any()) - { - returnValue += $"{Environment.NewLine} {string.Join(";", warningIds)}"; - } - - return $"{Environment.NewLine}{returnValue}"; - } - - private string GenerateWarningLevel(IEnumerable warningLevel) - { - var level = warningLevel.FirstOrDefault(); - if (!string.IsNullOrWhiteSpace(level)) - return level; - - return 4.ToString(); - } - - static string GetSolutionText() - { - return string.Join(Environment.NewLine, - @"", - @"Microsoft Visual Studio Solution File, Format Version {0}", - @"# Visual Studio {1}", - @"{2}", - @"Global", - @" GlobalSection(SolutionConfigurationPlatforms) = preSolution", - @" Debug|Any CPU = Debug|Any CPU", - @" Release|Any CPU = Release|Any CPU", - @" EndGlobalSection", - @" GlobalSection(ProjectConfigurationPlatforms) = postSolution", - @"{3}", - @" EndGlobalSection", - @" GlobalSection(SolutionProperties) = preSolution", - @" HideSolutionNode = FALSE", - @" EndGlobalSection", - @"EndGlobal", - @"").Replace(" ", "\t"); - } - - static string GetProjectFooterTemplate() - { - return string.Join(Environment.NewLine, - @" ", - @" ", - @" ", - @"", - @""); - } - - static string GetProjectHeaderTemplate() - { - var header = new[] - { - @"", - @"", - @" ", - @" {10}", - @" <_TargetFrameworkDirectories>non_empty_path_generated_by_unity.rider.package", - @" <_FullFrameworkReferenceAssemblyPaths>non_empty_path_generated_by_unity.rider.package", - @" true{16}", - @" ", - @" ", - @" Debug", - @" AnyCPU", - @" {1}", - @" 2.0", - @" {8}", - @" {{{2}}}", - @" Library", - @" Properties", - @" {7}", - @" {9}", - @" 512", - @" {11}", - @" ", - @" ", - @" true", - @" full", - @" false", - @" Temp\bin\Debug\", - @" {5}", - @" prompt", - @" {17}", - @" 0169{13}", - @" {12}{18}{19}", - @" ", - @" ", - @" pdbonly", - @" true", - @" Temp\bin\Release\", - @" prompt", - @" {17}", - @" 0169{13}", - @" {12}{18}{19}", - @" " - }; - - var forceExplicitReferences = new[] - { - @" ", - @" true", - @" true", - @" false", - @" false", - @" false", - @" " - }; - - var itemGroupStart = new[] - { - @" " - }; - - var footer = new[] - { - @" ", - @" {3}", - @" ", - @" ", - @" {4}", - @" ", - @" {14}{15}", - @" ", - @"" - }; - - var pieces = header.Concat(forceExplicitReferences).Concat(itemGroupStart).Concat(footer).ToArray(); - return string.Join(Environment.NewLine, pieces); - } - - void SyncSolution(IEnumerable islands, Type[] types) - { - SyncSolutionFileIfNotChanged(SolutionFile(), SolutionText(islands), types); - } - - string SolutionText(IEnumerable islands) - { - var fileversion = "11.00"; - var vsversion = "2010"; - - var relevantIslands = RelevantIslandsForMode(islands); - string projectEntries = GetProjectEntries(relevantIslands); - string projectConfigurations = string.Join(Environment.NewLine, - relevantIslands.Select(i => GetProjectActiveConfigurations(m_GUIDGenerator.ProjectGuid(m_ProjectName, i.name))).ToArray()); - return string.Format(GetSolutionText(), fileversion, vsversion, projectEntries, projectConfigurations); - } - - private static string GenerateAnalyserItemGroup(string[] paths) - { - // - // - // - // - if (!paths.Any()) - return string.Empty; - - var analyserBuilder = new StringBuilder(); - analyserBuilder.AppendLine(" "); - foreach (var path in paths) - { - analyserBuilder.AppendLine($" "); - } - analyserBuilder.AppendLine(" "); - return analyserBuilder.ToString(); - } - - private static ILookup GetOtherArgumentsFromResponseFilesData(List responseFilesData) - { - var paths = responseFilesData.SelectMany(x => - { - return x.OtherArguments - .Where(a => a.StartsWith("/") || a.StartsWith("-")) - .Select(b => - { - var index = b.IndexOf(":", StringComparison.Ordinal); - if (index > 0 && b.Length > index) - { - var key = b.Substring(1, index - 1); - return new KeyValuePair(key, b.Substring(index + 1)); - } - - const string warnaserror = "warnaserror"; - if (b.Substring(1).StartsWith(warnaserror)) - { - return new KeyValuePair(warnaserror, b.Substring(warnaserror.Length+ 1) ); - } - - return default; - }); - }) - .Distinct() - .ToLookup(o => o.Key, pair => pair.Value); - return paths; - } - - private string GenerateLangVersion(IEnumerable langVersionList) - { - var langVersion = langVersionList.FirstOrDefault(); - if (!string.IsNullOrWhiteSpace(langVersion)) - return langVersion; - return k_TargetLanguageVersion; - } - - private static string GenerateAnalyserRuleSet(string[] paths) - { - //..\path\to\myrules.ruleset - if (!paths.Any()) - return string.Empty; - - return $"{Environment.NewLine}{string.Join(Environment.NewLine, paths.Select(a => $" {a}"))}"; - } - - private static string GenerateAnalyserAdditionalFiles(string[] paths) - { - if (!paths.Any()) - return string.Empty; - - - var analyserBuilder = new StringBuilder(); - analyserBuilder.AppendLine(" "); - foreach (var path in paths) - { - analyserBuilder.AppendLine($" "); - } - analyserBuilder.AppendLine(" "); - return analyserBuilder.ToString(); - } - - private static string GenerateNoWarn(string[] codes) - { - if (!codes.Any()) - return string.Empty; - - return $",{string.Join(",", codes)}"; - } - - static IEnumerable RelevantIslandsForMode(IEnumerable islands) - { - IEnumerable relevantIslands = islands.Where(i => ScriptingLanguage.CSharp == ScriptingLanguageFor(i)); - return relevantIslands; - } - - /// - /// Get a Project("{guid}") = "MyProject", "MyProject.unityproj", "{projectguid}" - /// entry for each relevant language - /// - string GetProjectEntries(IEnumerable islands) - { - var projectEntries = islands.Select(i => string.Format( - m_SolutionProjectEntryTemplate, - m_GUIDGenerator.SolutionGuid(m_ProjectName, GetExtensionOfSourceFiles(i.sourceFiles)), - i.name, - Path.GetFileName(ProjectFile(i)), - m_GUIDGenerator.ProjectGuid(m_ProjectName, i.name) - )); - - return string.Join(Environment.NewLine, projectEntries.ToArray()); - } - - /// - /// Generate the active configuration string for a given project guid - /// - string GetProjectActiveConfigurations(string projectGuid) - { - return string.Format( - m_SolutionProjectConfigurationTemplate, - projectGuid); - } - - string EscapedRelativePathFor(string file) - { - var projectDir = ProjectDirectory.Replace('/', '\\'); - file = file.Replace('/', '\\'); - var path = SkipPathPrefix(file, projectDir); - - var packageInfo = m_AssemblyNameProvider.FindForAssetPath(path.Replace('\\', '/')); - if (packageInfo != null) - { - // We have to normalize the path, because the PackageManagerRemapper assumes - // dir seperators will be os specific. - var absolutePath = Path.GetFullPath(NormalizePath(path)).Replace('/', '\\'); - path = SkipPathPrefix(absolutePath, projectDir); - } - - return SecurityElement.Escape(path); - } - - static string SkipPathPrefix(string path, string prefix) - { - if (path.Replace("\\", "/").StartsWith($"{prefix}/")) - return path.Substring(prefix.Length + 1); - return path; - } - - static string NormalizePath(string path) - { - if (Path.DirectorySeparatorChar == '\\') - return path.Replace('/', Path.DirectorySeparatorChar); - return path.Replace('\\', Path.DirectorySeparatorChar); - } - - static string ProjectFooter() - { - return GetProjectFooterTemplate(); - } - - static string GetProjectExtension() - { - return ".csproj"; - } - } - - public static class SolutionGuidGenerator - { - public static string GuidForProject(string projectName) - { - return ComputeGuidHashFor(projectName + "salt"); - } - - public static string GuidForSolution(string projectName, string sourceFileExtension) - { - if (sourceFileExtension.ToLower() == "cs") - // GUID for a C# class library: http://www.codeproject.com/Reference/720512/List-of-Visual-Studio-Project-Type-GUIDs - return "FAE04EC0-301F-11D3-BF4B-00C04F79EFBC"; - - return ComputeGuidHashFor(projectName); - } - - static string ComputeGuidHashFor(string input) - { - var hash = MD5.Create().ComputeHash(Encoding.Default.GetBytes(input)); - return HashAsGuid(HashToString(hash)); - } - - static string HashAsGuid(string hash) - { - var guid = hash.Substring(0, 8) + "-" + hash.Substring(8, 4) + "-" + hash.Substring(12, 4) + "-" + - hash.Substring(16, 4) + "-" + hash.Substring(20, 12); - return guid.ToUpper(); - } - - static string HashToString(byte[] bs) - { - var sb = new StringBuilder(); - foreach (byte b in bs) - sb.Append(b.ToString("x2")); - return sb.ToString(); - } - } -} diff --git a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/ProjectGeneration/ProjectGeneration.cs.meta b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/ProjectGeneration/ProjectGeneration.cs.meta deleted file mode 100644 index 182b400..0000000 --- a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/ProjectGeneration/ProjectGeneration.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 7078f19173ceac84fb9e29b9f6175201 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/RiderInitializer.cs b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/RiderInitializer.cs deleted file mode 100644 index f64ee8d..0000000 --- a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/RiderInitializer.cs +++ /dev/null @@ -1,38 +0,0 @@ -using System; -using System.IO; -using UnityEngine; -using Debug = UnityEngine.Debug; - -namespace Packages.Rider.Editor -{ - internal class RiderInitializer - { - public void Initialize(string editorPath) - { - var assembly = EditorPluginInterop.EditorPluginAssembly; - if (EditorPluginInterop.EditorPluginIsLoadedFromAssets(assembly)) - { - Debug.LogError($"Please delete {assembly.Location}. Unity 2019.2+ loads it directly from Rider installation. To disable this, open Rider's settings, search and uncheck 'Automatically install and update Rider's Unity editor plugin'."); - return; - } - - var dllName = "JetBrains.Rider.Unity.Editor.Plugin.Full.Repacked.dll"; - var relPath = "../../plugins/rider-unity/EditorPlugin"; - if (SystemInfo.operatingSystemFamily == OperatingSystemFamily.MacOSX) - relPath = "Contents/plugins/rider-unity/EditorPlugin"; - var dllFile = new FileInfo(Path.Combine(Path.Combine(editorPath, relPath), dllName)); - - if (dllFile.Exists) - { - var bytes = File.ReadAllBytes(dllFile.FullName); - assembly = AppDomain.CurrentDomain.Load(bytes); // doesn't lock assembly on disk - // assembly = AppDomain.CurrentDomain.Load(AssemblyName.GetAssemblyName(dllFile.FullName)); // use this for external source debug - EditorPluginInterop.InitEntryPoint(assembly); - } - else - { - Debug.Log($"Unable to find Rider EditorPlugin {dllFile.FullName} for Unity "); - } - } - } -} diff --git a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/RiderInitializer.cs.meta b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/RiderInitializer.cs.meta deleted file mode 100644 index b37687a..0000000 --- a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/RiderInitializer.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f5a0cc9645f0e2d4fb816156dcf3f4dd -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/RiderScriptEditor.cs b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/RiderScriptEditor.cs deleted file mode 100644 index c53c6b1..0000000 --- a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/RiderScriptEditor.cs +++ /dev/null @@ -1,404 +0,0 @@ -using System; -using System.Diagnostics; -using System.IO; -using System.Linq; -using Packages.Rider.Editor.Util; -using Unity.CodeEditor; -using UnityEditor; -using UnityEngine; -using Debug = UnityEngine.Debug; - -namespace Packages.Rider.Editor -{ - [InitializeOnLoad] - public class RiderScriptEditor : IExternalCodeEditor - { - IDiscovery m_Discoverability; - IGenerator m_ProjectGeneration; - RiderInitializer m_Initiliazer = new RiderInitializer(); - - static RiderScriptEditor() - { - try - { - var projectGeneration = new ProjectGeneration(); - var editor = new RiderScriptEditor(new Discovery(), projectGeneration); - CodeEditor.Register(editor); - var path = GetEditorRealPath(CodeEditor.CurrentEditorInstallation); - - if (IsRiderInstallation(path)) - { - if (!RiderScriptEditorData.instance.InitializedOnce) - { - var installations = editor.Installations; - // is toolbox and outdated - update - if (installations.Any() && RiderPathLocator.IsToolbox(path) && installations.All(a => a.Path != path)) - { - var toolboxInstallations = installations.Where(a => a.Name.Contains("(JetBrains Toolbox)")).ToArray(); - if (toolboxInstallations.Any()) - { - var newEditor = toolboxInstallations.Last().Path; - CodeEditor.SetExternalScriptEditor(newEditor); - path = newEditor; - } - else - { - var newEditor = installations.Last().Path; - CodeEditor.SetExternalScriptEditor(newEditor); - path = newEditor; - } - } - - // exists, is non toolbox and outdated - notify - if (installations.Any() && FileSystemUtil.EditorPathExists(path) && installations.All(a => a.Path != path)) - { - var newEditorName = installations.Last().Name; - Debug.LogWarning($"Consider updating External Editor in Unity to Rider {newEditorName}."); - } - - ShowWarningOnUnexpectedScriptEditor(path); - RiderScriptEditorData.instance.InitializedOnce = true; - } - - if (!FileSystemUtil.EditorPathExists(path)) // previously used rider was removed - { - var installations = editor.Installations; - if (installations.Any()) - { - var newEditor = installations.Last().Path; - CodeEditor.SetExternalScriptEditor(newEditor); - path = newEditor; - } - } - RiderScriptEditorData.instance.Init(); - - editor.CreateSolutionIfDoesntExist(); - if (RiderScriptEditorData.instance.shouldLoadEditorPlugin) - { - editor.m_Initiliazer.Initialize(path); - } - - InitProjectFilesWatcher(); - } - } - catch (Exception e) - { - Debug.LogException(e); - } - } - - private static void ShowWarningOnUnexpectedScriptEditor(string path) - { - // Show warning, when Unity was started from Rider, but external editor is different https://github.com/JetBrains/resharper-unity/issues/1127 - var args = Environment.GetCommandLineArgs(); - var commandlineParser = new CommandLineParser(args); - if (commandlineParser.Options.ContainsKey("-riderPath")) - { - var originRiderPath = commandlineParser.Options["-riderPath"]; - var originRealPath = GetEditorRealPath(originRiderPath); - var originVersion = RiderPathLocator.GetBuildNumber(originRealPath); - var version = RiderPathLocator.GetBuildNumber(path); - if (originVersion != string.Empty && originVersion != version) - { - Debug.LogWarning("Unity was started by a version of Rider that is not the current default external editor. Advanced integration features cannot be enabled."); - Debug.Log($"Unity was started by Rider {originVersion}, but external editor is set to: {path}"); - } - } - } - - private static void InitProjectFilesWatcher() - { - var watcher = new FileSystemWatcher(); - watcher.Path = Directory.GetCurrentDirectory(); - watcher.NotifyFilter = NotifyFilters.LastWrite; //Watch for changes in LastWrite times - watcher.Filter = "*.*"; - - // Add event handlers. - watcher.Changed += OnChanged; - watcher.Created += OnChanged; - - watcher.EnableRaisingEvents = true; // Begin watching. - - AppDomain.CurrentDomain.DomainUnload += (EventHandler) ((_, __) => - { - watcher.Dispose(); - }); - } - - private static void OnChanged(object sender, FileSystemEventArgs e) - { - var extension = Path.GetExtension(e.FullPath); - if (extension == ".sln" || extension == ".csproj") - RiderScriptEditorData.instance.HasChanges = true; - } - - internal static string GetEditorRealPath(string path) - { - if (string.IsNullOrEmpty(path)) - { - return path; - } - - if (!FileSystemUtil.EditorPathExists(path)) - return path; - - if (SystemInfo.operatingSystemFamily != OperatingSystemFamily.Windows) - { - var realPath = FileSystemUtil.GetFinalPathName(path); - - // case of snap installation - if (SystemInfo.operatingSystemFamily == OperatingSystemFamily.Linux) - { - if (new FileInfo(path).Name.ToLowerInvariant() == "rider" && - new FileInfo(realPath).Name.ToLowerInvariant() == "snap") - { - var snapInstallPath = "/snap/rider/current/bin/rider.sh"; - if (new FileInfo(snapInstallPath).Exists) - return snapInstallPath; - } - } - - // in case of symlink - return realPath; - } - - return path; - } - - const string unity_generate_all = "unity_generate_all_csproj"; - - public RiderScriptEditor(IDiscovery discovery, IGenerator projectGeneration) - { - m_Discoverability = discovery; - m_ProjectGeneration = projectGeneration; - } - - private static string[] defaultExtensions - { - get - { - var customExtensions = new[] {"json", "asmdef", "log", "xaml"}; - return EditorSettings.projectGenerationBuiltinExtensions.Concat(EditorSettings.projectGenerationUserExtensions) - .Concat(customExtensions).Distinct().ToArray(); - } - } - - private static string[] HandledExtensions - { - get - { - return HandledExtensionsString.Split(new[] {';'}, StringSplitOptions.RemoveEmptyEntries).Select(s => s.TrimStart('.', '*')) - .ToArray(); - } - } - - private static string HandledExtensionsString - { - get { return EditorPrefs.GetString("Rider_UserExtensions", string.Join(";", defaultExtensions));} - set { EditorPrefs.SetString("Rider_UserExtensions", value); } - } - - private static bool SupportsExtension(string path) - { - var extension = Path.GetExtension(path); - if (string.IsNullOrEmpty(extension)) - return false; - return HandledExtensions.Contains(extension.TrimStart('.')); - } - - public void OnGUI() - { - var prevGenerate = EditorPrefs.GetBool(unity_generate_all, false); - var generateAll = EditorGUILayout.Toggle("Generate all .csproj files.", prevGenerate); - if (generateAll != prevGenerate) - { - EditorPrefs.SetBool(unity_generate_all, generateAll); - } - - m_ProjectGeneration.GenerateAll(generateAll); - - if (RiderScriptEditorData.instance.shouldLoadEditorPlugin) - { - HandledExtensionsString = EditorGUILayout.TextField(new GUIContent("Extensions handled: "), HandledExtensionsString); - } - } - - public void SyncIfNeeded(string[] addedFiles, string[] deletedFiles, string[] movedFiles, string[] movedFromFiles, - string[] importedFiles) - { - m_ProjectGeneration.SyncIfNeeded(addedFiles.Union(deletedFiles).Union(movedFiles).Union(movedFromFiles), - importedFiles); - } - - public void SyncAll() - { - AssetDatabase.Refresh(); - if (RiderScriptEditorData.instance.HasChanges) - { - m_ProjectGeneration.Sync(); - RiderScriptEditorData.instance.HasChanges = false; - } - } - - public void Initialize(string editorInstallationPath) // is called each time ExternalEditor is changed - { - RiderScriptEditorData.instance.Invalidate(editorInstallationPath); - m_ProjectGeneration.Sync(); // regenerate csproj and sln for new editor - } - - public bool OpenProject(string path, int line, int column) - { - if (path != "" && !SupportsExtension(path)) // Assets - Open C# Project passes empty path here - { - return false; - } - - if (path == "" && SystemInfo.operatingSystemFamily == OperatingSystemFamily.MacOSX) - { - // there is a bug in DllImplementation - use package implementation here instead https://github.cds.internal.unity3d.com/unity/com.unity.ide.rider/issues/21 - return OpenOSXApp(path, line, column); - } - - if (!IsUnityScript(path)) - { - var fastOpenResult = EditorPluginInterop.OpenFileDllImplementation(path, line, column); - if (fastOpenResult) - return true; - } - - if (SystemInfo.operatingSystemFamily == OperatingSystemFamily.MacOSX) - { - return OpenOSXApp(path, line, column); - } - - var solution = GetSolutionFile(path); // TODO: If solution file doesn't exist resync. - solution = solution == "" ? "" : $"\"{solution}\""; - var process = new Process - { - StartInfo = new ProcessStartInfo - { - FileName = CodeEditor.CurrentEditorInstallation, - Arguments = $"{solution} -l {line} \"{path}\"", - UseShellExecute = true, - } - }; - - process.Start(); - - return true; - } - - private bool OpenOSXApp(string path, int line, int column) - { - var solution = GetSolutionFile(path); // TODO: If solution file doesn't exist resync. - solution = solution == "" ? "" : $"\"{solution}\""; - var pathArguments = path == "" ? "" : $"-l {line} \"{path}\""; - var process = new Process - { - StartInfo = new ProcessStartInfo - { - FileName = "open", - Arguments = $"-n \"{CodeEditor.CurrentEditorInstallation}\" --args {solution} {pathArguments}", - CreateNoWindow = true, - UseShellExecute = true, - } - }; - - process.Start(); - - return true; - } - - private string GetSolutionFile(string path) - { - if (IsUnityScript(path)) - { - return Path.Combine(GetBaseUnityDeveloperFolder(), "Projects/CSharp/Unity.CSharpProjects.gen.sln"); - } - - var solutionFile = m_ProjectGeneration.SolutionFile(); - if (File.Exists(solutionFile)) - { - return solutionFile; - } - - return ""; - } - - static bool IsUnityScript(string path) - { - if (UnityEditor.Unsupported.IsDeveloperBuild()) - { - var baseFolder = GetBaseUnityDeveloperFolder().Replace("\\", "/"); - var lowerPath = path.ToLowerInvariant().Replace("\\", "/"); - - if (lowerPath.Contains((baseFolder + "/Runtime").ToLowerInvariant()) - || lowerPath.Contains((baseFolder + "/Editor").ToLowerInvariant())) - { - return true; - } - } - - return false; - } - - static string GetBaseUnityDeveloperFolder() - { - return Directory.GetParent(EditorApplication.applicationPath).Parent.Parent.FullName; - } - - public bool TryGetInstallationForPath(string editorPath, out CodeEditor.Installation installation) - { - if (FileSystemUtil.EditorPathExists(editorPath) && IsRiderInstallation(editorPath)) - { - var info = new RiderPathLocator.RiderInfo(editorPath, false); - installation = new CodeEditor.Installation - { - Name = info.Presentation, - Path = info.Path - }; - return true; - } - - installation = default; - return false; - } - - public static bool IsRiderInstallation(string path) - { - if (IsAssetImportWorkerProcess()) - return false; - - if (string.IsNullOrEmpty(path)) - { - return false; - } - - var fileInfo = new FileInfo(path); - var filename = fileInfo.Name.ToLowerInvariant(); - return filename.StartsWith("rider", StringComparison.Ordinal); - } - - private static bool IsAssetImportWorkerProcess() - { -#if UNITY_2019_3_OR_NEWER - return UnityEditor.Experimental.AssetDatabaseExperimental.IsAssetImportWorkerProcess(); -#else - return false; -#endif - } - - public static string CurrentEditor // works fast, doesn't validate if executable really exists - => EditorPrefs.GetString("kScriptsDefaultApp"); - - public CodeEditor.Installation[] Installations => m_Discoverability.PathCallback(); - - public void CreateSolutionIfDoesntExist() - { - if (!m_ProjectGeneration.HasSolutionBeenGenerated()) - { - m_ProjectGeneration.Sync(); - } - } - } -} \ No newline at end of file diff --git a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/RiderScriptEditor.cs.meta b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/RiderScriptEditor.cs.meta deleted file mode 100644 index ca34793..0000000 --- a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/RiderScriptEditor.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: c4095d72f77fbb64ea39b8b3ca246622 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/RiderScriptEditorData.cs b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/RiderScriptEditorData.cs deleted file mode 100644 index 47c7781..0000000 --- a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/RiderScriptEditorData.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System; -using UnityEditor; -using UnityEngine; - -namespace Packages.Rider.Editor -{ - public class RiderScriptEditorData : ScriptableSingleton - { - [SerializeField] internal bool HasChanges = true; // sln/csproj files were changed - [SerializeField] internal bool shouldLoadEditorPlugin; - [SerializeField] internal bool InitializedOnce; - [SerializeField] internal string currentEditorVersion; - - public void Init() - { - if (string.IsNullOrEmpty(currentEditorVersion)) - Invalidate(RiderScriptEditor.CurrentEditor); - } - - public void Invalidate(string editorInstallationPath) - { - currentEditorVersion = RiderPathLocator.GetBuildNumber(editorInstallationPath); - if (!Version.TryParse(currentEditorVersion, out var version)) - shouldLoadEditorPlugin = false; - - shouldLoadEditorPlugin = version >= new Version("191.7141.156"); - } - } -} \ No newline at end of file diff --git a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/RiderScriptEditorData.cs.meta b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/RiderScriptEditorData.cs.meta deleted file mode 100644 index e09363c..0000000 --- a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/RiderScriptEditorData.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f079e3afd077fb94fa2bda74d6409499 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting.meta b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting.meta deleted file mode 100644 index 4362802..0000000 --- a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: a52391bc44c477f40a547ed4ef3b9560 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/CallbackData.cs b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/CallbackData.cs deleted file mode 100644 index 99232f6..0000000 --- a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/CallbackData.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System; -using System.Collections.Generic; -using JetBrains.Annotations; -using UnityEditor; - -namespace Packages.Rider.Editor.UnitTesting -{ - public class CallbackData : ScriptableSingleton - { - public bool isRider; - - [UsedImplicitly] public static event EventHandler Changed = (sender, args) => { }; - - internal void RaiseChangedEvent() - { - Changed(null, EventArgs.Empty); - } - - public List events = new List(); - - [UsedImplicitly] - public void Clear() - { - events.Clear(); - } - } -} \ No newline at end of file diff --git a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/CallbackData.cs.meta b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/CallbackData.cs.meta deleted file mode 100644 index c58daeb..0000000 --- a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/CallbackData.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 010246a07de7cb34185a2a7b1c1fad59 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/CallbackInitializer.cs b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/CallbackInitializer.cs deleted file mode 100644 index f9dc5b9..0000000 --- a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/CallbackInitializer.cs +++ /dev/null @@ -1,18 +0,0 @@ -#if TEST_FRAMEWORK -using UnityEditor; -using UnityEditor.TestTools.TestRunner.Api; -using UnityEngine; - -namespace Packages.Rider.Editor.UnitTesting -{ - [InitializeOnLoad] - internal static class CallbackInitializer - { - static CallbackInitializer() - { - if (CallbackData.instance.isRider) - ScriptableObject.CreateInstance().RegisterCallbacks(ScriptableObject.CreateInstance(), 0); - } - } -} -#endif \ No newline at end of file diff --git a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/CallbackInitializer.cs.meta b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/CallbackInitializer.cs.meta deleted file mode 100644 index 11042d6..0000000 --- a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/CallbackInitializer.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: aa1c6b1a353ab464782fc1e7c051eb02 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/RiderTestRunner.cs b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/RiderTestRunner.cs deleted file mode 100644 index eb3b249..0000000 --- a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/RiderTestRunner.cs +++ /dev/null @@ -1,47 +0,0 @@ -using JetBrains.Annotations; -using UnityEngine; -#if TEST_FRAMEWORK -using UnityEditor; -using UnityEditor.TestTools.TestRunner.Api; -#endif - -namespace Packages.Rider.Editor.UnitTesting -{ - public static class RiderTestRunner - { -#if TEST_FRAMEWORK - private static readonly TestsCallback Callback = ScriptableObject.CreateInstance(); -#endif - [UsedImplicitly] - public static void RunTests(int testMode, string[] assemblyNames, string[] testNames, string[] categoryNames, string[] groupNames, int? buildTarget) - { -#if !TEST_FRAMEWORK - Debug.LogError("Update Test Framework package to v.1.1.1+ to run tests from Rider."); -#else - CallbackData.instance.isRider = true; - - var api = ScriptableObject.CreateInstance(); - var settings = new ExecutionSettings(); - var filter = new Filter - { - assemblyNames = assemblyNames, - testNames = testNames, - categoryNames = categoryNames, - groupNames = groupNames, - targetPlatform = (BuildTarget?) buildTarget - }; - - if (testMode > 0) // for future use - test-framework would allow running both Edit and Play test at once - filter.testMode = (TestMode) testMode; - - settings.filters = new []{ - filter - }; - api.Execute(settings); - - api.UnregisterCallbacks(Callback); // avoid multiple registrations - api.RegisterCallbacks(Callback); // This can be used to receive information about when the test suite and individual tests starts and stops. Provide this with a scriptable object implementing ICallbacks -#endif - } - } -} \ No newline at end of file diff --git a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/RiderTestRunner.cs.meta b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/RiderTestRunner.cs.meta deleted file mode 100644 index 8ec5502..0000000 --- a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/RiderTestRunner.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 5c3b27069cb3ddf42ba1260eeefcdd1c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/TestEvent.cs b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/TestEvent.cs deleted file mode 100644 index 9e3fff2..0000000 --- a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/TestEvent.cs +++ /dev/null @@ -1,31 +0,0 @@ -using System; -using NUnit.Framework.Interfaces; - -namespace Packages.Rider.Editor.UnitTesting -{ - [Serializable] - public enum EventType { TestStarted, TestFinished, RunFinished } - - [Serializable] - public class TestEvent - { - public EventType type; - public string id; - public string assemblyName; - public string output; - public TestStatus testStatus; - public double duration; - public string parentId; - - public TestEvent(EventType type, string id, string assemblyName, string output, double duration, TestStatus testStatus, string parentID) - { - this.type = type; - this.id = id; - this.assemblyName = assemblyName; - this.output = output; - this.testStatus = testStatus; - this.duration = duration; - parentId = parentID; - } - } -} \ No newline at end of file diff --git a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/TestEvent.cs.meta b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/TestEvent.cs.meta deleted file mode 100644 index a6afa14..0000000 --- a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/TestEvent.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: f9413c47b3a14a64e8810ce76d1a6032 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/TestsCallback.cs b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/TestsCallback.cs deleted file mode 100644 index b6a5637..0000000 --- a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/TestsCallback.cs +++ /dev/null @@ -1,83 +0,0 @@ -#if TEST_FRAMEWORK -using System; -using System.Text; -using UnityEditor.TestTools.TestRunner.Api; -using UnityEngine; - -namespace Packages.Rider.Editor.UnitTesting -{ - public class TestsCallback : ScriptableObject, ICallbacks - { - public void RunFinished(ITestResultAdaptor result) - { - CallbackData.instance.isRider = false; - - CallbackData.instance.events.Add( - new TestEvent(EventType.RunFinished, "", "","", 0, ParseTestStatus(result.TestStatus), "")); - CallbackData.instance.RaiseChangedEvent(); - } - - public void TestStarted(ITestAdaptor result) - { - if (result.Method == null) return; - - CallbackData.instance.events.Add( - new TestEvent(EventType.TestStarted, GetUniqueName(result), result.Method.TypeInfo.Assembly.GetName().Name, "", 0, ParseTestStatus(TestStatus.Passed), result.ParentFullName)); - CallbackData.instance.RaiseChangedEvent(); - } - - public void TestFinished(ITestResultAdaptor result) - { - if (result.Test.Method == null) return; - - CallbackData.instance.events.Add( - new TestEvent(EventType.TestFinished, GetUniqueName(result.Test), result.Test.Method.TypeInfo.Assembly.GetName().Name, ExtractOutput(result), result.Duration, ParseTestStatus(result.TestStatus), result.Test.ParentFullName)); - CallbackData.instance.RaiseChangedEvent(); - } - - // todo: reimplement JetBrains.Rider.Unity.Editor.AfterUnity56.UnitTesting.TestEventsSender.GetUniqueName - private static string GetUniqueName(ITestAdaptor test) - { - string str = test.FullName; - return str; - } - - public void RunStarted(ITestAdaptor testsToRun) - { - } - - private static NUnit.Framework.Interfaces.TestStatus ParseTestStatus(TestStatus testStatus) - { - return (NUnit.Framework.Interfaces.TestStatus)Enum.Parse(typeof(NUnit.Framework.Interfaces.TestStatus), testStatus.ToString()); - } - - private static string ExtractOutput(ITestResultAdaptor testResult) - { - var stringBuilder = new StringBuilder(); - if (testResult.Message != null) - { - stringBuilder.AppendLine("Message: "); - stringBuilder.AppendLine(testResult.Message); - } - - if (!string.IsNullOrEmpty(testResult.Output)) - { - stringBuilder.AppendLine("Output: "); - stringBuilder.AppendLine(testResult.Output); - } - - if (!string.IsNullOrEmpty(testResult.StackTrace)) - { - stringBuilder.AppendLine("Stacktrace: "); - stringBuilder.AppendLine(testResult.StackTrace); - } - - var result = stringBuilder.ToString(); - if (result.Length > 0) - return result; - - return testResult.Output ?? string.Empty; - } - } -} -#endif \ No newline at end of file diff --git a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/TestsCallback.cs.meta b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/TestsCallback.cs.meta deleted file mode 100644 index 345e1ce..0000000 --- a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/UnitTesting/TestsCallback.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 58aa570dbe0761f43b25ff6c2265bbe2 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util.meta b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util.meta deleted file mode 100644 index f801d0b..0000000 --- a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 5e726086cd652f82087d59d67d2c24cd -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/CommandLineParser.cs b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/CommandLineParser.cs deleted file mode 100644 index 4d4d3c9..0000000 --- a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/CommandLineParser.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Collections.Generic; - -namespace Packages.Rider.Editor.Util -{ - public class CommandLineParser - { - public Dictionary Options = new Dictionary(); - - public CommandLineParser(string[] args) - { - var i = 0; - while (i < args.Length) - { - var arg = args[i]; - if (!arg.StartsWith("-")) - { - i++; - continue; - } - - string value = null; - if (i + 1 < args.Length && !args[i + 1].StartsWith("-")) - { - value = args[i + 1]; - i++; - } - - if (!(Options.ContainsKey(arg))) - { - Options.Add(arg, value); - } - i++; - } - } - } -} \ No newline at end of file diff --git a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/CommandLineParser.cs.meta b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/CommandLineParser.cs.meta deleted file mode 100644 index 409ea02..0000000 --- a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/CommandLineParser.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 154ace4bd16de9f4e84052ac257786d6 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/FileSystemUtil.cs b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/FileSystemUtil.cs deleted file mode 100644 index 1ee32cc..0000000 --- a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/FileSystemUtil.cs +++ /dev/null @@ -1,66 +0,0 @@ -using System; -using System.ComponentModel; -using System.IO; -using System.Text; -using JetBrains.Annotations; -using UnityEngine; - -namespace Packages.Rider.Editor.Util -{ - public static class FileSystemUtil - { - [NotNull] - public static string GetFinalPathName([NotNull] string path) - { - if (path == null) throw new ArgumentNullException("path"); - - // up to MAX_PATH. MAX_PATH on Linux currently 4096, on Mac OS X 1024 - // doc: http://man7.org/linux/man-pages/man3/realpath.3.html - var sb = new StringBuilder(8192); - var result = LibcNativeInterop.realpath(path, sb); - if (result == IntPtr.Zero) - { - throw new Win32Exception($"{path} was not resolved."); - } - - return new FileInfo(sb.ToString()).FullName; - } - - public static string FileNameWithoutExtension(string path) - { - if (string.IsNullOrEmpty(path)) - { - return ""; - } - - var indexOfDot = -1; - var indexOfSlash = 0; - for (var i = path.Length - 1; i >= 0; i--) - { - if (indexOfDot == -1 && path[i] == '.') - { - indexOfDot = i; - } - - if (indexOfSlash == 0 && path[i] == '/' || path[i] == '\\') - { - indexOfSlash = i + 1; - break; - } - } - - if (indexOfDot == -1) - { - indexOfDot = path.Length; - } - - return path.Substring(indexOfSlash, indexOfDot - indexOfSlash); - } - - public static bool EditorPathExists(string editorPath) - { - return SystemInfo.operatingSystemFamily == OperatingSystemFamily.MacOSX && new DirectoryInfo(editorPath).Exists - || SystemInfo.operatingSystemFamily != OperatingSystemFamily.MacOSX && new FileInfo(editorPath).Exists; - } - } -} \ No newline at end of file diff --git a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/FileSystemUtil.cs.meta b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/FileSystemUtil.cs.meta deleted file mode 100644 index caac41a..0000000 --- a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/FileSystemUtil.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: bdbd564a9fdad0b738e76d030cad1204 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/LibcNativeInterop.cs b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/LibcNativeInterop.cs deleted file mode 100644 index 5f023f9..0000000 --- a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/LibcNativeInterop.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; -using System.Runtime.InteropServices; -using System.Text; - -namespace Packages.Rider.Editor.Util -{ - internal static class LibcNativeInterop - { - [DllImport("libc", SetLastError = true)] - public static extern IntPtr realpath(string path, StringBuilder resolved_path); - } -} \ No newline at end of file diff --git a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/LibcNativeInterop.cs.meta b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/LibcNativeInterop.cs.meta deleted file mode 100644 index 21b229d..0000000 --- a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/LibcNativeInterop.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 071c17858dc6c47ada7b2a1f1ded5402 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/RiderMenu.cs b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/RiderMenu.cs deleted file mode 100644 index 1909342..0000000 --- a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/RiderMenu.cs +++ /dev/null @@ -1,25 +0,0 @@ -using JetBrains.Annotations; -using Packages.Rider.Editor; -using Unity.CodeEditor; - -// Is called via commandline from Rider Notification after checking out from source control. - -// ReSharper disable once CheckNamespace -namespace JetBrains.Rider.Unity.Editor -{ - public static class RiderMenu - { - [UsedImplicitly] - public static void MenuOpenProject() - { - if (RiderScriptEditor.IsRiderInstallation(RiderScriptEditor.CurrentEditor)) - { - // Force the project files to be sync - CodeEditor.CurrentEditor.SyncAll(); - - // Load Project - CodeEditor.CurrentEditor.OpenProject(); - } - } - } -} \ No newline at end of file diff --git a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/RiderMenu.cs.meta b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/RiderMenu.cs.meta deleted file mode 100644 index ab43887..0000000 --- a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/RiderMenu.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: a8860c53ca4073d4f92c403e709c12ba -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/UnityUtils.cs b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/UnityUtils.cs deleted file mode 100644 index de03492..0000000 --- a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/UnityUtils.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Linq; -using UnityEngine; - -namespace Packages.Rider.Editor.Util -{ - public static class UnityUtils - { - internal static readonly string UnityApplicationVersion = Application.unityVersion; - - public static Version UnityVersion - { - get - { - var ver = UnityApplicationVersion.Split(".".ToCharArray()).Take(2).Aggregate((a, b) => a + "." + b); - return new Version(ver); - } - } - } -} \ No newline at end of file diff --git a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/UnityUtils.cs.meta b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/UnityUtils.cs.meta deleted file mode 100644 index fe2ac7b..0000000 --- a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/Util/UnityUtils.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 3ec9edad2de6c4df3a146b543a0fbc4c -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/com.unity.ide.rider.asmdef b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/com.unity.ide.rider.asmdef deleted file mode 100644 index ad87d48..0000000 --- a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/com.unity.ide.rider.asmdef +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "Unity.Rider.Editor", - "references": [ - "GUID:0acc523941302664db1f4e527237feb3" - ], - "includePlatforms": [ - "Editor" - ], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": false, - "precompiledReferences": [], - "autoReferenced": true, - "defineConstraints": [], - "versionDefines": [ - { - "name": "com.unity.test-framework", - "expression": "1.1.1", - "define": "TEST_FRAMEWORK" - } - ] -} \ No newline at end of file diff --git a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/com.unity.ide.rider.asmdef.meta b/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/com.unity.ide.rider.asmdef.meta deleted file mode 100644 index 2e67d0c..0000000 --- a/Library/PackageCache/com.unity.ide.rider@1.1.4/Rider/Editor/com.unity.ide.rider.asmdef.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: d528c8c98d269ca44a06cd9624a03945 -AssemblyDefinitionImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: -- cgit v1.2.3