Skip to content

Commit 142e508

Browse files
authored
feat: naming rules (coding standards) (#670)
* add naming rules with examples * execute dotnet-format over testproject * add another template naming example * make RpcQueueContainer private * fix profiler-related namings * disable and comment naming rule violation checks * revert name changes to MLAPIProfilerModule struct fields * minor cleanup
1 parent 350b9a2 commit 142e508

37 files changed

+667
-573
lines changed

.editorconfig

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ indent_style = space
1212
indent_size = 4
1313

1414
# formatting rules
15+
dotnet_diagnostic.IDE0001.severity = error # Simplify name
16+
dotnet_diagnostic.IDE0002.severity = error # Simplify member access
1517
dotnet_style_qualification_for_field = false:error
1618
dotnet_style_qualification_for_property = false:error
1719
dotnet_style_qualification_for_method = false:error
@@ -24,3 +26,79 @@ csharp_prefer_braces = true:error
2426
csharp_using_directive_placement = outside_namespace:error
2527

2628
# naming rules
29+
# namespace MLAPI { ... }
30+
# public class NetworkObject { ... }
31+
# public void Spawn(...) { ... }
32+
dotnet_naming_symbols.usertypes_naming_symbols.applicable_kinds = namespace, class, struct, enum, property, method, field, event, delegate, local_function
33+
dotnet_naming_symbols.usertypes_naming_symbols.applicable_accessibilities = public, internal
34+
dotnet_naming_style.usertypes_naming_style.capitalization = pascal_case
35+
dotnet_naming_rule.usertypes_naming_rule.symbols = usertypes_naming_symbols
36+
dotnet_naming_rule.usertypes_naming_rule.style = usertypes_naming_style
37+
dotnet_naming_rule.usertypes_naming_rule.severity = error
38+
39+
# public void ChangeOwnership(ulong newOwnerClientId) { ... }
40+
# ulong[] targetClientIds = clientRpcParams.Send.TargetClientIds;
41+
dotnet_naming_symbols.paramlocal_naming_symbols.applicable_kinds = parameter, local
42+
dotnet_naming_symbols.paramlocal_naming_symbols.applicable_accessibilities = *
43+
dotnet_naming_style.paramlocal_naming_style.capitalization = camel_case
44+
dotnet_naming_rule.paramlocal_naming_rule.symbols = paramlocal_naming_symbols
45+
dotnet_naming_rule.paramlocal_naming_rule.style = paramlocal_naming_style
46+
dotnet_naming_rule.paramlocal_naming_rule.severity = error
47+
48+
# interface INetworkSerializable
49+
dotnet_naming_symbols.interface_naming_symbols.applicable_kinds = interface
50+
dotnet_naming_symbols.interface_naming_symbols.applicable_accessibilities = public, internal
51+
dotnet_naming_style.interface_naming_style.required_prefix = I
52+
dotnet_naming_style.interface_naming_style.capitalization = pascal_case
53+
dotnet_naming_rule.interface_naming_rule.symbols = interface_naming_symbols
54+
dotnet_naming_rule.interface_naming_rule.style = interface_naming_style
55+
dotnet_naming_rule.interface_naming_rule.severity = error
56+
57+
# class NetworkVariable<T>
58+
# class NetworkDictionary<TKey, TValue>
59+
dotnet_naming_symbols.typeparam_naming_symbols.applicable_kinds = type_parameter
60+
dotnet_naming_symbols.typeparam_naming_symbols.applicable_accessibilities = public, internal
61+
dotnet_naming_style.typeparam_naming_style.required_prefix = T
62+
dotnet_naming_style.typeparam_naming_style.capitalization = pascal_case
63+
dotnet_naming_rule.typeparam_naming_rule.symbols = typeparam_naming_symbols
64+
dotnet_naming_rule.typeparam_naming_rule.style = typeparam_naming_style
65+
dotnet_naming_rule.typeparam_naming_rule.severity = error
66+
67+
# const int k_MaxCount
68+
dotnet_naming_symbols.constant_naming_symbols.applicable_kinds = field
69+
dotnet_naming_symbols.constant_naming_symbols.applicable_accessibilities = private, protected, protected_internal, private_protected
70+
dotnet_naming_symbols.constant_naming_symbols.required_modifiers = const
71+
dotnet_naming_style.constant_naming_style.required_prefix = k_
72+
dotnet_naming_style.constant_naming_style.capitalization = pascal_case
73+
dotnet_naming_rule.constant_naming_rule.symbols = constant_naming_symbols
74+
dotnet_naming_rule.constant_naming_rule.style = constant_naming_style
75+
dotnet_naming_rule.constant_naming_rule.severity = error
76+
77+
# static readonly Vector3 k_DefaultLength
78+
dotnet_naming_symbols.staticreadonly_naming_symbols.applicable_kinds = field
79+
dotnet_naming_symbols.staticreadonly_naming_symbols.applicable_accessibilities = private, protected, protected_internal, private_protected
80+
dotnet_naming_symbols.staticreadonly_naming_symbols.required_modifiers = static, readonly
81+
dotnet_naming_style.staticreadonly_naming_style.required_prefix = k_
82+
dotnet_naming_style.staticreadonly_naming_style.capitalization = pascal_case
83+
dotnet_naming_rule.staticreadonly_naming_rule.symbols = staticreadonly_naming_symbols
84+
dotnet_naming_rule.staticreadonly_naming_rule.style = staticreadonly_naming_style
85+
dotnet_naming_rule.staticreadonly_naming_rule.severity = error
86+
87+
# static int s_SharedCount
88+
dotnet_naming_symbols.staticfield_naming_symbols.applicable_kinds = field
89+
dotnet_naming_symbols.staticfield_naming_symbols.applicable_accessibilities = private, protected, protected_internal, private_protected
90+
dotnet_naming_symbols.staticfield_naming_symbols.required_modifiers = static
91+
dotnet_naming_style.staticfield_naming_style.required_prefix = s_
92+
dotnet_naming_style.staticfield_naming_style.capitalization = pascal_case
93+
dotnet_naming_rule.staticfield_naming_rule.symbols = staticfield_naming_symbols
94+
dotnet_naming_rule.staticfield_naming_rule.style = staticfield_naming_style
95+
dotnet_naming_rule.staticfield_naming_rule.severity = error
96+
97+
# int m_CurrentCount
98+
dotnet_naming_symbols.memberfield_naming_symbols.applicable_kinds = field
99+
dotnet_naming_symbols.memberfield_naming_symbols.applicable_accessibilities = private, protected, protected_internal, private_protected
100+
dotnet_naming_style.memberfield_naming_style.required_prefix = m_
101+
dotnet_naming_style.memberfield_naming_style.capitalization = pascal_case
102+
dotnet_naming_rule.memberfield_naming_rule.symbols = memberfield_naming_symbols
103+
dotnet_naming_rule.memberfield_naming_rule.style = memberfield_naming_style
104+
dotnet_naming_rule.memberfield_naming_rule.severity = error

com.unity.multiplayer.mlapi/Editor/CodeGen/CodeGenHelpers.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public static uint Hash(this MethodDefinition methodDefinition)
5151
}
5252
}
5353

54-
public static bool IsSubclassOf(this TypeDefinition typeDefinition, string ClassTypeFullName)
54+
public static bool IsSubclassOf(this TypeDefinition typeDefinition, string classTypeFullName)
5555
{
5656
if (!typeDefinition.IsClass)
5757
{
@@ -61,7 +61,7 @@ public static bool IsSubclassOf(this TypeDefinition typeDefinition, string Class
6161
var baseTypeRef = typeDefinition.BaseType;
6262
while (baseTypeRef != null)
6363
{
64-
if (baseTypeRef.FullName == ClassTypeFullName)
64+
if (baseTypeRef.FullName == classTypeFullName)
6565
{
6666
return true;
6767
}
@@ -79,7 +79,7 @@ public static bool IsSubclassOf(this TypeDefinition typeDefinition, string Class
7979
return false;
8080
}
8181

82-
public static bool HasInterface(this TypeReference typeReference, string InterfaceTypeFullName)
82+
public static bool HasInterface(this TypeReference typeReference, string interfaceTypeFullName)
8383
{
8484
if (typeReference.IsArray)
8585
{
@@ -90,7 +90,7 @@ public static bool HasInterface(this TypeReference typeReference, string Interfa
9090
{
9191
var typeDef = typeReference.Resolve();
9292
var typeFaces = typeDef.Interfaces;
93-
return typeFaces.Any(iface => iface.InterfaceType.FullName == InterfaceTypeFullName);
93+
return typeFaces.Any(iface => iface.InterfaceType.FullName == interfaceTypeFullName);
9494
}
9595
catch
9696
{

0 commit comments

Comments
 (0)