internal static void ShowLogs(RefactorSettings.Parameters parameters, Log[] logs, string logNamespace, GUIStyle logStyle, ref Vector2 scrollPosition) { Log[] filteredLogs = logs.Where(log => log.Namespace.ToLower().Contains(logNamespace.ToLower())).ToArray(); scrollPosition = EditorGUILayout.BeginScrollView(scrollPosition, GUILayout.ExpandWidth(false)); int i; for (i = 0; i < filteredLogs.Length; i++) { Rect verticalRect = EditorGUILayout.BeginVertical("Button"); if (GUI.Button(verticalRect, GUIContent.none)) { UnityEditorInternal.InternalEditorUtility.OpenFileAtLineExternal(filteredLogs[i].FilePath, filteredLogs[i].LineNumber, filteredLogs[i].ColumnNumber); } EditorGUILayout.LabelField($"<color=#ffffff>{filteredLogs[i].Text}</color>", logStyle); EditorGUILayout.EndVertical(); } if (i == 0 && parameters.enabled) { EditorGUILayout.HelpBox($"Bro, nice job! There is nothing to refactor{(logNamespace == "" ? "" : " in this namespace")}. " + $"Come back later! See you soooooooon. \n\n You still here? ⊙﹏⊙", MessageType.None, true); } EditorGUILayout.EndScrollView(); }
private static void OnChange(Action fileUpdateAction) { #if BIOSEARCHER_PROFILING Profiler.BeginSample($"RefactorManager.{nameof(OnChange)}"); #endif try { RefactorSettings.Parameters parameters = RefactorSettings.GetParamsSafe(); if (parameters.enabled) { fileUpdateAction(); Logs = fileInfos.SelectMany(pair => pair.Value.logs).ToArray(); if (parameters.showInConsole) { Logger.LogAll(Logs); } } else { Logs = Array.Empty <Log>(); } } catch (Exception ex) { Debug.LogError(ex.Message); } #if BIOSEARCHER_PROFILING Profiler.EndSample(); #endif }
private void OnGUI() { RefactorSettings.Parameters parameters = settings.GetParamsSafe(); EditorCommon.ShowRefactorSettings(ref _showParameters, () => ShowRefactorParameters(parameters), _headerStyle); Log[] logs = RefactorManager.Logs; EditorCommon.ShowNamespaceFilter(logs, _labelStyle, _logNamespace, ref _horizontalWidth, logNamespace => _logNamespace = logNamespace); EditorCommon.ShowLogs(parameters, logs, _logNamespace, _logStyle, ref _scrollPosition); }
private void ShowRefactorParameters(RefactorSettings.Parameters parameters) { settings = (RefactorSettings)EditorGUILayout.ObjectField(settings, typeof(RefactorSettings), false); if (settings != null) { EditorGUILayout.Space(); GUI.enabled = false; EditorGUILayout.Toggle("Refactor Check Enabled", parameters.enabled); EditorGUILayout.Toggle("Show In Console", parameters.showInConsole); GUI.enabled = true; } }