com.wallstop-studios.dxmessaging 2.2.0 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +106 -67
- package/CHANGELOG.md.meta +7 -7
- package/Editor/Analyzers/BaseCallIlInspector.cs +277 -0
- package/Editor/Analyzers/BaseCallIlInspector.cs.meta +11 -0
- package/Editor/Analyzers/BaseCallLogMessageParser.cs +295 -0
- package/Editor/Analyzers/BaseCallLogMessageParser.cs.meta +11 -0
- package/Editor/Analyzers/BaseCallReportAggregator.cs +308 -0
- package/Editor/Analyzers/BaseCallReportAggregator.cs.meta +11 -0
- package/Editor/Analyzers/BaseCallTypeScanner.cs +110 -0
- package/Editor/Analyzers/BaseCallTypeScanner.cs.meta +11 -0
- package/Editor/Analyzers/BaseCallTypeScannerCore.cs +562 -0
- package/Editor/Analyzers/BaseCallTypeScannerCore.cs.meta +11 -0
- package/Editor/Analyzers/DxMessagingConsoleHarvester.cs +1122 -0
- package/Editor/Analyzers/DxMessagingConsoleHarvester.cs.meta +11 -0
- package/Editor/Analyzers/Microsoft.CodeAnalysis.CSharp.dll.meta +44 -44
- package/Editor/Analyzers/Microsoft.CodeAnalysis.dll.meta +44 -44
- package/Editor/Analyzers/System.Collections.Immutable.dll.meta +44 -44
- package/Editor/Analyzers/System.Reflection.Metadata.dll.meta +44 -44
- package/Editor/Analyzers/System.Runtime.CompilerServices.Unsafe.dll.meta +44 -44
- package/Editor/Analyzers/WallstopStudios.DxMessaging.Analyzer.dll +0 -0
- package/Editor/Analyzers/WallstopStudios.DxMessaging.Analyzer.dll.meta +33 -0
- package/Editor/Analyzers/WallstopStudios.DxMessaging.SourceGenerators.dll +0 -0
- package/Editor/Analyzers/WallstopStudios.DxMessaging.SourceGenerators.dll.meta +72 -72
- package/Editor/Analyzers.meta +8 -8
- package/Editor/AssemblyInfo.cs.meta +3 -3
- package/Editor/CustomEditors/MessageAwareComponentFallbackEditor.cs +81 -0
- package/Editor/CustomEditors/MessageAwareComponentFallbackEditor.cs.meta +11 -0
- package/Editor/CustomEditors/MessageAwareComponentInspectorOverlay.cs +420 -0
- package/Editor/CustomEditors/MessageAwareComponentInspectorOverlay.cs.meta +11 -0
- package/Editor/CustomEditors/MessagingComponentEditor.cs +1 -1
- package/Editor/CustomEditors/MessagingComponentEditor.cs.meta +2 -2
- package/Editor/CustomEditors.meta +2 -2
- package/Editor/DxMessagingEditorInitializer.cs.meta +2 -2
- package/Editor/DxMessagingMenu.cs.meta +11 -11
- package/Editor/DxMessagingSceneBuildProcessor.cs.meta +11 -11
- package/Editor/Settings/DxMessagingBaseCallIgnoreSync.cs +190 -0
- package/Editor/Settings/DxMessagingBaseCallIgnoreSync.cs.meta +11 -0
- package/Editor/Settings/DxMessagingSettings.cs +189 -0
- package/Editor/Settings/DxMessagingSettings.cs.meta +2 -2
- package/Editor/Settings/DxMessagingSettingsProvider.cs +50 -33
- package/Editor/Settings/DxMessagingSettingsProvider.cs.meta +2 -2
- package/Editor/Settings.meta +2 -2
- package/Editor/SetupCscRsp.cs +209 -8
- package/Editor/SetupCscRsp.cs.meta +2 -2
- package/Editor/Testing/MessagingComponentEditorHarness.cs +1 -1
- package/Editor/Testing/MessagingComponentEditorHarness.cs.meta +3 -3
- package/Editor/Testing.meta +3 -3
- package/Editor/WallstopStudios.DxMessaging.Editor.asmdef +14 -14
- package/Editor/WallstopStudios.DxMessaging.Editor.asmdef.meta +7 -7
- package/Editor.meta +8 -8
- package/LICENSE.md +9 -9
- package/LICENSE.md.meta +7 -7
- package/README.md +941 -900
- package/README.md.meta +7 -7
- package/Runtime/AssemblyInfo.cs +4 -0
- package/Runtime/AssemblyInfo.cs.meta +2 -2
- package/Runtime/Core/Attributes/DxAutoConstructorAttribute.cs.meta +2 -2
- package/Runtime/Core/Attributes/DxBroadcastMessageAttribute.cs.meta +2 -2
- package/Runtime/Core/Attributes/DxIgnoreMissingBaseCallAttribute.cs +26 -0
- package/Runtime/Core/Attributes/DxIgnoreMissingBaseCallAttribute.cs.meta +11 -0
- package/Runtime/Core/Attributes/DxOptionalParameterAttribute.cs.meta +2 -2
- package/Runtime/Core/Attributes/DxTargetedMessageAttribute.cs.meta +2 -2
- package/Runtime/Core/Attributes/DxUntargetedMessageAttribute.cs.meta +2 -2
- package/Runtime/Core/Attributes.meta +2 -2
- package/Runtime/Core/Configuration/DxMessagingRuntimeSettings.cs +195 -0
- package/Runtime/Core/Configuration/DxMessagingRuntimeSettings.cs.meta +11 -0
- package/Runtime/Core/Configuration/DxMessagingRuntimeSettingsProvider.cs +179 -0
- package/Runtime/Core/Configuration/DxMessagingRuntimeSettingsProvider.cs.meta +11 -0
- package/Runtime/Core/Configuration.meta +9 -0
- package/Runtime/Core/DataStructure/CyclicBuffer.cs +2 -2
- package/Runtime/Core/DataStructure/CyclicBuffer.cs.meta +2 -2
- package/Runtime/Core/DataStructure.meta +2 -2
- package/Runtime/Core/Diagnostics/MessageEmissionData.cs.meta +2 -2
- package/Runtime/Core/Diagnostics/MessageRegistrationData.cs.meta +2 -2
- package/Runtime/Core/Diagnostics/MessageRegistrationType.cs.meta +2 -2
- package/Runtime/Core/Diagnostics.meta +2 -2
- package/Runtime/Core/DxMessagingStaticState.cs +19 -0
- package/Runtime/Core/DxMessagingStaticState.cs.meta +11 -11
- package/Runtime/Core/Extensions/EnumExtensions.cs.meta +2 -2
- package/Runtime/Core/Extensions/IListExtensions.cs.meta +2 -2
- package/Runtime/Core/Extensions/MessageBusExtensions.cs.meta +12 -12
- package/Runtime/Core/Extensions/MessageExtensions.cs.meta +11 -11
- package/Runtime/Core/Extensions.meta +8 -8
- package/Runtime/Core/Helper/MessageCache.cs +32 -0
- package/Runtime/Core/Helper/MessageCache.cs.meta +2 -2
- package/Runtime/Core/Helper/MessageHelperIndexer.cs.meta +2 -2
- package/Runtime/Core/Helper.meta +2 -2
- package/Runtime/Core/IMessage.cs +3 -3
- package/Runtime/Core/IMessage.cs.meta +11 -11
- package/Runtime/Core/InstanceId.cs.meta +11 -11
- package/Runtime/Core/Internal/TypedDispatchLinkIndex.cs +51 -0
- package/Runtime/Core/Internal/TypedDispatchLinkIndex.cs.meta +11 -0
- package/Runtime/Core/Internal/TypedGlobalSlotIndex.cs +38 -0
- package/Runtime/Core/Internal/TypedGlobalSlotIndex.cs.meta +11 -0
- package/Runtime/Core/Internal/TypedSlotIndex.cs +81 -0
- package/Runtime/Core/Internal/TypedSlotIndex.cs.meta +11 -0
- package/Runtime/Core/Internal/TypedSlots.cs +613 -0
- package/Runtime/Core/Internal/TypedSlots.cs.meta +11 -0
- package/Runtime/Core/Internal.meta +9 -0
- package/Runtime/Core/MessageBus/DiagnosticsTarget.cs.meta +11 -11
- package/Runtime/Core/MessageBus/GlobalMessageBusProvider.cs.meta +11 -11
- package/Runtime/Core/MessageBus/IMessageBus.cs +177 -3
- package/Runtime/Core/MessageBus/IMessageBus.cs.meta +11 -11
- package/Runtime/Core/MessageBus/IMessageBusProvider.cs.meta +11 -11
- package/Runtime/Core/MessageBus/IMessageRegistrationBuilder.cs.meta +11 -11
- package/Runtime/Core/MessageBus/Internal/BusContextIndex.cs +16 -0
- package/Runtime/Core/MessageBus/Internal/BusContextIndex.cs.meta +11 -0
- package/Runtime/Core/MessageBus/Internal/BusSinkIndex.cs +40 -0
- package/Runtime/Core/MessageBus/Internal/BusSinkIndex.cs.meta +11 -0
- package/Runtime/Core/MessageBus/Internal/BusSlots.cs +718 -0
- package/Runtime/Core/MessageBus/Internal/BusSlots.cs.meta +11 -0
- package/Runtime/Core/MessageBus/Internal/DispatchKind.cs +38 -0
- package/Runtime/Core/MessageBus/Internal/DispatchKind.cs.meta +11 -0
- package/Runtime/Core/MessageBus/Internal/DispatchPhase.cs +20 -0
- package/Runtime/Core/MessageBus/Internal/DispatchPhase.cs.meta +11 -0
- package/Runtime/Core/MessageBus/Internal/DispatchVariant.cs +28 -0
- package/Runtime/Core/MessageBus/Internal/DispatchVariant.cs.meta +11 -0
- package/Runtime/Core/MessageBus/Internal/IEvictableSlot.cs +48 -0
- package/Runtime/Core/MessageBus/Internal/IEvictableSlot.cs.meta +11 -0
- package/Runtime/Core/MessageBus/Internal/ISweepable.cs +15 -0
- package/Runtime/Core/MessageBus/Internal/ISweepable.cs.meta +11 -0
- package/Runtime/Core/MessageBus/Internal/RegistrationMethodAxes.cs +222 -0
- package/Runtime/Core/MessageBus/Internal/RegistrationMethodAxes.cs.meta +11 -0
- package/Runtime/Core/MessageBus/Internal/SlotKey.cs +192 -0
- package/Runtime/Core/MessageBus/Internal/SlotKey.cs.meta +11 -0
- package/Runtime/Core/MessageBus/Internal.meta +9 -0
- package/Runtime/Core/MessageBus/MessageBus.cs +2651 -500
- package/Runtime/Core/MessageBus/MessageBus.cs.meta +11 -11
- package/Runtime/Core/MessageBus/MessageBusRebindMode.cs.meta +11 -11
- package/Runtime/Core/MessageBus/MessageRegistrationBuilder.cs.meta +11 -11
- package/Runtime/Core/MessageBus/MessagingRegistration.cs.meta +11 -11
- package/Runtime/Core/MessageBus/RegistrationLog.cs.meta +11 -11
- package/Runtime/Core/MessageBus.meta +8 -8
- package/Runtime/Core/MessageHandler.cs +2019 -542
- package/Runtime/Core/MessageHandler.cs.meta +11 -11
- package/Runtime/Core/MessageRegistrationHandle.cs.meta +11 -11
- package/Runtime/Core/MessageRegistrationToken.cs +7 -0
- package/Runtime/Core/MessageRegistrationToken.cs.meta +11 -11
- package/Runtime/Core/Messages/GlobalStringMessage.cs.meta +2 -2
- package/Runtime/Core/Messages/IBroadcastMessage.cs.meta +11 -11
- package/Runtime/Core/Messages/ITargetedMessage.cs.meta +11 -11
- package/Runtime/Core/Messages/IUntargetedMessage.cs.meta +11 -11
- package/Runtime/Core/Messages/ReflexiveMessage.cs.meta +2 -2
- package/Runtime/Core/Messages/SourcedStringMessage.cs.meta +11 -11
- package/Runtime/Core/Messages/StringMessage.cs.meta +2 -2
- package/Runtime/Core/Messages.meta +8 -8
- package/Runtime/Core/MessagingDebug.cs.meta +11 -11
- package/Runtime/Core/Pooling/CollectionPool.cs +266 -0
- package/Runtime/Core/Pooling/CollectionPool.cs.meta +11 -0
- package/Runtime/Core/Pooling/CollectionPoolDiagnostics.cs +30 -0
- package/Runtime/Core/Pooling/CollectionPoolDiagnostics.cs.meta +11 -0
- package/Runtime/Core/Pooling/DxPools.cs +157 -0
- package/Runtime/Core/Pooling/DxPools.cs.meta +11 -0
- package/Runtime/Core/Pooling/EvictionPlayerLoopHook.cs +106 -0
- package/Runtime/Core/Pooling/EvictionPlayerLoopHook.cs.meta +11 -0
- package/Runtime/Core/Pooling/IDxMessagingClock.cs +18 -0
- package/Runtime/Core/Pooling/IDxMessagingClock.cs.meta +11 -0
- package/Runtime/Core/Pooling/PoolDiagnosticsSnapshot.cs +55 -0
- package/Runtime/Core/Pooling/PoolDiagnosticsSnapshot.cs.meta +11 -0
- package/Runtime/Core/Pooling/StopwatchClock.cs +27 -0
- package/Runtime/Core/Pooling/StopwatchClock.cs.meta +11 -0
- package/Runtime/Core/Pooling/UnityRealtimeClock.cs +31 -0
- package/Runtime/Core/Pooling/UnityRealtimeClock.cs.meta +11 -0
- package/Runtime/Core/Pooling.meta +9 -0
- package/Runtime/Core.meta +8 -8
- package/Runtime/Unity/CurrentGlobalMessageBusProvider.cs.meta +12 -12
- package/Runtime/Unity/DxMessagingRuntimeInitializer.cs.meta +11 -11
- package/Runtime/Unity/InitialGlobalMessageBusProvider.cs.meta +12 -12
- package/Runtime/Unity/Integrations/Reflex/AssemblyInfo.cs.meta +2 -2
- package/Runtime/Unity/Integrations/Reflex/ReflexRegistrationInstaller.cs +73 -0
- package/Runtime/Unity/Integrations/Reflex/ReflexRegistrationInstaller.cs.meta +11 -11
- package/Runtime/Unity/Integrations/Reflex/WallstopStudios.DxMessaging.Reflex.asmdef +20 -20
- package/Runtime/Unity/Integrations/Reflex/WallstopStudios.DxMessaging.Reflex.asmdef.meta +7 -7
- package/Runtime/Unity/Integrations/Reflex.meta +8 -8
- package/Runtime/Unity/Integrations/VContainer/AssemblyInfo.cs.meta +2 -2
- package/Runtime/Unity/Integrations/VContainer/VContainerRegistrationExtensions.cs +109 -1
- package/Runtime/Unity/Integrations/VContainer/VContainerRegistrationExtensions.cs.meta +11 -11
- package/Runtime/Unity/Integrations/VContainer/WallstopStudios.DxMessaging.VContainer.asmdef +30 -30
- package/Runtime/Unity/Integrations/VContainer/WallstopStudios.DxMessaging.VContainer.asmdef.meta +7 -7
- package/Runtime/Unity/Integrations/VContainer.meta +8 -8
- package/Runtime/Unity/Integrations/Zenject/AssemblyInfo.cs.meta +2 -2
- package/Runtime/Unity/Integrations/Zenject/WallstopStudios.DxMessaging.Zenject.asmdef +30 -30
- package/Runtime/Unity/Integrations/Zenject/WallstopStudios.DxMessaging.Zenject.asmdef.meta +7 -7
- package/Runtime/Unity/Integrations/Zenject/ZenjectRegistrationInstaller.cs +79 -1
- package/Runtime/Unity/Integrations/Zenject/ZenjectRegistrationInstaller.cs.meta +11 -11
- package/Runtime/Unity/Integrations/Zenject.meta +8 -8
- package/Runtime/Unity/Integrations.meta +8 -8
- package/Runtime/Unity/MessageAwareComponent.cs +29 -0
- package/Runtime/Unity/MessageAwareComponent.cs.meta +11 -11
- package/Runtime/Unity/MessageBusProviderHandle.cs.meta +12 -12
- package/Runtime/Unity/MessagingComponent.cs.meta +11 -11
- package/Runtime/Unity/MessagingComponentInstaller.cs.meta +12 -12
- package/Runtime/Unity/ScriptableMessageBusProvider.cs.meta +12 -12
- package/Runtime/Unity.meta +8 -8
- package/Runtime/WallstopStudios.DxMessaging.asmdef +14 -14
- package/Runtime/WallstopStudios.DxMessaging.asmdef.meta +7 -7
- package/Runtime.meta +8 -8
- package/Samples~/DI/Prefabs/MessagingInstallerSample.prefab +98 -98
- package/Samples~/DI/Prefabs/MessagingInstallerSample.prefab.meta +7 -7
- package/Samples~/DI/Prefabs.meta +8 -8
- package/Samples~/DI/Providers/GlobalMessageBusProvider.asset +14 -14
- package/Samples~/DI/Providers/GlobalMessageBusProvider.asset.meta +8 -8
- package/Samples~/DI/Providers/InitialGlobalMessageBusProvider.asset +14 -14
- package/Samples~/DI/Providers/InitialGlobalMessageBusProvider.asset.meta +8 -8
- package/Samples~/DI/Providers.meta +8 -8
- package/Samples~/DI/README.md +51 -51
- package/Samples~/DI/README.md.meta +7 -7
- package/Samples~/DI/Reflex/SampleInstaller.cs +7 -0
- package/Samples~/DI/Reflex/SampleInstaller.cs.meta +11 -11
- package/Samples~/DI/Reflex.meta +8 -8
- package/Samples~/DI/VContainer/SampleLifetimeScope.cs +6 -1
- package/Samples~/DI/VContainer/SampleLifetimeScope.cs.meta +11 -11
- package/Samples~/DI/VContainer.meta +8 -8
- package/Samples~/DI/Zenject/SampleInstaller.cs +8 -0
- package/Samples~/DI/Zenject/SampleInstaller.cs.meta +11 -11
- package/Samples~/DI/Zenject.meta +8 -8
- package/Samples~/DI.meta +8 -8
- package/Samples~/Mini Combat/Boot.cs.meta +11 -11
- package/Samples~/Mini Combat/Enemy.cs.meta +11 -11
- package/Samples~/Mini Combat/Messages.cs.meta +11 -11
- package/Samples~/Mini Combat/Player.cs.meta +11 -11
- package/Samples~/Mini Combat/README.md +324 -323
- package/Samples~/Mini Combat/README.md.meta +7 -7
- package/Samples~/Mini Combat/UIOverlay.cs.meta +11 -11
- package/Samples~/Mini Combat/Walkthrough.md +430 -430
- package/Samples~/Mini Combat/Walkthrough.md.meta +7 -7
- package/Samples~/Mini Combat/WallstopStudios.DxMessaging.MiniCombat.Sample.asmdef +13 -13
- package/Samples~/Mini Combat/WallstopStudios.DxMessaging.MiniCombat.Sample.asmdef.meta +7 -7
- package/Samples~/Mini Combat.meta +8 -8
- package/Samples~/UI Buttons + Inspector/DiagnosticsEnabler.cs.meta +11 -11
- package/Samples~/UI Buttons + Inspector/Messages.cs.meta +11 -11
- package/Samples~/UI Buttons + Inspector/MessagingObserver.cs.meta +11 -11
- package/Samples~/UI Buttons + Inspector/README.md +210 -209
- package/Samples~/UI Buttons + Inspector/README.md.meta +7 -7
- package/Samples~/UI Buttons + Inspector/UIButtonEmitter.cs.meta +11 -11
- package/Samples~/UI Buttons + Inspector/WallstopStudios.DxMessaging.UIButtons.Sample.asmdef +13 -13
- package/Samples~/UI Buttons + Inspector/WallstopStudios.DxMessaging.UIButtons.Sample.asmdef.meta +7 -7
- package/Samples~/UI Buttons + Inspector.meta +8 -8
- package/SourceGenerators/Directory.Build.props.meta +7 -7
- package/SourceGenerators/WallstopStudios.DxMessaging.SourceGenerators/DxAutoConstructorGenerator.cs.meta +11 -11
- package/SourceGenerators/WallstopStudios.DxMessaging.SourceGenerators/DxMessageIdGenerator.cs.meta +2 -2
- package/SourceGenerators/WallstopStudios.DxMessaging.SourceGenerators/WallstopStudios.DxMessaging.SourceGenerators.csproj.meta +7 -7
- package/SourceGenerators/WallstopStudios.DxMessaging.SourceGenerators.meta +8 -8
- package/SourceGenerators.meta +8 -8
- package/Third Party Notices.md +3 -3
- package/Third Party Notices.md.meta +7 -7
- package/package.json +115 -92
- package/package.json.meta +7 -7
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
namespace DxMessaging.Editor.Settings
|
|
2
|
+
{
|
|
3
|
+
#if UNITY_EDITOR
|
|
4
|
+
using System;
|
|
5
|
+
using System.Collections.Generic;
|
|
6
|
+
using System.IO;
|
|
7
|
+
using System.Linq;
|
|
8
|
+
using System.Text;
|
|
9
|
+
using UnityEditor;
|
|
10
|
+
using UnityEngine;
|
|
11
|
+
|
|
12
|
+
/// <summary>
|
|
13
|
+
/// Synchronizes the <see cref="DxMessagingSettings._baseCallIgnoredTypes"/> list to a sidecar
|
|
14
|
+
/// text file shipped to the Roslyn analyzer via <c>csc.rsp</c>'s <c>-additionalfile</c> switch.
|
|
15
|
+
/// </summary>
|
|
16
|
+
/// <remarks>
|
|
17
|
+
/// The sidecar is a build-derived view: never hand-edited, always regenerated from the
|
|
18
|
+
/// ScriptableObject. The analyzer reads it because it cannot parse Unity-serialized YAML.
|
|
19
|
+
/// </remarks>
|
|
20
|
+
public static class DxMessagingBaseCallIgnoreSync
|
|
21
|
+
{
|
|
22
|
+
/// <summary>
|
|
23
|
+
/// Project-relative path to the auto-generated sidecar file. Other Editor scripts
|
|
24
|
+
/// (e.g., <see cref="SetupCscRsp"/>) reference this constant when wiring
|
|
25
|
+
/// <c>-additionalfile</c> entries.
|
|
26
|
+
/// </summary>
|
|
27
|
+
public const string SidecarAssetPath = "Assets/Editor/DxMessaging.BaseCallIgnore.txt";
|
|
28
|
+
|
|
29
|
+
private const string HeaderComment =
|
|
30
|
+
"# Auto-generated from Assets/Editor/DxMessagingSettings.asset; edit there instead.";
|
|
31
|
+
private const string FormatComment =
|
|
32
|
+
"# One fully-qualified type name per line. Lines starting with # are comments.";
|
|
33
|
+
|
|
34
|
+
/// <summary>
|
|
35
|
+
/// Regenerates the sidecar text file from the supplied settings asset. Writes only when
|
|
36
|
+
/// the on-disk content differs from what would be written, matching the
|
|
37
|
+
/// <c>FilesDiffer</c>-style policy used elsewhere in this Editor assembly to avoid
|
|
38
|
+
/// AssetDatabase churn during domain reload.
|
|
39
|
+
/// </summary>
|
|
40
|
+
/// <param name="settings">The settings asset. May be <c>null</c> -- no-op in that case.</param>
|
|
41
|
+
/// <remarks>
|
|
42
|
+
/// When called while Unity is mid-compile or mid-asset-import (e.g., from a
|
|
43
|
+
/// <c>ScriptableObject.OnValidate</c> that fires during a domain reload), the actual
|
|
44
|
+
/// regen is deferred via <see cref="EditorApplication.delayCall"/> so we don't trip
|
|
45
|
+
/// AssetDatabase reentrancy guards. Direct calls from EditMode tests run synchronously
|
|
46
|
+
/// because tests don't execute during update/compile.
|
|
47
|
+
/// </remarks>
|
|
48
|
+
public static void RegenerateSidecar(DxMessagingSettings settings)
|
|
49
|
+
{
|
|
50
|
+
if (settings == null)
|
|
51
|
+
{
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
if (EditorApplication.isUpdating || EditorApplication.isCompiling)
|
|
56
|
+
{
|
|
57
|
+
EditorApplication.delayCall += () => RegenerateSidecarCore(settings);
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
RegenerateSidecarCore(settings);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
private static void RegenerateSidecarCore(DxMessagingSettings settings)
|
|
65
|
+
{
|
|
66
|
+
if (settings == null)
|
|
67
|
+
{
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
try
|
|
72
|
+
{
|
|
73
|
+
string newContent = BuildContent(settings._baseCallIgnoredTypes);
|
|
74
|
+
string absolutePath = GetAbsolutePath();
|
|
75
|
+
EnsureParentDirectoryExists(absolutePath);
|
|
76
|
+
|
|
77
|
+
if (File.Exists(absolutePath))
|
|
78
|
+
{
|
|
79
|
+
string existing = File.ReadAllText(absolutePath);
|
|
80
|
+
if (string.Equals(existing, newContent, StringComparison.Ordinal))
|
|
81
|
+
{
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
File.WriteAllText(absolutePath, newContent);
|
|
87
|
+
AssetDatabase.ImportAsset(SidecarAssetPath);
|
|
88
|
+
}
|
|
89
|
+
catch (Exception ex)
|
|
90
|
+
{
|
|
91
|
+
Debug.LogWarning(
|
|
92
|
+
$"[DxMessaging] Failed to write base-call ignore sidecar at '{SidecarAssetPath}': {ex.Message}"
|
|
93
|
+
);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/// <summary>
|
|
98
|
+
/// Reads the sidecar file and returns its non-comment, non-blank entries.
|
|
99
|
+
/// Tolerant of a missing file (returns an empty list) and of <c>#</c>-prefixed comment lines.
|
|
100
|
+
/// </summary>
|
|
101
|
+
public static IReadOnlyList<string> ReadSidecar()
|
|
102
|
+
{
|
|
103
|
+
try
|
|
104
|
+
{
|
|
105
|
+
string absolutePath = GetAbsolutePath();
|
|
106
|
+
if (!File.Exists(absolutePath))
|
|
107
|
+
{
|
|
108
|
+
return Array.Empty<string>();
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
List<string> entries = new();
|
|
112
|
+
foreach (string rawLine in File.ReadAllLines(absolutePath))
|
|
113
|
+
{
|
|
114
|
+
if (string.IsNullOrWhiteSpace(rawLine))
|
|
115
|
+
{
|
|
116
|
+
continue;
|
|
117
|
+
}
|
|
118
|
+
string trimmed = rawLine.Trim();
|
|
119
|
+
if (trimmed.Length == 0 || trimmed[0] == '#')
|
|
120
|
+
{
|
|
121
|
+
continue;
|
|
122
|
+
}
|
|
123
|
+
entries.Add(trimmed);
|
|
124
|
+
}
|
|
125
|
+
return entries;
|
|
126
|
+
}
|
|
127
|
+
catch (Exception ex)
|
|
128
|
+
{
|
|
129
|
+
Debug.LogWarning(
|
|
130
|
+
$"[DxMessaging] Failed to read base-call ignore sidecar at '{SidecarAssetPath}': {ex.Message}"
|
|
131
|
+
);
|
|
132
|
+
return Array.Empty<string>();
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
internal static string BuildContent(IList<string> ignoredTypes)
|
|
137
|
+
{
|
|
138
|
+
StringBuilder builder = new();
|
|
139
|
+
builder.Append(HeaderComment).Append('\n');
|
|
140
|
+
builder.Append(FormatComment).Append('\n');
|
|
141
|
+
|
|
142
|
+
if (ignoredTypes == null)
|
|
143
|
+
{
|
|
144
|
+
return builder.ToString();
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
// Deterministic order for git-friendly diffs; deduplicate while preserving the user's
|
|
148
|
+
// typed casing where possible (Ordinal sort with Ordinal-set dedupe).
|
|
149
|
+
HashSet<string> seen = new(StringComparer.Ordinal);
|
|
150
|
+
List<string> sorted = new(ignoredTypes.Count);
|
|
151
|
+
foreach (string entry in ignoredTypes)
|
|
152
|
+
{
|
|
153
|
+
if (string.IsNullOrWhiteSpace(entry))
|
|
154
|
+
{
|
|
155
|
+
continue;
|
|
156
|
+
}
|
|
157
|
+
string trimmed = entry.Trim();
|
|
158
|
+
if (seen.Add(trimmed))
|
|
159
|
+
{
|
|
160
|
+
sorted.Add(trimmed);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
sorted.Sort(StringComparer.Ordinal);
|
|
164
|
+
|
|
165
|
+
foreach (string entry in sorted)
|
|
166
|
+
{
|
|
167
|
+
builder.Append(entry).Append('\n');
|
|
168
|
+
}
|
|
169
|
+
return builder.ToString();
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
private static string GetAbsolutePath()
|
|
173
|
+
{
|
|
174
|
+
// Application.dataPath ends in "/Assets"; SidecarAssetPath begins with "Assets/".
|
|
175
|
+
string projectRoot = Path.GetFullPath(Path.Combine(Application.dataPath, ".."))
|
|
176
|
+
.Replace("\\", "/");
|
|
177
|
+
return Path.Combine(projectRoot, SidecarAssetPath).Replace("\\", "/");
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
private static void EnsureParentDirectoryExists(string absolutePath)
|
|
181
|
+
{
|
|
182
|
+
string directory = Path.GetDirectoryName(absolutePath);
|
|
183
|
+
if (!string.IsNullOrEmpty(directory) && !Directory.Exists(directory))
|
|
184
|
+
{
|
|
185
|
+
Directory.CreateDirectory(directory);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
#endif
|
|
190
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
namespace DxMessaging.Editor.Settings
|
|
2
2
|
{
|
|
3
3
|
#if UNITY_EDITOR
|
|
4
|
+
using System.Collections.Generic;
|
|
4
5
|
using System.Linq;
|
|
5
6
|
using Core.MessageBus;
|
|
6
7
|
using UnityEditor;
|
|
@@ -32,6 +33,15 @@ namespace DxMessaging.Editor.Settings
|
|
|
32
33
|
[SerializeField]
|
|
33
34
|
internal bool _suppressDomainReloadWarning = true;
|
|
34
35
|
|
|
36
|
+
[SerializeField]
|
|
37
|
+
internal List<string> _baseCallIgnoredTypes = new();
|
|
38
|
+
|
|
39
|
+
[SerializeField]
|
|
40
|
+
internal bool _baseCallCheckEnabled = true;
|
|
41
|
+
|
|
42
|
+
[SerializeField]
|
|
43
|
+
internal bool _useConsoleBridge;
|
|
44
|
+
|
|
35
45
|
/// <summary>
|
|
36
46
|
/// Controls <see cref="DiagnosticsTarget"/> values applied to <see cref="IMessageBus.GlobalDiagnosticsTargets"/>.
|
|
37
47
|
/// </summary>
|
|
@@ -59,6 +69,94 @@ namespace DxMessaging.Editor.Settings
|
|
|
59
69
|
set => _suppressDomainReloadWarning = value;
|
|
60
70
|
}
|
|
61
71
|
|
|
72
|
+
/// <summary>
|
|
73
|
+
/// Master toggle for the <c>MessageAwareComponent</c> base-call check (DXMSG006/007/008).
|
|
74
|
+
/// When <c>false</c>, the Inspector overlay and per-type warnings are silenced; the underlying
|
|
75
|
+
/// compile-time analyzer warnings remain unless explicitly suppressed via <c>.editorconfig</c>.
|
|
76
|
+
/// </summary>
|
|
77
|
+
/// <remarks>
|
|
78
|
+
/// S3: toggling from <c>false</c> back to <c>true</c> pokes
|
|
79
|
+
/// <see cref="DxMessaging.Editor.Analyzers.DxMessagingConsoleHarvester"/> on the next editor
|
|
80
|
+
/// tick so the snapshot repopulates without waiting for the user to clear/re-emit warnings
|
|
81
|
+
/// or to manually invoke <c>Tools/Wallstop Studios/DxMessaging/Rescan Base-Call Warnings</c>. The round-trip
|
|
82
|
+
/// is intentionally indirect (delayCall > RescanNow) to keep this property setter cheap and
|
|
83
|
+
/// safe to invoke from any editor context -- including OnValidate, where AssetDatabase may
|
|
84
|
+
/// be transitional.
|
|
85
|
+
/// </remarks>
|
|
86
|
+
public bool BaseCallCheckEnabled
|
|
87
|
+
{
|
|
88
|
+
get => _baseCallCheckEnabled;
|
|
89
|
+
set
|
|
90
|
+
{
|
|
91
|
+
bool previous = _baseCallCheckEnabled;
|
|
92
|
+
_baseCallCheckEnabled = value;
|
|
93
|
+
if (!previous && value)
|
|
94
|
+
{
|
|
95
|
+
// A master-toggle flip doesn't need a synchronous reflective harvest right now;
|
|
96
|
+
// the polled tick (~250ms) will pick up the sentinel cheaply on the editor's
|
|
97
|
+
// own update thread, avoiding a heavy reflection sweep on the main thread when
|
|
98
|
+
// the user has just clicked a checkbox. Indirected through delayCall so the
|
|
99
|
+
// setter is safe to invoke from any editor context (OnValidate, button click,
|
|
100
|
+
// etc.) without risking AssetDatabase reentrancy.
|
|
101
|
+
EditorApplication.delayCall += DxMessaging
|
|
102
|
+
.Editor
|
|
103
|
+
.Analyzers
|
|
104
|
+
.DxMessagingConsoleHarvester
|
|
105
|
+
.RequestRescan;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/// <summary>
|
|
111
|
+
/// Opt-in toggle for the legacy console-scrape bridge that augments the IL-reflection
|
|
112
|
+
/// scanner's snapshot with warnings harvested from <c>UnityEditor.LogEntries</c> and from
|
|
113
|
+
/// <c>CompilationPipeline.assemblyCompilationFinished</c>.
|
|
114
|
+
/// </summary>
|
|
115
|
+
/// <remarks>
|
|
116
|
+
/// <para>
|
|
117
|
+
/// Default <c>false</c>. The IL-reflection scanner
|
|
118
|
+
/// (<see cref="DxMessaging.Editor.Analyzers.BaseCallTypeScanner"/>) is the deterministic,
|
|
119
|
+
/// always-on primary source -- it walks every loaded <c>MessageAwareComponent</c> subclass
|
|
120
|
+
/// and inspects each override's IL body for the base-call shape, which is reliable across
|
|
121
|
+
/// Unity 2021 cache hits, incremental compiles, and arbitrary domain-reload sequences.
|
|
122
|
+
/// </para>
|
|
123
|
+
/// <para>
|
|
124
|
+
/// The legacy bridge predates the IL scanner and was the source of the intermittent
|
|
125
|
+
/// "missing warnings" bug on Unity 2021. Enable it ONLY if you want the union of both
|
|
126
|
+
/// data sources -- for example, to surface a regression in the IL byte-walker that is
|
|
127
|
+
/// already correctly captured by the compile-time analyzer's console output.
|
|
128
|
+
/// </para>
|
|
129
|
+
/// <para>
|
|
130
|
+
/// Toggling this property is observable via a deferred
|
|
131
|
+
/// <see cref="DxMessaging.Editor.Analyzers.DxMessagingConsoleHarvester.RescanNow"/> so the
|
|
132
|
+
/// inspector overlay refreshes without waiting for the next compile.
|
|
133
|
+
/// </para>
|
|
134
|
+
/// </remarks>
|
|
135
|
+
public bool UseConsoleBridge
|
|
136
|
+
{
|
|
137
|
+
get => _useConsoleBridge;
|
|
138
|
+
set
|
|
139
|
+
{
|
|
140
|
+
if (_useConsoleBridge == value)
|
|
141
|
+
{
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
_useConsoleBridge = value;
|
|
145
|
+
EditorUtility.SetDirty(this);
|
|
146
|
+
EditorApplication.delayCall += DxMessaging
|
|
147
|
+
.Editor
|
|
148
|
+
.Analyzers
|
|
149
|
+
.DxMessagingConsoleHarvester
|
|
150
|
+
.RescanNow;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
/// <summary>
|
|
155
|
+
/// Fully-qualified type names excluded from the base-call check. Editable via the Project Settings UI
|
|
156
|
+
/// or via the Inspector overlay's "Ignore this type" button.
|
|
157
|
+
/// </summary>
|
|
158
|
+
public IReadOnlyList<string> BaseCallIgnoredTypes => _baseCallIgnoredTypes;
|
|
159
|
+
|
|
62
160
|
/// <summary>
|
|
63
161
|
/// Loads the settings asset if present, otherwise creates it with sensible defaults.
|
|
64
162
|
/// </summary>
|
|
@@ -83,6 +181,8 @@ namespace DxMessaging.Editor.Settings
|
|
|
83
181
|
settings._diagnosticsTargets = DiagnosticsTarget.Off;
|
|
84
182
|
settings._messageBufferSize = IMessageBus.DefaultMessageBufferSize;
|
|
85
183
|
settings._suppressDomainReloadWarning = true;
|
|
184
|
+
settings._baseCallCheckEnabled = true;
|
|
185
|
+
settings._baseCallIgnoredTypes = new List<string>();
|
|
86
186
|
if (!AssetDatabase.IsValidFolder("Assets/Editor"))
|
|
87
187
|
{
|
|
88
188
|
AssetDatabase.CreateFolder("Assets", "Editor");
|
|
@@ -112,6 +212,95 @@ namespace DxMessaging.Editor.Settings
|
|
|
112
212
|
{
|
|
113
213
|
return new SerializedObject(GetOrCreateSettings());
|
|
114
214
|
}
|
|
215
|
+
|
|
216
|
+
private void OnEnable()
|
|
217
|
+
{
|
|
218
|
+
// Defensive: the field can be null if the asset was saved before this field existed.
|
|
219
|
+
if (_baseCallIgnoredTypes == null)
|
|
220
|
+
{
|
|
221
|
+
_baseCallIgnoredTypes = new List<string>();
|
|
222
|
+
}
|
|
223
|
+
// Intentionally NOT regenerating the sidecar here. OnEnable fires on every domain reload
|
|
224
|
+
// and play-mode entry; the sidecar on disk is already consistent with what we'd write
|
|
225
|
+
// (RegenerateSidecar is idempotent, but ImportAsset still produces churn). Regen runs
|
|
226
|
+
// only from OnValidate (user-driven edits) and from explicit Add/RemoveIgnoredType calls.
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
private void OnValidate()
|
|
230
|
+
{
|
|
231
|
+
if (_baseCallIgnoredTypes == null)
|
|
232
|
+
{
|
|
233
|
+
_baseCallIgnoredTypes = new List<string>();
|
|
234
|
+
}
|
|
235
|
+
TryRegenerateSidecar();
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
/// <summary>
|
|
239
|
+
/// Adds <paramref name="fullyQualifiedTypeName"/> to the ignore list, marks the asset
|
|
240
|
+
/// dirty, saves, and regenerates the sidecar. No-op when the entry is already present.
|
|
241
|
+
/// </summary>
|
|
242
|
+
internal void AddIgnoredType(string fullyQualifiedTypeName)
|
|
243
|
+
{
|
|
244
|
+
if (string.IsNullOrWhiteSpace(fullyQualifiedTypeName))
|
|
245
|
+
{
|
|
246
|
+
return;
|
|
247
|
+
}
|
|
248
|
+
if (_baseCallIgnoredTypes == null)
|
|
249
|
+
{
|
|
250
|
+
_baseCallIgnoredTypes = new List<string>();
|
|
251
|
+
}
|
|
252
|
+
if (
|
|
253
|
+
_baseCallIgnoredTypes.Any(entry =>
|
|
254
|
+
string.Equals(entry, fullyQualifiedTypeName, System.StringComparison.Ordinal)
|
|
255
|
+
)
|
|
256
|
+
)
|
|
257
|
+
{
|
|
258
|
+
return;
|
|
259
|
+
}
|
|
260
|
+
_baseCallIgnoredTypes.Add(fullyQualifiedTypeName);
|
|
261
|
+
EditorUtility.SetDirty(this);
|
|
262
|
+
AssetDatabase.SaveAssets();
|
|
263
|
+
TryRegenerateSidecar();
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
/// <summary>
|
|
267
|
+
/// Removes <paramref name="fullyQualifiedTypeName"/> from the ignore list, marks the asset
|
|
268
|
+
/// dirty, saves, and regenerates the sidecar. No-op when the entry is absent.
|
|
269
|
+
/// </summary>
|
|
270
|
+
internal void RemoveIgnoredType(string fullyQualifiedTypeName)
|
|
271
|
+
{
|
|
272
|
+
if (string.IsNullOrWhiteSpace(fullyQualifiedTypeName))
|
|
273
|
+
{
|
|
274
|
+
return;
|
|
275
|
+
}
|
|
276
|
+
if (_baseCallIgnoredTypes == null)
|
|
277
|
+
{
|
|
278
|
+
return;
|
|
279
|
+
}
|
|
280
|
+
int removed = _baseCallIgnoredTypes.RemoveAll(entry =>
|
|
281
|
+
string.Equals(entry, fullyQualifiedTypeName, System.StringComparison.Ordinal)
|
|
282
|
+
);
|
|
283
|
+
if (removed > 0)
|
|
284
|
+
{
|
|
285
|
+
EditorUtility.SetDirty(this);
|
|
286
|
+
AssetDatabase.SaveAssets();
|
|
287
|
+
TryRegenerateSidecar();
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
private void TryRegenerateSidecar()
|
|
292
|
+
{
|
|
293
|
+
try
|
|
294
|
+
{
|
|
295
|
+
DxMessagingBaseCallIgnoreSync.RegenerateSidecar(this);
|
|
296
|
+
}
|
|
297
|
+
catch (System.Exception ex)
|
|
298
|
+
{
|
|
299
|
+
Debug.LogWarning(
|
|
300
|
+
$"[DxMessaging] Failed to regenerate base-call ignore sidecar: {ex.Message}"
|
|
301
|
+
);
|
|
302
|
+
}
|
|
303
|
+
}
|
|
115
304
|
}
|
|
116
305
|
#endif
|
|
117
306
|
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: 477d53eef70c4496b945199c62169dfb
|
|
1
|
+
fileFormatVersion: 2
|
|
2
|
+
guid: 477d53eef70c4496b945199c62169dfb
|
|
3
3
|
timeCreated: 1749668079
|
|
@@ -10,7 +10,7 @@ namespace DxMessaging.Editor.Settings
|
|
|
10
10
|
/// Project Settings provider for DxMessaging configuration.
|
|
11
11
|
/// </summary>
|
|
12
12
|
/// <remarks>
|
|
13
|
-
/// Exposes toggles for global diagnostics mode and message buffer size under Project Settings
|
|
13
|
+
/// Exposes toggles for global diagnostics mode and message buffer size under Project Settings > Wallstop Studios > DxMessaging.
|
|
14
14
|
/// </remarks>
|
|
15
15
|
public sealed class DxMessagingSettingsProvider : SettingsProvider
|
|
16
16
|
{
|
|
@@ -41,53 +41,70 @@ namespace DxMessaging.Editor.Settings
|
|
|
41
41
|
/// <param name="searchContext">Search text provided by the Project Settings window.</param>
|
|
42
42
|
public override void OnGUI(string searchContext)
|
|
43
43
|
{
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
44
|
+
float previousLabelWidth = EditorGUIUtility.labelWidth;
|
|
45
|
+
EditorGUIUtility.labelWidth = 240f;
|
|
46
|
+
try
|
|
47
|
+
{
|
|
48
|
+
SerializedProperty targetsProp = _messagingSettings.FindProperty(
|
|
49
|
+
nameof(DxMessagingSettings._diagnosticsTargets)
|
|
50
|
+
);
|
|
51
|
+
DiagnosticsTarget currentTargets = (DiagnosticsTarget)targetsProp.enumValueFlag;
|
|
52
|
+
DiagnosticsTarget updatedTargets = (DiagnosticsTarget)
|
|
53
|
+
EditorGUILayout.EnumFlagsField(
|
|
54
|
+
new GUIContent(
|
|
55
|
+
"Diagnostics Targets",
|
|
56
|
+
"Select where global diagnostics should be enabled by default. Combine flags for multiple targets."
|
|
57
|
+
),
|
|
58
|
+
currentTargets
|
|
59
|
+
);
|
|
60
|
+
if (updatedTargets != currentTargets)
|
|
61
|
+
{
|
|
62
|
+
targetsProp.enumValueFlag = (int)updatedTargets;
|
|
63
|
+
}
|
|
64
|
+
EditorGUILayout.PropertyField(
|
|
65
|
+
_messagingSettings.FindProperty(nameof(DxMessagingSettings._messageBufferSize)),
|
|
50
66
|
new GUIContent(
|
|
51
|
-
"
|
|
52
|
-
"
|
|
67
|
+
"Message Buffer Size",
|
|
68
|
+
"Number of emissions kept per bus/token when diagnostics mode is active."
|
|
69
|
+
)
|
|
70
|
+
);
|
|
71
|
+
EditorGUILayout.PropertyField(
|
|
72
|
+
_messagingSettings.FindProperty(
|
|
73
|
+
nameof(DxMessagingSettings._suppressDomainReloadWarning)
|
|
53
74
|
),
|
|
54
|
-
|
|
75
|
+
new GUIContent(
|
|
76
|
+
"Suppress Domain Reload Warning",
|
|
77
|
+
"Disable the warning shown when Enter Play Mode Options skips domain reload; DxMessaging still resets its statics."
|
|
78
|
+
)
|
|
55
79
|
);
|
|
56
|
-
|
|
80
|
+
|
|
81
|
+
_messagingSettings.ApplyModifiedProperties();
|
|
82
|
+
}
|
|
83
|
+
finally
|
|
57
84
|
{
|
|
58
|
-
|
|
85
|
+
EditorGUIUtility.labelWidth = previousLabelWidth;
|
|
59
86
|
}
|
|
60
|
-
EditorGUILayout.PropertyField(
|
|
61
|
-
_messagingSettings.FindProperty(nameof(DxMessagingSettings._messageBufferSize)),
|
|
62
|
-
new GUIContent(
|
|
63
|
-
"Message Buffer Size",
|
|
64
|
-
"Number of emissions kept per bus/token when diagnostics mode is active."
|
|
65
|
-
)
|
|
66
|
-
);
|
|
67
|
-
EditorGUILayout.PropertyField(
|
|
68
|
-
_messagingSettings.FindProperty(
|
|
69
|
-
nameof(DxMessagingSettings._suppressDomainReloadWarning)
|
|
70
|
-
),
|
|
71
|
-
new GUIContent(
|
|
72
|
-
"Suppress Domain Reload Warning",
|
|
73
|
-
"Disable the warning shown when Enter Play Mode Options skips domain reload; DxMessaging still resets its statics."
|
|
74
|
-
)
|
|
75
|
-
);
|
|
76
|
-
|
|
77
|
-
_messagingSettings.ApplyModifiedProperties();
|
|
78
87
|
}
|
|
79
88
|
|
|
80
|
-
[SettingsProvider]
|
|
81
89
|
/// <summary>
|
|
82
90
|
/// Factory used by Unity to register the DxMessaging project settings page.
|
|
83
91
|
/// </summary>
|
|
84
92
|
/// <returns>Configured settings provider instance.</returns>
|
|
93
|
+
[SettingsProvider]
|
|
85
94
|
public static SettingsProvider CreateDxMessagingSettingsProvider()
|
|
86
95
|
{
|
|
87
|
-
DxMessagingSettingsProvider provider = new("Project/DxMessaging")
|
|
96
|
+
DxMessagingSettingsProvider provider = new("Project/Wallstop Studios/DxMessaging")
|
|
88
97
|
{
|
|
89
98
|
keywords = new HashSet<string>(
|
|
90
|
-
new[]
|
|
99
|
+
new[]
|
|
100
|
+
{
|
|
101
|
+
"DxMessaging",
|
|
102
|
+
"Diagnostics",
|
|
103
|
+
"MessageBus",
|
|
104
|
+
"Targets",
|
|
105
|
+
"Wallstop",
|
|
106
|
+
"Wallstop Studios",
|
|
107
|
+
}
|
|
91
108
|
),
|
|
92
109
|
};
|
|
93
110
|
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: e4353b92a69a4703abc268fb885a1224
|
|
1
|
+
fileFormatVersion: 2
|
|
2
|
+
guid: e4353b92a69a4703abc268fb885a1224
|
|
3
3
|
timeCreated: 1749668115
|
package/Editor/Settings.meta
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: 73f79e95899848a9b4307c19174b4a45
|
|
1
|
+
fileFormatVersion: 2
|
|
2
|
+
guid: 73f79e95899848a9b4307c19174b4a45
|
|
3
3
|
timeCreated: 1749668065
|