Skip to content
This repository was archived by the owner on Jan 18, 2022. It is now read-only.

Commit f9fa4da

Browse files
authored
Bug/worker inspector indentation (#1480)
Fixed field indentations in worker inspector
1 parent 05ec260 commit f9fa4da

File tree

7 files changed

+50
-13
lines changed

7 files changed

+50
-13
lines changed

CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
- Fixed an issue where authority changes returned by `ComponentUpdateSystem.GetAuthorityChangesReceived()` were returned in order from newest to oldest. [#1465](https://github.com/spatialos/gdk-for-unity/pull/1465)
3838
- Fixed a bug where the build system would throw a null reference exception if you don't have a configuration for a worker type. [#1461](https://github.com/spatialos/gdk-for-unity/pull/1461)
3939
- Fixed an incorrect callback registration for entity creation/removal in the `WorldCommandSender`. [#1473](https://github.com/spatialos/gdk-for-unity/pull/1462)
40+
- Fixed the `TextField` indentation issue in the Worker Inspector due to nested `VisualElement` containers. [#1480](https://github.com/spatialos/gdk-for-unity/pull/1480)
4041

4142
## `0.3.10` - 2020-08-18
4243

workers/unity/Packages/io.improbable.gdk.debug/.codegen/Source/Generators/DebugExtensions/ComponentVisualElementGenerator.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ private void GenerateConstructor(TypeBlock typeBlock, UnityComponentDetails deta
5151

5252
foreach (var field in details.FieldDetails)
5353
{
54-
mb.TextList(typeGenerator.ToFieldInitialisation(field, "ComponentFoldout"));
54+
mb.TextList(typeGenerator.ToFieldInitialisation(field, "ComponentFoldout", "0"));
5555
}
5656

5757
mb.Line($"InjectComponentIcon(\"{GetComponentIcon(details)}\");");

workers/unity/Packages/io.improbable.gdk.debug/.codegen/Source/Generators/DebugExtensions/FieldTypeHandler.cs

+28-10
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System;
2+
using System.Text;
23
using System.Collections.Generic;
34
using System.Linq;
45
using Improbable.Gdk.CodeGeneration.Model;
@@ -42,14 +43,14 @@ public string ToFieldDeclaration(UnityFieldDetails fieldDetails)
4243
}
4344
}
4445

45-
public IEnumerable<string> ToFieldInitialisation(UnityFieldDetails fieldDetails, string parentContainer)
46+
public IEnumerable<string> ToFieldInitialisation(UnityFieldDetails fieldDetails, string parentContainer, string nestVar)
4647
{
4748
switch (fieldDetails.FieldType)
4849
{
4950
case SingularFieldType singularFieldType:
5051
var humanReadableName = Formatting.SnakeCaseToHumanReadable(fieldDetails.Name);
5152

52-
foreach (var initializer in GetFieldInitializer(singularFieldType.ContainedType, $"{fieldDetails.CamelCaseName}Field", humanReadableName, false))
53+
foreach (var initializer in GetFieldInitializer(singularFieldType.ContainedType, $"{fieldDetails.CamelCaseName}Field", humanReadableName, nestVar, false))
5354
{
5455
yield return initializer;
5556
}
@@ -59,7 +60,7 @@ public IEnumerable<string> ToFieldInitialisation(UnityFieldDetails fieldDetails,
5960
case OptionFieldType optionFieldType:
6061
var innerUiType = GetUiFieldType(optionFieldType.ContainedType);
6162

62-
foreach (var initializer in GetFieldInitializer(optionFieldType.ContainedType, $"{fieldDetails.CamelCaseName}InnerField", "Value"))
63+
foreach (var initializer in GetFieldInitializer(optionFieldType.ContainedType, $"{fieldDetails.CamelCaseName}InnerField", "Value", $"{nestVar} + 1"))
6364
{
6465
yield return initializer;
6566
}
@@ -76,7 +77,7 @@ public IEnumerable<string> ToFieldInitialisation(UnityFieldDetails fieldDetails,
7677
yield return
7778
$"{fieldDetails.CamelCaseName}Field = new PaginatedListView<{innerListType}, {listFieldType.ContainedType.FqnType}>(\"{Formatting.SnakeCaseToHumanReadable(fieldDetails.Name)}\", () => {{";
7879

79-
foreach (var initializer in GetFieldInitializer(listFieldType.ContainedType, "inner", ""))
80+
foreach (var initializer in GetFieldInitializer(listFieldType.ContainedType, "inner", "", $"{nestVar} + 1"))
8081
{
8182
yield return initializer;
8283
}
@@ -98,7 +99,7 @@ public IEnumerable<string> ToFieldInitialisation(UnityFieldDetails fieldDetails,
9899
$"{fieldDetails.CamelCaseName}Field = new PaginatedMapView<{innerKeyType}, {mapFieldType.KeyType.FqnType}, {innerValueType}, {mapFieldType.ValueType.FqnType}>(\"{Formatting.SnakeCaseToHumanReadable(fieldDetails.Name)}\",";
99100
yield return "() => {";
100101

101-
foreach (var initializer in GetFieldInitializer(mapFieldType.KeyType, "inner", "Key"))
102+
foreach (var initializer in GetFieldInitializer(mapFieldType.KeyType, "inner", "Key", $"{nestVar} + 1"))
102103
{
103104
yield return initializer;
104105
}
@@ -107,7 +108,7 @@ public IEnumerable<string> ToFieldInitialisation(UnityFieldDetails fieldDetails,
107108

108109
yield return "() => {";
109110

110-
foreach (var initializer in GetFieldInitializer(mapFieldType.ValueType, "inner", "Value"))
111+
foreach (var initializer in GetFieldInitializer(mapFieldType.ValueType, "inner", "Value", $"{nestVar} + 1"))
111112
{
112113
yield return initializer;
113114
}
@@ -136,22 +137,39 @@ public string ToUiFieldUpdate(UnityFieldDetails fieldDetails, string fieldParent
136137
}
137138
}
138139

139-
private IEnumerable<string> GetFieldInitializer(ContainedType containedType, string uiElementName, string label, bool newVariable = true)
140+
private string ConstructUiElement(ContainedType containedType, string uiElementName, string label, string nestVar, bool newVariable)
140141
{
141142
var inner = GetUiFieldType(containedType);
142-
143+
var builder = new StringBuilder();
143144
if (newVariable)
144145
{
145-
yield return $"var {uiElementName} = new {inner}(\"{label}\");";
146+
builder.Append($"var {uiElementName} = ");
146147
}
147148
else
148149
{
149-
yield return $"{uiElementName} = new {inner}(\"{label}\");";
150+
builder.Append($"{uiElementName} = ");
151+
}
152+
153+
if (containedType.Category == ValueType.Type)
154+
{
155+
builder.Append($"new {inner}(\"{label}\", {nestVar} + 1);");
150156
}
157+
else
158+
{
159+
builder.Append($"new {inner}(\"{label}\");");
160+
}
161+
162+
return builder.ToString();
163+
}
164+
165+
private IEnumerable<string> GetFieldInitializer(ContainedType containedType, string uiElementName, string label, string nestVar, bool newVariable = true)
166+
{
167+
yield return ConstructUiElement(containedType, uiElementName, label, nestVar, newVariable);
151168

152169
// These lines are part of the func to create an inner list item.
153170
if (containedType.Category != ValueType.Type)
154171
{
172+
yield return $"{uiElementName}.labelElement.ShiftRightMargin({nestVar});";
155173
yield return $"{uiElementName}.SetEnabled(false);";
156174
}
157175

workers/unity/Packages/io.improbable.gdk.debug/.codegen/Source/Generators/DebugExtensions/TypeVisualElementGenerator.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,11 @@ private TypeBlock GenerateType(UnityTypeDetails details)
5050

5151
private void GenerateConstructor(TypeBlock typeBlock, UnityTypeDetails details)
5252
{
53-
typeBlock.Method($"public {details.Name}Renderer(string label) : base(label)", mb =>
53+
typeBlock.Method($"public {details.Name}Renderer(string label, uint nest) : base(label)", mb =>
5454
{
5555
foreach (var field in details.FieldDetails)
5656
{
57-
mb.TextList(fieldTypeHandler.ToFieldInitialisation(field, "Container"));
57+
mb.TextList(fieldTypeHandler.ToFieldInitialisation(field, "Container", "nest"));
5858
}
5959
});
6060
}
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
using System.Runtime.CompilerServices;
22

33
[assembly: InternalsVisibleTo("Improbable.Gdk.Debug.WorkerInspector.Codegen.EditmodeTests")]
4+
[assembly: InternalsVisibleTo("Improbable.Gdk.Generated.Debug")]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
using UnityEngine.UIElements;
2+
3+
namespace Improbable.Gdk.Debug.WorkerInspector.Codegen
4+
{
5+
internal static class VisualElementExtensions
6+
{
7+
public static void ShiftRightMargin(this VisualElement element, uint nest, float offset = -11)
8+
{
9+
var style = element.style;
10+
var val = style.marginRight.value.value;
11+
style.marginRight = new StyleLength(val + offset * nest);
12+
}
13+
}
14+
}

workers/unity/Packages/io.improbable.gdk.debug/WorkerInspector/Codegen/VisualElementExtensions.cs.meta

+3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)