diff --git a/Assets/uREPL/Examples/Scenes/Single Line.unity b/Assets/uREPL/Examples/Scenes/Single Line.unity index 74b6db7..a374ed2 100644 Binary files a/Assets/uREPL/Examples/Scenes/Single Line.unity and b/Assets/uREPL/Examples/Scenes/Single Line.unity differ diff --git a/Assets/uREPL/Plugins/Mono.CSharp.dll b/Assets/uREPL/Plugins/Mono.CSharp.dll index 1934bf8..146f36c 100644 Binary files a/Assets/uREPL/Plugins/Mono.CSharp.dll and b/Assets/uREPL/Plugins/Mono.CSharp.dll differ diff --git a/Assets/uREPL/Scripts/Completions/GlobalClassCompletion.cs b/Assets/uREPL/Scripts/Completions/GlobalClassCompletion.cs new file mode 100644 index 0000000..44ab690 --- /dev/null +++ b/Assets/uREPL/Scripts/Completions/GlobalClassCompletion.cs @@ -0,0 +1,43 @@ +using UnityEngine; +using System.Linq; + +namespace uREPL +{ + +public class GlobalClassCompletion : CompletionPlugin +{ + static private string[] globalClassNames_; + + protected override void OnEnable() + { + if (globalClassNames_ == null) { + globalClassNames_ = System.AppDomain.CurrentDomain.GetAssemblies() + .SelectMany(asm => asm.GetTypes()) + .Where(type => type.IsClass && type.Namespace == null) + .Select(type => type.Name) + .Where(name => char.IsLetter(name[0])) + .Distinct() + .OrderBy(name => name[0]) + .ToArray(); + } + + base.OnEnable(); + } + + public override CompletionInfo[] GetCompletions(string input) + { + var parts = input.Split(new char[] { '\n', ' ', '\t', '=', '{', '}', '(', ')', '<', '>' }); + var lastPart = parts.Last(); + return globalClassNames_ + .Where(name => name.IndexOf(lastPart) == 0) + .Select(name => new CompletionInfo( + lastPart, + name, + "G", + new Color32(50, 70, 240, 255), + "global::" + name)) + .ToArray(); + } +} + +} diff --git a/Assets/uREPL/Scripts/Completions/GlobalClassCompletion.cs.meta b/Assets/uREPL/Scripts/Completions/GlobalClassCompletion.cs.meta new file mode 100644 index 0000000..635654e --- /dev/null +++ b/Assets/uREPL/Scripts/Completions/GlobalClassCompletion.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 569bbae162537394a8b1d722aff15cdb +timeCreated: 1489079461 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {fileID: 2800000, guid: e595625465c294b69827ba1876777de0, type: 3} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/uREPL/Scripts/Core/Evaluator.cs b/Assets/uREPL/Scripts/Core/Evaluator.cs index f07b4ad..fe45326 100644 --- a/Assets/uREPL/Scripts/Core/Evaluator.cs +++ b/Assets/uREPL/Scripts/Core/Evaluator.cs @@ -60,6 +60,7 @@ static private void ReferenceAllAssemblies() static private void SetUsings() { Mono.CSharp.Evaluator.Run("using uREPL;"); + Mono.CSharp.Evaluator.Run("using System;"); Mono.CSharp.Evaluator.Run("using UnityEngine;"); // #if UNITY_EDITOR // Mono.CSharp.Evaluator.Run("using UnityEditor;"); diff --git a/Assets/uREPL/Scripts/Core/Main.cs b/Assets/uREPL/Scripts/Core/Main.cs index 1ff0b5d..fc6088e 100644 --- a/Assets/uREPL/Scripts/Core/Main.cs +++ b/Assets/uREPL/Scripts/Core/Main.cs @@ -27,6 +27,7 @@ void UpdateAllDefaultCompletionPlugins() UpdateCompletionPlugin(parameters.useCommandCompletion); UpdateCompletionPlugin(parameters.useGameObjectNameCompletion); UpdateCompletionPlugin(parameters.useGameObjectPathCompletion); + UpdateCompletionPlugin(parameters.useGlobalClassCompletion); } private void UpdateCompletionPlugin(bool enabled) where T : MonoBehaviour diff --git a/Assets/uREPL/Scripts/Core/Parameters.cs b/Assets/uREPL/Scripts/Core/Parameters.cs index 9d9896e..20d8772 100644 --- a/Assets/uREPL/Scripts/Core/Parameters.cs +++ b/Assets/uREPL/Scripts/Core/Parameters.cs @@ -11,6 +11,7 @@ public class Parameters public bool useCommandCompletion = true; public bool useGameObjectNameCompletion = true; public bool useGameObjectPathCompletion = true; + public bool useGlobalClassCompletion = true; #endregion #region [Parameters] diff --git a/Assets/uREPL/Scripts/Editor/MainEditor.cs b/Assets/uREPL/Scripts/Editor/MainEditor.cs index a1b823d..dbda149 100644 --- a/Assets/uREPL/Scripts/Editor/MainEditor.cs +++ b/Assets/uREPL/Scripts/Editor/MainEditor.cs @@ -37,6 +37,7 @@ private void DrawCompletionPluginGUI() Toggle("Command", ref parameters.useCommandCompletion); Toggle("GameObject Name", ref parameters.useGameObjectNameCompletion); Toggle("GameObject Path", ref parameters.useGameObjectPathCompletion); + Toggle("Global Class", ref parameters.useGlobalClassCompletion); EditorGUILayout.Separator(); --EditorGUI.indentLevel; } diff --git a/Assets/uREPL/Scripts/Gui/FieldItems/EnumFieldItem.cs b/Assets/uREPL/Scripts/Gui/FieldItems/EnumFieldItem.cs index f32ed49..9445fbc 100644 --- a/Assets/uREPL/Scripts/Gui/FieldItems/EnumFieldItem.cs +++ b/Assets/uREPL/Scripts/Gui/FieldItems/EnumFieldItem.cs @@ -1,7 +1,6 @@ using UnityEngine; using UnityEngine.UI; using System; -using System.Linq; namespace uREPL { diff --git a/Assets/uREPL/Scripts/Gui/FieldItems/FieldItem.cs b/Assets/uREPL/Scripts/Gui/FieldItems/FieldItem.cs index f0bd8eb..bedbd15 100644 --- a/Assets/uREPL/Scripts/Gui/FieldItems/FieldItem.cs +++ b/Assets/uREPL/Scripts/Gui/FieldItems/FieldItem.cs @@ -1,6 +1,9 @@ using UnityEngine; using UnityEngine.UI; +namespace uREPL +{ + public abstract class FieldItem : MonoBehaviour { protected Text labelText; @@ -31,3 +34,5 @@ void Awake() labelText = transform.FindChild("Label").GetComponent(); } } + +} \ No newline at end of file diff --git a/Assets/uREPL/Scripts/Gui/FieldItems/ReadonlyFieldItem.cs b/Assets/uREPL/Scripts/Gui/FieldItems/ReadonlyFieldItem.cs index dbbc9d8..fc163a1 100644 --- a/Assets/uREPL/Scripts/Gui/FieldItems/ReadonlyFieldItem.cs +++ b/Assets/uREPL/Scripts/Gui/FieldItems/ReadonlyFieldItem.cs @@ -1,7 +1,9 @@ using UnityEngine; using UnityEngine.UI; using System; -using System.Reflection; + +namespace uREPL +{ public class ReadonlyFieldItem : FieldItem { @@ -18,3 +20,5 @@ void Update() value = componentType.GetField(fieldName).GetValue(component); } } + +} \ No newline at end of file diff --git a/ProjectSettings/GraphicsSettings.asset b/ProjectSettings/GraphicsSettings.asset index 86d66c2..530995d 100644 Binary files a/ProjectSettings/GraphicsSettings.asset and b/ProjectSettings/GraphicsSettings.asset differ diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset index 94cc21a..7d14485 100644 Binary files a/ProjectSettings/ProjectSettings.asset and b/ProjectSettings/ProjectSettings.asset differ diff --git a/ProjectSettings/ProjectVersion.txt b/ProjectSettings/ProjectVersion.txt index 96b25e7..86d1b1e 100644 --- a/ProjectSettings/ProjectVersion.txt +++ b/ProjectSettings/ProjectVersion.txt @@ -1,2 +1 @@ -m_EditorVersion: 5.4.1f1 -m_StandardAssetsVersion: 0 +m_EditorVersion: 5.5.1f1