Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
46bb35f
Initial incomplete csharp Default value annotation
rekhoff Sep 5, 2025
9e2a604
Added Dummy Default Values to IncrementalGenerator
rekhoff Sep 8, 2025
fc456ad
Added test data to Generated Default Values output
rekhoff Sep 18, 2025
44fda8d
Added a test table with default values to Codegen.Tests
rekhoff Sep 18, 2025
3891dcd
Re-added Internal Module changes
rekhoff Sep 18, 2025
d27ebe0
Updated generated DefaultValue results closer to intended
rekhoff Sep 18, 2025
98c0fca
Removed unused code
rekhoff Sep 18, 2025
863b80e
Removing unneeded DotSettings.user file
rekhoff Sep 19, 2025
1d24039
Corrected spelling mistake in Codegen.Test
rekhoff Sep 19, 2025
4363956
Updated additional DefaultValue processing and removed debug logging
rekhoff Sep 19, 2025
7385ca7
Added comments to Codegen module and checks to Default Values data
rekhoff Sep 23, 2025
bfd174d
Merge branch 'master' into rekhoff/csharp-default-feild-values
rekhoff Sep 25, 2025
e86fab5
DefaultValues now work with several types
rekhoff Sep 26, 2025
4e53129
Corrected capitalization issue with Boolean default values in C#
rekhoff Sep 26, 2025
f59be70
Removed unnecessary added files.
rekhoff Sep 26, 2025
36723b9
Added support for Enum types
rekhoff Sep 26, 2025
ddbfdf6
Reusing memory stream in codegen and updating Codegen test with
rekhoff Sep 26, 2025
79384a8
Merge branch 'master' into rekhoff/csharp-default-feild-values
rekhoff Sep 26, 2025
615e79b
Updated Linter
rekhoff Sep 26, 2025
db66df0
Merge branch 'rekhoff/csharp-default-feild-values' of https://github.…
rekhoff Sep 26, 2025
28bd7e4
Merge branch 'master' into rekhoff/csharp-default-feild-values
rekhoff Oct 1, 2025
7b7ecf6
Merge branch 'master' into rekhoff/csharp-default-feild-values
rekhoff Oct 1, 2025
ba8e1a2
Merge branch 'master' into rekhoff/csharp-default-feild-values
rekhoff Oct 1, 2025
55ff612
Update Codegen.Tests snapshots
rekhoff Oct 2, 2025
203c56d
Another update to Codegen.Tests a snapshot
rekhoff Oct 2, 2025
d32f7d0
Adding regression test for C# Default Attributes
rekhoff Oct 2, 2025
c4e5e67
Updated CodeGen.Test fixture to match regression test coverage
rekhoff Oct 3, 2025
0685a20
Merge branch 'master' into rekhoff/csharp-default-feild-values
rekhoff Oct 3, 2025
3dd5db1
Merge branch 'master' into rekhoff/csharp-default-feild-values
rekhoff Oct 6, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
75 changes: 75 additions & 0 deletions crates/bindings-csharp/Codegen.Tests/fixtures/diag/Lib.cs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
using System.ComponentModel;
using SpacetimeDB;

public enum LocalEnum { }
Expand Down Expand Up @@ -361,6 +362,80 @@ public static partial class InAnotherNamespace
public partial struct TestDuplicateTableName { }
}

[SpacetimeDB.Table]
public partial struct TestDefaultFieldValues
{
[Unique]
public int? UniqueField;

[Default("A default string set by attribute")]
public string DefaultString = "";

[Default(true)]
public bool DefaultBool = false;

[Default((sbyte)2)]
public sbyte DefaultI8 = 1;

[Default((byte)2)]
public byte DefaultU8 = 1;

[Default((short)2)]
public short DefaultI16 = 1;

[Default((ushort)2)]
public ushort DefaultU16 = 1;

[Default(2)]
public int DefaultI32 = 1;

[Default(2U)]
public uint DefaultU32 = 1U;

[Default(2L)]
public long DefaultI64 = 1L;

[Default(2UL)]
public ulong DefaultU64 = 1UL;

[Default(0x02)]
public int DefaultHex = 1;

[Default(0b00000010)]
public int DefaultBin = 1;

[Default(2.0f)]
public float DefaultF32 = 1.0f;

[Default(2.0)]
public double DefaultF64 = 1.0;

[Default(MyEnum.SetByAttribute)]
public MyEnum DefaultEnum = MyEnum.SetByInitalization;

[Default(null!)]
public MyStruct? DefaultNull = new MyStruct(1);
}

[SpacetimeDB.Type]
public enum MyEnum
{
Default,
SetByInitalization,
SetByAttribute,
}

[SpacetimeDB.Type]
public partial struct MyStruct
{
public int x;

public MyStruct(int x)
{
this.x = x;
}
}

[SpacetimeDB.Table]
[SpacetimeDB.Index.BTree(Name = "TestIndexWithoutColumns")]
[SpacetimeDB.Index.BTree(Name = "TestIndexWithEmptyColumns", Columns = [])]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,10 +92,33 @@ var ___hashUnsupportedEnum = UnsupportedEnum.GetHashCode();
}
},
{/*
[SpacetimeDB.Table]
public partial struct TestDefaultFieldValues
^^^^^^^^^^^^^^^^^^^^^^
{
*/
Message: A 'struct' with field initializers must include an explicitly declared constructor.,
Severity: Error,
Descriptor: {
Id: CS8983,
Title: ,
HelpLink: https://msdn.microsoft.com/query/roslyn.query?appId=roslyn&k=k(CS8983),
MessageFormat: A 'struct' with field initializers must include an explicitly declared constructor.,
Category: Compiler,
DefaultSeverity: Error,
IsEnabledByDefault: true,
CustomTags: [
Compiler,
Telemetry,
NotConfigurable
]
}
},
{/*
SpacetimeDB.Internal.Module.RegisterClientVisibilityFilter(global::Module.MY_SECOND_FILTER);
SpacetimeDB.Internal.Module.RegisterClientVisibilityFilter(global::Module.MY_THIRD_FILTER);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
}
{
*/
Message: Argument 1: cannot convert from 'string' to 'SpacetimeDB.Filter',
Severity: Error,
Expand Down
Loading
Loading