@alloy-js/csharp 0.23.0-dev.1 → 0.23.0-dev.11
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 +1 -14
- package/dist/dev/scripts/components/library-interface.js +67 -0
- package/dist/dev/scripts/components/library-interface.js.map +1 -0
- package/dist/dev/scripts/components/namespace-directory.js +160 -0
- package/dist/dev/scripts/components/namespace-directory.js.map +1 -0
- package/dist/dev/scripts/generate-builtins.js +45 -0
- package/dist/dev/scripts/generate-builtins.js.map +1 -0
- package/dist/dev/scripts/process-docfx.js +316 -0
- package/dist/dev/scripts/process-docfx.js.map +1 -0
- package/dist/dev/src/access.js +73 -0
- package/dist/dev/src/access.js.map +1 -0
- package/dist/dev/src/access.test.js +43 -0
- package/dist/dev/src/access.test.js.map +1 -0
- package/dist/dev/src/builtins/Microsoft/CSharp/RuntimeBinder/index.js +23 -0
- package/dist/dev/src/builtins/Microsoft/CSharp/RuntimeBinder/index.js.map +1 -0
- package/dist/dev/src/builtins/Microsoft/CSharp/index.js +5 -0
- package/dist/dev/src/builtins/Microsoft/CSharp/index.js.map +1 -0
- package/dist/dev/src/builtins/Microsoft/VisualBasic/FileIO/index.js +473 -0
- package/dist/dev/src/builtins/Microsoft/VisualBasic/FileIO/index.js.map +1 -0
- package/dist/dev/src/builtins/Microsoft/VisualBasic/index.js +2534 -0
- package/dist/dev/src/builtins/Microsoft/VisualBasic/index.js.map +1 -0
- package/dist/dev/src/builtins/Microsoft/Win32/SafeHandles/index.js +320 -0
- package/dist/dev/src/builtins/Microsoft/Win32/SafeHandles/index.js.map +1 -0
- package/dist/dev/src/builtins/Microsoft/Win32/index.js +362 -0
- package/dist/dev/src/builtins/Microsoft/Win32/index.js.map +1 -0
- package/dist/dev/src/builtins/Microsoft/index.js +7 -0
- package/dist/dev/src/builtins/Microsoft/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Buffers/Binary/index.js +536 -0
- package/dist/dev/src/builtins/System/Buffers/Binary/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Buffers/Text/index.js +144 -0
- package/dist/dev/src/builtins/System/Buffers/Text/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Buffers/index.js +605 -0
- package/dist/dev/src/builtins/System/Buffers/index.js.map +1 -0
- package/dist/dev/src/builtins/System/CodeDom/Compiler/index.js +131 -0
- package/dist/dev/src/builtins/System/CodeDom/Compiler/index.js.map +1 -0
- package/dist/dev/src/builtins/System/CodeDom/index.js +5 -0
- package/dist/dev/src/builtins/System/CodeDom/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Collections/Concurrent/index.js +399 -0
- package/dist/dev/src/builtins/System/Collections/Concurrent/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Collections/Frozen/index.js +88 -0
- package/dist/dev/src/builtins/System/Collections/Frozen/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Collections/Generic/index.js +978 -0
- package/dist/dev/src/builtins/System/Collections/Generic/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Collections/Immutable/index.js +1049 -0
- package/dist/dev/src/builtins/System/Collections/Immutable/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Collections/ObjectModel/index.js +394 -0
- package/dist/dev/src/builtins/System/Collections/ObjectModel/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Collections/Specialized/index.js +716 -0
- package/dist/dev/src/builtins/System/Collections/Specialized/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Collections/index.js +1355 -0
- package/dist/dev/src/builtins/System/Collections/index.js.map +1 -0
- package/dist/dev/src/builtins/System/ComponentModel/DataAnnotations/Schema/index.js +143 -0
- package/dist/dev/src/builtins/System/ComponentModel/DataAnnotations/Schema/index.js.map +1 -0
- package/dist/dev/src/builtins/System/ComponentModel/DataAnnotations/index.js +1237 -0
- package/dist/dev/src/builtins/System/ComponentModel/DataAnnotations/index.js.map +1 -0
- package/dist/dev/src/builtins/System/ComponentModel/Design/Serialization/index.js +535 -0
- package/dist/dev/src/builtins/System/ComponentModel/Design/Serialization/index.js.map +1 -0
- package/dist/dev/src/builtins/System/ComponentModel/Design/index.js +2008 -0
- package/dist/dev/src/builtins/System/ComponentModel/Design/index.js.map +1 -0
- package/dist/dev/src/builtins/System/ComponentModel/index.js +6649 -0
- package/dist/dev/src/builtins/System/ComponentModel/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Configuration/Assemblies/index.js +69 -0
- package/dist/dev/src/builtins/System/Configuration/Assemblies/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Configuration/index.js +5 -0
- package/dist/dev/src/builtins/System/Configuration/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Data/Common/index.js +3279 -0
- package/dist/dev/src/builtins/System/Data/Common/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Data/SqlTypes/index.js +2655 -0
- package/dist/dev/src/builtins/System/Data/SqlTypes/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Data/index.js +4504 -0
- package/dist/dev/src/builtins/System/Data/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Diagnostics/CodeAnalysis/index.js +705 -0
- package/dist/dev/src/builtins/System/Diagnostics/CodeAnalysis/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Diagnostics/Contracts/index.js +309 -0
- package/dist/dev/src/builtins/System/Diagnostics/Contracts/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Diagnostics/Metrics/index.js +323 -0
- package/dist/dev/src/builtins/System/Diagnostics/Metrics/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Diagnostics/SymbolStore/index.js +610 -0
- package/dist/dev/src/builtins/System/Diagnostics/SymbolStore/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Diagnostics/Tracing/index.js +954 -0
- package/dist/dev/src/builtins/System/Diagnostics/Tracing/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Diagnostics/index.js +3826 -0
- package/dist/dev/src/builtins/System/Diagnostics/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Drawing/index.js +3305 -0
- package/dist/dev/src/builtins/System/Drawing/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Dynamic/index.js +795 -0
- package/dist/dev/src/builtins/System/Dynamic/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Formats/Asn1/index.js +843 -0
- package/dist/dev/src/builtins/System/Formats/Asn1/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Formats/Tar/index.js +436 -0
- package/dist/dev/src/builtins/System/Formats/Tar/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Formats/index.js +6 -0
- package/dist/dev/src/builtins/System/Formats/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Globalization/index.js +3848 -0
- package/dist/dev/src/builtins/System/Globalization/index.js.map +1 -0
- package/dist/dev/src/builtins/System/IO/Compression/index.js +894 -0
- package/dist/dev/src/builtins/System/IO/Compression/index.js.map +1 -0
- package/dist/dev/src/builtins/System/IO/Enumeration/index.js +218 -0
- package/dist/dev/src/builtins/System/IO/Enumeration/index.js.map +1 -0
- package/dist/dev/src/builtins/System/IO/IsolatedStorage/index.js +495 -0
- package/dist/dev/src/builtins/System/IO/IsolatedStorage/index.js.map +1 -0
- package/dist/dev/src/builtins/System/IO/MemoryMappedFiles/index.js +251 -0
- package/dist/dev/src/builtins/System/IO/MemoryMappedFiles/index.js.map +1 -0
- package/dist/dev/src/builtins/System/IO/Pipelines/index.js +415 -0
- package/dist/dev/src/builtins/System/IO/Pipelines/index.js.map +1 -0
- package/dist/dev/src/builtins/System/IO/Pipes/index.js +723 -0
- package/dist/dev/src/builtins/System/IO/Pipes/index.js.map +1 -0
- package/dist/dev/src/builtins/System/IO/index.js +3713 -0
- package/dist/dev/src/builtins/System/IO/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Linq/Expressions/index.js +2253 -0
- package/dist/dev/src/builtins/System/Linq/Expressions/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Linq/index.js +275 -0
- package/dist/dev/src/builtins/System/Linq/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Net/Cache/index.js +217 -0
- package/dist/dev/src/builtins/System/Net/Cache/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Net/Http/Headers/index.js +1668 -0
- package/dist/dev/src/builtins/System/Net/Http/Headers/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Net/Http/Json/index.js +72 -0
- package/dist/dev/src/builtins/System/Net/Http/Json/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Net/Http/Metrics/index.js +40 -0
- package/dist/dev/src/builtins/System/Net/Http/Metrics/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Net/Http/index.js +1458 -0
- package/dist/dev/src/builtins/System/Net/Http/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Net/Mail/index.js +871 -0
- package/dist/dev/src/builtins/System/Net/Mail/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Net/Mime/index.js +500 -0
- package/dist/dev/src/builtins/System/Net/Mime/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Net/NetworkInformation/index.js +2776 -0
- package/dist/dev/src/builtins/System/Net/NetworkInformation/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Net/Quic/index.js +635 -0
- package/dist/dev/src/builtins/System/Net/Quic/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Net/Security/index.js +1432 -0
- package/dist/dev/src/builtins/System/Net/Security/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Net/Sockets/index.js +3095 -0
- package/dist/dev/src/builtins/System/Net/Sockets/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Net/WebSockets/index.js +876 -0
- package/dist/dev/src/builtins/System/Net/WebSockets/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Net/index.js +5481 -0
- package/dist/dev/src/builtins/System/Net/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Numerics/index.js +3425 -0
- package/dist/dev/src/builtins/System/Numerics/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Reflection/Emit/index.js +4293 -0
- package/dist/dev/src/builtins/System/Reflection/Emit/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Reflection/Metadata/Ecma335/index.js +2218 -0
- package/dist/dev/src/builtins/System/Reflection/Metadata/Ecma335/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Reflection/Metadata/index.js +6045 -0
- package/dist/dev/src/builtins/System/Reflection/Metadata/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Reflection/PortableExecutable/index.js +2020 -0
- package/dist/dev/src/builtins/System/Reflection/PortableExecutable/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Reflection/index.js +5244 -0
- package/dist/dev/src/builtins/System/Reflection/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Resources/index.js +289 -0
- package/dist/dev/src/builtins/System/Resources/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Runtime/CompilerServices/index.js +1896 -0
- package/dist/dev/src/builtins/System/Runtime/CompilerServices/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Runtime/ConstrainedExecution/index.js +103 -0
- package/dist/dev/src/builtins/System/Runtime/ConstrainedExecution/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Runtime/ExceptionServices/index.js +62 -0
- package/dist/dev/src/builtins/System/Runtime/ExceptionServices/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Runtime/InteropServices/ComTypes/index.js +67 -0
- package/dist/dev/src/builtins/System/Runtime/InteropServices/ComTypes/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Runtime/InteropServices/JavaScript/index.js +210 -0
- package/dist/dev/src/builtins/System/Runtime/InteropServices/JavaScript/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Runtime/InteropServices/Marshalling/index.js +1012 -0
- package/dist/dev/src/builtins/System/Runtime/InteropServices/Marshalling/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Runtime/InteropServices/ObjectiveC/index.js +79 -0
- package/dist/dev/src/builtins/System/Runtime/InteropServices/ObjectiveC/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Runtime/InteropServices/Swift/index.js +49 -0
- package/dist/dev/src/builtins/System/Runtime/InteropServices/Swift/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Runtime/InteropServices/index.js +3626 -0
- package/dist/dev/src/builtins/System/Runtime/InteropServices/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Runtime/Intrinsics/Arm/index.js +1297 -0
- package/dist/dev/src/builtins/System/Runtime/Intrinsics/Arm/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Runtime/Intrinsics/Wasm/index.js +338 -0
- package/dist/dev/src/builtins/System/Runtime/Intrinsics/Wasm/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Runtime/Intrinsics/X86/index.js +1372 -0
- package/dist/dev/src/builtins/System/Runtime/Intrinsics/X86/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Runtime/Intrinsics/index.js +273 -0
- package/dist/dev/src/builtins/System/Runtime/Intrinsics/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Runtime/Loader/index.js +140 -0
- package/dist/dev/src/builtins/System/Runtime/Loader/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Runtime/Remoting/index.js +18 -0
- package/dist/dev/src/builtins/System/Runtime/Remoting/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Runtime/Serialization/DataContracts/index.js +265 -0
- package/dist/dev/src/builtins/System/Runtime/Serialization/DataContracts/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Runtime/Serialization/Formatters/Binary/index.js +61 -0
- package/dist/dev/src/builtins/System/Runtime/Serialization/Formatters/Binary/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Runtime/Serialization/Formatters/index.js +83 -0
- package/dist/dev/src/builtins/System/Runtime/Serialization/Formatters/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Runtime/Serialization/Json/index.js +192 -0
- package/dist/dev/src/builtins/System/Runtime/Serialization/Json/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Runtime/Serialization/index.js +1611 -0
- package/dist/dev/src/builtins/System/Runtime/Serialization/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Runtime/Versioning/index.js +336 -0
- package/dist/dev/src/builtins/System/Runtime/Versioning/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Runtime/index.js +245 -0
- package/dist/dev/src/builtins/System/Runtime/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Security/AccessControl/index.js +2343 -0
- package/dist/dev/src/builtins/System/Security/AccessControl/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Security/Authentication/ExtendedProtection/index.js +169 -0
- package/dist/dev/src/builtins/System/Security/Authentication/ExtendedProtection/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Security/Authentication/index.js +212 -0
- package/dist/dev/src/builtins/System/Security/Authentication/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Security/Claims/index.js +844 -0
- package/dist/dev/src/builtins/System/Security/Claims/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Security/Cryptography/X509Certificates/index.js +2633 -0
- package/dist/dev/src/builtins/System/Security/Cryptography/X509Certificates/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Security/Cryptography/index.js +6673 -0
- package/dist/dev/src/builtins/System/Security/Cryptography/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Security/Permissions/index.js +325 -0
- package/dist/dev/src/builtins/System/Security/Permissions/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Security/Policy/index.js +101 -0
- package/dist/dev/src/builtins/System/Security/Policy/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Security/Principal/index.js +1338 -0
- package/dist/dev/src/builtins/System/Security/Principal/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Security/index.js +672 -0
- package/dist/dev/src/builtins/System/Security/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Text/Encodings/Web/index.js +162 -0
- package/dist/dev/src/builtins/System/Text/Encodings/Web/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Text/Encodings/index.js +5 -0
- package/dist/dev/src/builtins/System/Text/Encodings/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Text/Json/Nodes/index.js +250 -0
- package/dist/dev/src/builtins/System/Text/Json/Nodes/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Text/Json/Schema/index.js +78 -0
- package/dist/dev/src/builtins/System/Text/Json/Schema/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Text/Json/Serialization/Metadata/index.js +328 -0
- package/dist/dev/src/builtins/System/Text/Json/Serialization/Metadata/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Text/Json/Serialization/index.js +840 -0
- package/dist/dev/src/builtins/System/Text/Json/Serialization/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Text/Json/index.js +1185 -0
- package/dist/dev/src/builtins/System/Text/Json/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Text/RegularExpressions/index.js +732 -0
- package/dist/dev/src/builtins/System/Text/RegularExpressions/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Text/Unicode/index.js +1199 -0
- package/dist/dev/src/builtins/System/Text/Unicode/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Text/index.js +1748 -0
- package/dist/dev/src/builtins/System/Text/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Threading/Channels/index.js +229 -0
- package/dist/dev/src/builtins/System/Threading/Channels/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Threading/Tasks/Dataflow/index.js +676 -0
- package/dist/dev/src/builtins/System/Threading/Tasks/Dataflow/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Threading/Tasks/Sources/index.js +117 -0
- package/dist/dev/src/builtins/System/Threading/Tasks/Sources/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Threading/Tasks/index.js +721 -0
- package/dist/dev/src/builtins/System/Threading/Tasks/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Threading/index.js +2292 -0
- package/dist/dev/src/builtins/System/Threading/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Timers/index.js +129 -0
- package/dist/dev/src/builtins/System/Timers/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Transactions/index.js +727 -0
- package/dist/dev/src/builtins/System/Transactions/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Web/index.js +84 -0
- package/dist/dev/src/builtins/System/Web/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Windows/Input/index.js +18 -0
- package/dist/dev/src/builtins/System/Windows/Input/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Windows/Markup/index.js +28 -0
- package/dist/dev/src/builtins/System/Windows/Markup/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Windows/index.js +6 -0
- package/dist/dev/src/builtins/System/Windows/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Xml/Linq/index.js +1086 -0
- package/dist/dev/src/builtins/System/Xml/Linq/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Xml/Resolvers/index.js +86 -0
- package/dist/dev/src/builtins/System/Xml/Resolvers/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Xml/Schema/index.js +2993 -0
- package/dist/dev/src/builtins/System/Xml/Schema/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Xml/Serialization/index.js +2356 -0
- package/dist/dev/src/builtins/System/Xml/Serialization/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Xml/XPath/index.js +917 -0
- package/dist/dev/src/builtins/System/Xml/XPath/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Xml/Xsl/index.js +315 -0
- package/dist/dev/src/builtins/System/Xml/Xsl/index.js.map +1 -0
- package/dist/dev/src/builtins/System/Xml/index.js +5736 -0
- package/dist/dev/src/builtins/System/Xml/index.js.map +1 -0
- package/dist/dev/src/builtins/System/index.js +14587 -0
- package/dist/dev/src/builtins/System/index.js.map +1 -0
- package/dist/dev/src/builtins/index.js +3 -0
- package/dist/dev/src/builtins/index.js.map +1 -0
- package/dist/dev/src/components/Declaration.js +9 -0
- package/dist/dev/src/components/Declaration.js.map +1 -0
- package/dist/dev/src/components/Name.js +12 -0
- package/dist/dev/src/components/Name.js.map +1 -0
- package/dist/dev/src/components/Reference.js +13 -0
- package/dist/dev/src/components/Reference.js.map +1 -0
- package/dist/dev/src/components/access-expression/access-expression.js +288 -0
- package/dist/dev/src/components/access-expression/access-expression.js.map +1 -0
- package/dist/dev/src/components/access-expression/access-expression.test.js +608 -0
- package/dist/dev/src/components/access-expression/access-expression.test.js.map +1 -0
- package/dist/dev/src/components/access-expression/part-descriptors.js +14 -0
- package/dist/dev/src/components/access-expression/part-descriptors.js.map +1 -0
- package/dist/dev/src/components/attributes/attributes.js +113 -0
- package/dist/dev/src/components/attributes/attributes.js.map +1 -0
- package/dist/dev/src/components/attributes/attributes.test.js +201 -0
- package/dist/dev/src/components/attributes/attributes.test.js.map +1 -0
- package/dist/dev/src/components/class/declaration.js +123 -0
- package/dist/dev/src/components/class/declaration.js.map +1 -0
- package/dist/dev/src/components/class/declaration.test.js +893 -0
- package/dist/dev/src/components/class/declaration.test.js.map +1 -0
- package/dist/dev/src/components/constructor/constructor.js +129 -0
- package/dist/dev/src/components/constructor/constructor.js.map +1 -0
- package/dist/dev/src/components/constructor/constructor.test.js +228 -0
- package/dist/dev/src/components/constructor/constructor.test.js.map +1 -0
- package/dist/dev/src/components/csproj-file/csproj-file.js +32 -0
- package/dist/dev/src/components/csproj-file/csproj-file.js.map +1 -0
- package/dist/dev/src/components/csproj-file/csproj-file.test.js +70 -0
- package/dist/dev/src/components/csproj-file/csproj-file.test.js.map +1 -0
- package/dist/dev/src/components/doc/comment.js +129 -0
- package/dist/dev/src/components/doc/comment.js.map +1 -0
- package/dist/dev/src/components/doc/comment.test.js +577 -0
- package/dist/dev/src/components/doc/comment.test.js.map +1 -0
- package/dist/dev/src/components/doc/from-markdown.js +83 -0
- package/dist/dev/src/components/doc/from-markdown.js.map +1 -0
- package/dist/dev/src/components/doc/from-markdown.test.js +112 -0
- package/dist/dev/src/components/doc/from-markdown.test.js.map +1 -0
- package/dist/dev/src/components/enum/declaration.js +80 -0
- package/dist/dev/src/components/enum/declaration.js.map +1 -0
- package/dist/dev/src/components/enum/declaration.ref.test.js +221 -0
- package/dist/dev/src/components/enum/declaration.ref.test.js.map +1 -0
- package/dist/dev/src/components/enum/declaration.test.js +122 -0
- package/dist/dev/src/components/enum/declaration.test.js.map +1 -0
- package/dist/dev/src/components/enum/member.js +47 -0
- package/dist/dev/src/components/enum/member.js.map +1 -0
- package/dist/dev/src/components/enum/member.test.js +126 -0
- package/dist/dev/src/components/enum/member.test.js.map +1 -0
- package/dist/dev/src/components/field/field.js +43 -0
- package/dist/dev/src/components/field/field.js.map +1 -0
- package/dist/dev/src/components/field/field.test.js +242 -0
- package/dist/dev/src/components/field/field.test.js.map +1 -0
- package/dist/dev/src/components/if/if-statement.js +56 -0
- package/dist/dev/src/components/if/if-statement.js.map +1 -0
- package/dist/dev/src/components/if/if-statement.test.js +41 -0
- package/dist/dev/src/components/if/if-statement.test.js.map +1 -0
- package/dist/dev/src/components/index.js +31 -0
- package/dist/dev/src/components/index.js.map +1 -0
- package/dist/dev/src/components/interface/declaration.js +114 -0
- package/dist/dev/src/components/interface/declaration.js.map +1 -0
- package/dist/dev/src/components/interface/declaration.test.js +264 -0
- package/dist/dev/src/components/interface/declaration.test.js.map +1 -0
- package/dist/dev/src/components/interface/method.js +100 -0
- package/dist/dev/src/components/interface/method.js.map +1 -0
- package/dist/dev/src/components/interface/method.test.js +432 -0
- package/dist/dev/src/components/interface/method.test.js.map +1 -0
- package/dist/dev/src/components/interface/property.js +80 -0
- package/dist/dev/src/components/interface/property.js.map +1 -0
- package/dist/dev/src/components/interface/property.test.js +305 -0
- package/dist/dev/src/components/interface/property.test.js.map +1 -0
- package/dist/dev/src/components/invocation-expression/invocation-expression.js +94 -0
- package/dist/dev/src/components/invocation-expression/invocation-expression.js.map +1 -0
- package/dist/dev/src/components/invocation-expression/invocation-expression.test.js +153 -0
- package/dist/dev/src/components/invocation-expression/invocation-expression.test.js.map +1 -0
- package/dist/dev/src/components/lexical-scope.js +30 -0
- package/dist/dev/src/components/lexical-scope.js.map +1 -0
- package/dist/dev/src/components/method/method.js +134 -0
- package/dist/dev/src/components/method/method.js.map +1 -0
- package/dist/dev/src/components/method/method.test.js +422 -0
- package/dist/dev/src/components/method/method.test.js.map +1 -0
- package/dist/dev/src/components/method-scope.js +30 -0
- package/dist/dev/src/components/method-scope.js.map +1 -0
- package/dist/dev/src/components/namespace/namespace-name.js +20 -0
- package/dist/dev/src/components/namespace/namespace-name.js.map +1 -0
- package/dist/dev/src/components/namespace/namespace.js +61 -0
- package/dist/dev/src/components/namespace/namespace.js.map +1 -0
- package/dist/dev/src/components/namespace/namespace.test.js +419 -0
- package/dist/dev/src/components/namespace/namespace.test.js.map +1 -0
- package/dist/dev/src/components/namespace-scopes.js +68 -0
- package/dist/dev/src/components/namespace-scopes.js.map +1 -0
- package/dist/dev/src/components/namespace.ref.test.js +431 -0
- package/dist/dev/src/components/namespace.ref.test.js.map +1 -0
- package/dist/dev/src/components/parameters/parameters.js +96 -0
- package/dist/dev/src/components/parameters/parameters.js.map +1 -0
- package/dist/dev/src/components/parameters/parameters.test.js +317 -0
- package/dist/dev/src/components/parameters/parameters.test.js.map +1 -0
- package/dist/dev/src/components/property/property.js +192 -0
- package/dist/dev/src/components/property/property.js.map +1 -0
- package/dist/dev/src/components/property/property.test.js +535 -0
- package/dist/dev/src/components/property/property.test.js.map +1 -0
- package/dist/dev/src/components/record/declaration.js +132 -0
- package/dist/dev/src/components/record/declaration.js.map +1 -0
- package/dist/dev/src/components/record/declaration.test.js +231 -0
- package/dist/dev/src/components/record/declaration.test.js.map +1 -0
- package/dist/dev/src/components/region/region.js +14 -0
- package/dist/dev/src/components/region/region.js.map +1 -0
- package/dist/dev/src/components/region/region.test.js +39 -0
- package/dist/dev/src/components/region/region.test.js.map +1 -0
- package/dist/dev/src/components/source-file/source-file.js +164 -0
- package/dist/dev/src/components/source-file/source-file.js.map +1 -0
- package/dist/dev/src/components/source-file/source-file.test.js +271 -0
- package/dist/dev/src/components/source-file/source-file.test.js.map +1 -0
- package/dist/dev/src/components/source-file/using.test.js +201 -0
- package/dist/dev/src/components/source-file/using.test.js.map +1 -0
- package/dist/dev/src/components/stc/index.js +13 -0
- package/dist/dev/src/components/stc/index.js.map +1 -0
- package/dist/dev/src/components/struct/declaration.js +113 -0
- package/dist/dev/src/components/struct/declaration.js.map +1 -0
- package/dist/dev/src/components/struct/declaration.test.js +400 -0
- package/dist/dev/src/components/struct/declaration.test.js.map +1 -0
- package/dist/dev/src/components/type-parameters/type-parameter-constraints.js +73 -0
- package/dist/dev/src/components/type-parameters/type-parameter-constraints.js.map +1 -0
- package/dist/dev/src/components/type-parameters/type-parameter-constraints.test.js +92 -0
- package/dist/dev/src/components/type-parameters/type-parameter-constraints.test.js.map +1 -0
- package/dist/dev/src/components/type-parameters/type-parameter.js +28 -0
- package/dist/dev/src/components/type-parameters/type-parameter.js.map +1 -0
- package/dist/dev/src/components/type-parameters/type-parameters.js +71 -0
- package/dist/dev/src/components/type-parameters/type-parameters.js.map +1 -0
- package/dist/dev/src/components/type-parameters/type-parameters.test.js +103 -0
- package/dist/dev/src/components/type-parameters/type-parameters.test.js.map +1 -0
- package/dist/dev/src/components/using/using.js +45 -0
- package/dist/dev/src/components/using/using.js.map +1 -0
- package/dist/dev/src/components/using/using.test.js +27 -0
- package/dist/dev/src/components/using/using.test.js.map +1 -0
- package/dist/dev/src/components/var/declaration.js +72 -0
- package/dist/dev/src/components/var/declaration.js.map +1 -0
- package/dist/dev/src/components/var/declaration.test.js +167 -0
- package/dist/dev/src/components/var/declaration.test.js.map +1 -0
- package/dist/dev/src/contexts/format-options.js +9 -0
- package/dist/dev/src/contexts/format-options.js.map +1 -0
- package/dist/dev/src/contexts/global-namespace.js +30 -0
- package/dist/dev/src/contexts/global-namespace.js.map +1 -0
- package/dist/dev/src/contexts/namespace.js +6 -0
- package/dist/dev/src/contexts/namespace.js.map +1 -0
- package/dist/dev/src/contexts/reference-context.js +15 -0
- package/dist/dev/src/contexts/reference-context.js.map +1 -0
- package/dist/dev/src/create-library.js +136 -0
- package/dist/dev/src/create-library.js.map +1 -0
- package/dist/dev/src/create-library.test.js +289 -0
- package/dist/dev/src/create-library.test.js.map +1 -0
- package/dist/dev/src/identifier-utils.js +45 -0
- package/dist/dev/src/identifier-utils.js.map +1 -0
- package/dist/dev/src/index.js +11 -0
- package/dist/dev/src/index.js.map +1 -0
- package/dist/dev/src/keywords.js +39 -0
- package/dist/dev/src/keywords.js.map +1 -0
- package/dist/dev/src/modifiers.js +21 -0
- package/dist/dev/src/modifiers.js.map +1 -0
- package/dist/dev/src/name-policy.js +59 -0
- package/dist/dev/src/name-policy.js.map +1 -0
- package/dist/dev/src/name-policy.test.js +167 -0
- package/dist/dev/src/name-policy.test.js.map +1 -0
- package/dist/dev/src/scopes/class.js +11 -0
- package/dist/dev/src/scopes/class.js.map +1 -0
- package/dist/dev/src/scopes/contexts.js +34 -0
- package/dist/dev/src/scopes/contexts.js.map +1 -0
- package/dist/dev/src/scopes/csharp.js +25 -0
- package/dist/dev/src/scopes/csharp.js.map +1 -0
- package/dist/dev/src/scopes/factories.js +25 -0
- package/dist/dev/src/scopes/factories.js.map +1 -0
- package/dist/dev/src/scopes/index.js +10 -0
- package/dist/dev/src/scopes/index.js.map +1 -0
- package/dist/dev/src/scopes/lexical.js +8 -0
- package/dist/dev/src/scopes/lexical.js.map +1 -0
- package/dist/dev/src/scopes/method.js +14 -0
- package/dist/dev/src/scopes/method.js.map +1 -0
- package/dist/dev/src/scopes/named-type.js +33 -0
- package/dist/dev/src/scopes/named-type.js.map +1 -0
- package/dist/dev/src/scopes/namespace.js +39 -0
- package/dist/dev/src/scopes/namespace.js.map +1 -0
- package/dist/dev/src/scopes/source-file.js +44 -0
- package/dist/dev/src/scopes/source-file.js.map +1 -0
- package/dist/dev/src/symbols/csharp.js +263 -0
- package/dist/dev/src/symbols/csharp.js.map +1 -0
- package/dist/dev/src/symbols/factories.js +145 -0
- package/dist/dev/src/symbols/factories.js.map +1 -0
- package/dist/dev/src/symbols/index.js +7 -0
- package/dist/dev/src/symbols/index.js.map +1 -0
- package/dist/dev/src/symbols/method.js +16 -0
- package/dist/dev/src/symbols/method.js.map +1 -0
- package/dist/dev/src/symbols/named-type.js +42 -0
- package/dist/dev/src/symbols/named-type.js.map +1 -0
- package/dist/dev/src/symbols/namespace.js +55 -0
- package/dist/dev/src/symbols/namespace.js.map +1 -0
- package/dist/dev/src/symbols/reference.js +79 -0
- package/dist/dev/src/symbols/reference.js.map +1 -0
- package/dist/dev/test/utils.js +111 -0
- package/dist/dev/test/utils.js.map +1 -0
- package/dist/dev/test/vitest.setup.js +2 -0
- package/dist/dev/test/vitest.setup.js.map +1 -0
- package/dist/dev/testing/create-wrapper.js +13 -0
- package/dist/dev/testing/create-wrapper.js.map +1 -0
- package/dist/dev/testing/create-wrapper.test.js +300 -0
- package/dist/dev/testing/create-wrapper.test.js.map +1 -0
- package/dist/dev/testing/index.js +2 -0
- package/dist/dev/testing/index.js.map +1 -0
- package/dist/src/components/access-expression/access-expression.d.ts +7 -2
- package/dist/src/components/access-expression/access-expression.d.ts.map +1 -1
- package/dist/src/components/access-expression/access-expression.js +108 -197
- package/dist/src/components/access-expression/access-expression.js.map +1 -1
- package/dist/src/components/access-expression/part-descriptors.d.ts +0 -31
- package/dist/src/components/access-expression/part-descriptors.d.ts.map +1 -1
- package/dist/src/components/access-expression/part-descriptors.js +0 -105
- package/dist/src/components/access-expression/part-descriptors.js.map +1 -1
- package/dist/src/components/constructor/constructor.d.ts +34 -0
- package/dist/src/components/constructor/constructor.d.ts.map +1 -1
- package/dist/src/components/constructor/constructor.js +41 -4
- package/dist/src/components/constructor/constructor.js.map +1 -1
- package/dist/src/components/constructor/constructor.test.js +114 -0
- package/dist/src/components/constructor/constructor.test.js.map +1 -1
- package/dist/src/components/doc/from-markdown.js +1 -1
- package/dist/src/components/doc/from-markdown.js.map +1 -1
- package/dist/src/components/enum/declaration.d.ts +2 -0
- package/dist/src/components/enum/declaration.d.ts.map +1 -1
- package/dist/src/components/enum/declaration.js +6 -1
- package/dist/src/components/enum/declaration.js.map +1 -1
- package/dist/src/components/enum/declaration.test.js +24 -0
- package/dist/src/components/enum/declaration.test.js.map +1 -1
- package/dist/src/components/enum/member.d.ts +4 -2
- package/dist/src/components/enum/member.d.ts.map +1 -1
- package/dist/src/components/enum/member.js +8 -3
- package/dist/src/components/enum/member.js.map +1 -1
- package/dist/src/components/enum/member.test.js +26 -0
- package/dist/src/components/enum/member.test.js.map +1 -1
- package/dist/src/components/lexical-scope.d.ts.map +1 -1
- package/dist/src/components/lexical-scope.js +4 -3
- package/dist/src/components/lexical-scope.js.map +1 -1
- package/dist/src/components/method/method.test.js +48 -0
- package/dist/src/components/method/method.test.js.map +1 -1
- package/dist/src/components/method-scope.d.ts.map +1 -1
- package/dist/src/components/method-scope.js +4 -3
- package/dist/src/components/method-scope.js.map +1 -1
- package/dist/src/components/namespace/namespace.d.ts.map +1 -1
- package/dist/src/components/namespace/namespace.js +13 -14
- package/dist/src/components/namespace/namespace.js.map +1 -1
- package/dist/src/components/namespace/namespace.test.js +66 -4
- package/dist/src/components/namespace/namespace.test.js.map +1 -1
- package/dist/src/components/namespace-scopes.d.ts +16 -0
- package/dist/src/components/namespace-scopes.d.ts.map +1 -1
- package/dist/src/components/namespace-scopes.js +8 -1
- package/dist/src/components/namespace-scopes.js.map +1 -1
- package/dist/src/components/namespace.ref.test.js +62 -9
- package/dist/src/components/namespace.ref.test.js.map +1 -1
- package/dist/src/components/property/property.d.ts +42 -4
- package/dist/src/components/property/property.d.ts.map +1 -1
- package/dist/src/components/property/property.js +64 -11
- package/dist/src/components/property/property.js.map +1 -1
- package/dist/src/components/property/property.test.js +104 -0
- package/dist/src/components/property/property.test.js.map +1 -1
- package/dist/src/components/source-file/source-file.d.ts.map +1 -1
- package/dist/src/components/source-file/source-file.js +9 -5
- package/dist/src/components/source-file/source-file.js.map +1 -1
- package/dist/src/contexts/global-namespace.d.ts.map +1 -1
- package/dist/src/contexts/global-namespace.js +4 -4
- package/dist/src/contexts/global-namespace.js.map +1 -1
- package/dist/src/create-library.d.ts.map +1 -1
- package/dist/src/create-library.js +7 -7
- package/dist/src/create-library.js.map +1 -1
- package/dist/src/identifier-utils.d.ts +22 -0
- package/dist/src/identifier-utils.d.ts.map +1 -0
- package/dist/src/identifier-utils.js +45 -0
- package/dist/src/identifier-utils.js.map +1 -0
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/keywords.d.ts +32 -0
- package/dist/src/keywords.d.ts.map +1 -0
- package/dist/src/keywords.js +39 -0
- package/dist/src/keywords.js.map +1 -0
- package/dist/src/name-policy.d.ts +7 -0
- package/dist/src/name-policy.d.ts.map +1 -1
- package/dist/src/name-policy.js +29 -6
- package/dist/src/name-policy.js.map +1 -1
- package/dist/src/name-policy.test.d.ts +2 -0
- package/dist/src/name-policy.test.d.ts.map +1 -0
- package/dist/src/name-policy.test.js +167 -0
- package/dist/src/name-policy.test.js.map +1 -0
- package/dist/src/scopes/csharp.d.ts +1 -0
- package/dist/src/scopes/csharp.d.ts.map +1 -1
- package/dist/src/scopes/csharp.js +10 -0
- package/dist/src/scopes/csharp.js.map +1 -1
- package/dist/src/scopes/factories.d.ts.map +1 -1
- package/dist/src/scopes/factories.js +4 -3
- package/dist/src/scopes/factories.js.map +1 -1
- package/dist/src/scopes/namespace.js +2 -2
- package/dist/src/scopes/namespace.js.map +1 -1
- package/dist/src/symbols/csharp.d.ts +1 -0
- package/dist/src/symbols/csharp.d.ts.map +1 -1
- package/dist/src/symbols/csharp.js +19 -2
- package/dist/src/symbols/csharp.js.map +1 -1
- package/dist/src/symbols/factories.d.ts.map +1 -1
- package/dist/src/symbols/factories.js +42 -10
- package/dist/src/symbols/factories.js.map +1 -1
- package/dist/src/symbols/named-type.d.ts +1 -0
- package/dist/src/symbols/named-type.d.ts.map +1 -1
- package/dist/src/symbols/named-type.js +12 -1
- package/dist/src/symbols/named-type.js.map +1 -1
- package/dist/src/symbols/namespace.d.ts +1 -0
- package/dist/src/symbols/namespace.d.ts.map +1 -1
- package/dist/src/symbols/namespace.js +11 -1
- package/dist/src/symbols/namespace.js.map +1 -1
- package/dist/testing/create-wrapper.d.ts.map +1 -1
- package/dist/testing/create-wrapper.js +2 -1
- package/dist/testing/create-wrapper.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/docs/api/components/AttributeList.md +34 -0
- package/docs/api/components/ClassDeclaration.md +104 -0
- package/docs/api/components/Constructor.md +61 -0
- package/docs/api/components/CsprojFile.md +34 -0
- package/docs/api/components/Declaration.md +32 -0
- package/docs/api/components/DocC.md +27 -0
- package/docs/api/components/DocCode.md +27 -0
- package/docs/api/components/DocComment.md +27 -0
- package/docs/api/components/DocDescription.md +27 -0
- package/docs/api/components/DocExample.md +27 -0
- package/docs/api/components/DocException.md +27 -0
- package/docs/api/components/DocFromMarkdown.md +27 -0
- package/docs/api/components/DocInclude.md +26 -0
- package/docs/api/components/DocList.md +26 -0
- package/docs/api/components/DocPara.md +27 -0
- package/docs/api/components/DocParam.md +28 -0
- package/docs/api/components/DocParamRef.md +25 -0
- package/docs/api/components/DocPermission.md +27 -0
- package/docs/api/components/DocRemarks.md +27 -0
- package/docs/api/components/DocReturns.md +27 -0
- package/docs/api/components/DocSee.md +30 -0
- package/docs/api/components/DocSeeAlso.md +29 -0
- package/docs/api/components/DocSummary.md +27 -0
- package/docs/api/components/DocTypeParam.md +28 -0
- package/docs/api/components/DocTypeParamRef.md +25 -0
- package/docs/api/components/DocValue.md +27 -0
- package/docs/api/components/DocWhen.md +27 -0
- package/docs/api/components/ElseClause.md +29 -0
- package/docs/api/components/ElseIfClause.md +30 -0
- package/docs/api/components/EnumDeclaration.md +76 -0
- package/docs/api/components/EnumMember.md +31 -0
- package/docs/api/components/Field.md +67 -0
- package/docs/api/components/IfStatement.md +30 -0
- package/docs/api/components/InterfaceDeclaration.md +82 -0
- package/docs/api/components/InterfaceMethod.md +68 -0
- package/docs/api/components/InterfaceProperty.md +78 -0
- package/docs/api/components/InvocationExpression.md +49 -0
- package/docs/api/components/LexicalScope.md +65 -0
- package/docs/api/components/Method.md +92 -0
- package/docs/api/components/MethodScope.md +65 -0
- package/docs/api/components/Name.md +19 -0
- package/docs/api/components/Namespace.md +35 -0
- package/docs/api/components/Parameter.md +58 -0
- package/docs/api/components/Parameters_2.md +27 -0
- package/docs/api/components/Property.md +110 -0
- package/docs/api/components/RecordDeclaration.md +84 -0
- package/docs/api/components/Reference.md +25 -0
- package/docs/api/components/Region.md +28 -0
- package/docs/api/components/SourceFile.md +45 -0
- package/docs/api/components/StructDeclaration.md +94 -0
- package/docs/api/components/UsingNamespaceDirective.md +25 -0
- package/docs/api/components/Usings.md +40 -0
- package/docs/api/components/VarDeclaration.md +74 -0
- package/docs/api/components/index.md +55 -0
- package/docs/api/contexts/csharp-context.md +21 -0
- package/docs/api/contexts/index.md +3 -0
- package/docs/api/functions/access.md +35 -0
- package/docs/api/functions/accessibilityFromProps.md +18 -0
- package/docs/api/functions/computeModifiersPrefix.md +20 -0
- package/docs/api/functions/createCSharpNamePolicy.md +21 -0
- package/docs/api/functions/createCSharpNamespaceScope.md +18 -0
- package/docs/api/functions/createClassScope.md +27 -0
- package/docs/api/functions/createFieldSymbol.md +43 -0
- package/docs/api/functions/createLibrary.md +19 -0
- package/docs/api/functions/createMethodScope.md +26 -0
- package/docs/api/functions/createMethodSymbol.md +34 -0
- package/docs/api/functions/createNamedTypeScope.md +27 -0
- package/docs/api/functions/createNamedTypeSymbol.md +35 -0
- package/docs/api/functions/createNamespaceSymbol.md +43 -0
- package/docs/api/functions/createParameterSymbol.md +45 -0
- package/docs/api/functions/createPropertySymbol.md +43 -0
- package/docs/api/functions/createTypeParameterSymbol.md +34 -0
- package/docs/api/functions/createVariableSymbol.md +43 -0
- package/docs/api/functions/getAccessModifier.md +18 -0
- package/docs/api/functions/getAsyncModifier.md +18 -0
- package/docs/api/functions/index.md +37 -0
- package/docs/api/functions/isCSharpContextualKeyword.md +20 -0
- package/docs/api/functions/isCSharpKeyword.md +22 -0
- package/docs/api/functions/isValidCSharpIdentifier.md +20 -0
- package/docs/api/functions/makeModifiers.md +18 -0
- package/docs/api/functions/nonAccessibilityFromProps.md +18 -0
- package/docs/api/functions/ref.md +18 -0
- package/docs/api/functions/sanitizeCSharpIdentifier.md +24 -0
- package/docs/api/functions/useCSharpNamePolicy.md +17 -0
- package/docs/api/functions/useCSharpScope.md +17 -0
- package/docs/api/functions/useCsharpFormatOptions.md +18 -0
- package/docs/api/functions/useEnclosingNamespaceScope.md +17 -0
- package/docs/api/functions/useLexicalScope.md +17 -0
- package/docs/api/functions/useMethodScope.md +17 -0
- package/docs/api/functions/useNamedTypeScope.md +17 -0
- package/docs/api/functions/useNamespace.md +17 -0
- package/docs/api/functions/useSourceFileScope.md +17 -0
- package/docs/api/index.md +7 -0
- package/docs/api/types/AccessExpressionBuilder.md +11 -0
- package/docs/api/types/AccessExpressionPartProps.md +17 -0
- package/docs/api/types/AccessModifiers.md +13 -0
- package/docs/api/types/AttributeProps.md +8 -0
- package/docs/api/types/AttributesProp.md +5 -0
- package/docs/api/types/CSharpClassScope.md +9 -0
- package/docs/api/types/CSharpElements.md +5 -0
- package/docs/api/types/CSharpFormatOptions.md +5 -0
- package/docs/api/types/CSharpLexicalScope.md +10 -0
- package/docs/api/types/CSharpMethodScope.md +12 -0
- package/docs/api/types/CSharpNamedTypeScope.md +16 -0
- package/docs/api/types/CSharpNamespaceScope.md +10 -0
- package/docs/api/types/CSharpProjectSdk.md +5 -0
- package/docs/api/types/CSharpScope.md +12 -0
- package/docs/api/types/CSharpSourceFileScope.md +13 -0
- package/docs/api/types/CSharpSymbol.md +30 -0
- package/docs/api/types/CSharpSymbolKinds.md +5 -0
- package/docs/api/types/CSharpSymbolOptions.md +17 -0
- package/docs/api/types/ClassDescriptor.md +9 -0
- package/docs/api/types/ClassModifiers.md +10 -0
- package/docs/api/types/CreateMethodSymbolOptions.md +9 -0
- package/docs/api/types/CreateTypeParameterSymbolOptions.md +9 -0
- package/docs/api/types/DeclarationModifiers.md +8 -0
- package/docs/api/types/DeclaredAccessibility.md +5 -0
- package/docs/api/types/Descriptor.md +5 -0
- package/docs/api/types/DocCommentTagProps.md +7 -0
- package/docs/api/types/EnumDescriptor.md +9 -0
- package/docs/api/types/FieldDescriptor.md +9 -0
- package/docs/api/types/FieldModifiers.md +12 -0
- package/docs/api/types/GenericDescriptor.md +7 -0
- package/docs/api/types/InterfaceDescriptor.md +9 -0
- package/docs/api/types/InterfaceMethodModifiers.md +9 -0
- package/docs/api/types/InterfaceModifiers.md +7 -0
- package/docs/api/types/InterfacePropertyModifiers.md +9 -0
- package/docs/api/types/LexicalScopeProps.md +5 -0
- package/docs/api/types/LibraryFrom.md +7 -0
- package/docs/api/types/MemberDescriptor.md +16 -0
- package/docs/api/types/MethodDescriptor.md +10 -0
- package/docs/api/types/MethodKinds.md +5 -0
- package/docs/api/types/MethodModifiers.md +15 -0
- package/docs/api/types/MethodScopeProps.md +5 -0
- package/docs/api/types/MethodSymbol.md +13 -0
- package/docs/api/types/NamedTypeDescriptor.md +11 -0
- package/docs/api/types/NamedTypeSymbol.md +17 -0
- package/docs/api/types/NamedTypeSymbolKind.md +5 -0
- package/docs/api/types/NamedTypeTypeKind.md +5 -0
- package/docs/api/types/NamespaceDescriptor.md +8 -0
- package/docs/api/types/NamespaceSymbol.md +16 -0
- package/docs/api/types/NamespaceSymbolOptions.md +9 -0
- package/docs/api/types/NonAccessModifiers.md +13 -0
- package/docs/api/types/PropertyDescriptor_2.md +9 -0
- package/docs/api/types/PropertyModifiers.md +17 -0
- package/docs/api/types/RecordDescriptor.md +9 -0
- package/docs/api/types/RecordModifiers.md +7 -0
- package/docs/api/types/ResolveDescriptor.md +7 -0
- package/docs/api/types/StructDescriptor.md +9 -0
- package/docs/api/types/StructModifiers.md +10 -0
- package/docs/api/types/TypeParameterProps.md +11 -0
- package/docs/api/types/VarModifiers.md +8 -0
- package/docs/api/types/index.md +62 -0
- package/docs/api/variables/Attribute.md +21 -0
- package/docs/api/variables/csharpKeywords.md +11 -0
- package/docs/api/variables/index.md +4 -0
- package/package.json +19 -8
- package/src/components/access-expression/access-expression.tsx +146 -243
- package/src/components/access-expression/part-descriptors.ts +0 -186
- package/src/components/constructor/constructor.test.tsx +91 -0
- package/src/components/constructor/constructor.tsx +86 -1
- package/src/components/doc/from-markdown.tsx +4 -1
- package/src/components/enum/declaration.test.tsx +20 -0
- package/src/components/enum/declaration.tsx +4 -0
- package/src/components/enum/member.test.tsx +21 -0
- package/src/components/enum/member.tsx +21 -5
- package/src/components/lexical-scope.tsx +15 -4
- package/src/components/method/method.test.tsx +36 -0
- package/src/components/method-scope.tsx +15 -4
- package/src/components/namespace/namespace.test.tsx +47 -3
- package/src/components/namespace/namespace.tsx +17 -9
- package/src/components/namespace-scopes.tsx +25 -1
- package/src/components/namespace.ref.test.tsx +50 -9
- package/src/components/property/property.test.tsx +89 -0
- package/src/components/property/property.tsx +111 -16
- package/src/components/source-file/source-file.tsx +12 -6
- package/src/contexts/global-namespace.ts +11 -6
- package/src/create-library.ts +18 -9
- package/src/identifier-utils.ts +45 -0
- package/src/index.ts +2 -0
- package/src/keywords.ts +162 -0
- package/src/name-policy.test.ts +210 -0
- package/src/name-policy.ts +30 -6
- package/src/scopes/csharp.ts +11 -0
- package/src/scopes/factories.ts +4 -4
- package/src/scopes/namespace.ts +2 -2
- package/src/symbols/csharp.ts +20 -1
- package/src/symbols/factories.ts +46 -34
- package/src/symbols/named-type.ts +15 -3
- package/src/symbols/namespace.ts +12 -2
- package/temp/api.json +546 -249
- package/testing/create-wrapper.tsx +2 -1
- package/vitest.config.ts +8 -0
package/src/keywords.ts
ADDED
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* C# reserved keywords that cannot be used as identifiers without `@` prefix.
|
|
3
|
+
* These are case-sensitive in C#.
|
|
4
|
+
*
|
|
5
|
+
* @see https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/
|
|
6
|
+
*/
|
|
7
|
+
export const csharpKeywords: ReadonlySet<string> = new Set([
|
|
8
|
+
"abstract",
|
|
9
|
+
"as",
|
|
10
|
+
"base",
|
|
11
|
+
"bool",
|
|
12
|
+
"break",
|
|
13
|
+
"byte",
|
|
14
|
+
"case",
|
|
15
|
+
"catch",
|
|
16
|
+
"char",
|
|
17
|
+
"checked",
|
|
18
|
+
"class",
|
|
19
|
+
"const",
|
|
20
|
+
"continue",
|
|
21
|
+
"decimal",
|
|
22
|
+
"default",
|
|
23
|
+
"delegate",
|
|
24
|
+
"do",
|
|
25
|
+
"double",
|
|
26
|
+
"else",
|
|
27
|
+
"enum",
|
|
28
|
+
"event",
|
|
29
|
+
"explicit",
|
|
30
|
+
"extern",
|
|
31
|
+
"false",
|
|
32
|
+
"finally",
|
|
33
|
+
"fixed",
|
|
34
|
+
"float",
|
|
35
|
+
"for",
|
|
36
|
+
"foreach",
|
|
37
|
+
"goto",
|
|
38
|
+
"if",
|
|
39
|
+
"implicit",
|
|
40
|
+
"in",
|
|
41
|
+
"int",
|
|
42
|
+
"interface",
|
|
43
|
+
"internal",
|
|
44
|
+
"is",
|
|
45
|
+
"lock",
|
|
46
|
+
"long",
|
|
47
|
+
"namespace",
|
|
48
|
+
"new",
|
|
49
|
+
"null",
|
|
50
|
+
"object",
|
|
51
|
+
"operator",
|
|
52
|
+
"out",
|
|
53
|
+
"override",
|
|
54
|
+
"params",
|
|
55
|
+
"private",
|
|
56
|
+
"protected",
|
|
57
|
+
"public",
|
|
58
|
+
"readonly",
|
|
59
|
+
"ref",
|
|
60
|
+
"return",
|
|
61
|
+
"sbyte",
|
|
62
|
+
"sealed",
|
|
63
|
+
"short",
|
|
64
|
+
"sizeof",
|
|
65
|
+
"stackalloc",
|
|
66
|
+
"static",
|
|
67
|
+
"string",
|
|
68
|
+
"struct",
|
|
69
|
+
"switch",
|
|
70
|
+
"this",
|
|
71
|
+
"throw",
|
|
72
|
+
"true",
|
|
73
|
+
"try",
|
|
74
|
+
"typeof",
|
|
75
|
+
"uint",
|
|
76
|
+
"ulong",
|
|
77
|
+
"unchecked",
|
|
78
|
+
"unsafe",
|
|
79
|
+
"ushort",
|
|
80
|
+
"using",
|
|
81
|
+
"virtual",
|
|
82
|
+
"void",
|
|
83
|
+
"volatile",
|
|
84
|
+
"while",
|
|
85
|
+
]);
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* C# contextual keywords that are reserved in certain contexts.
|
|
89
|
+
* While not always reserved, treating them as keywords in generated code
|
|
90
|
+
* avoids subtle context-dependent issues.
|
|
91
|
+
*
|
|
92
|
+
* @see https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/#contextual-keywords
|
|
93
|
+
*/
|
|
94
|
+
export const csharpContextualKeywords: ReadonlySet<string> = new Set([
|
|
95
|
+
"add",
|
|
96
|
+
"allows",
|
|
97
|
+
"alias",
|
|
98
|
+
"and",
|
|
99
|
+
"ascending",
|
|
100
|
+
"args",
|
|
101
|
+
"async",
|
|
102
|
+
"await",
|
|
103
|
+
"by",
|
|
104
|
+
"descending",
|
|
105
|
+
"dynamic",
|
|
106
|
+
"equals",
|
|
107
|
+
"field",
|
|
108
|
+
"file",
|
|
109
|
+
"from",
|
|
110
|
+
"get",
|
|
111
|
+
"global",
|
|
112
|
+
"group",
|
|
113
|
+
"init",
|
|
114
|
+
"into",
|
|
115
|
+
"join",
|
|
116
|
+
"let",
|
|
117
|
+
"managed",
|
|
118
|
+
"nameof",
|
|
119
|
+
"nint",
|
|
120
|
+
"not",
|
|
121
|
+
"notnull",
|
|
122
|
+
"nuint",
|
|
123
|
+
"on",
|
|
124
|
+
"or",
|
|
125
|
+
"orderby",
|
|
126
|
+
"partial",
|
|
127
|
+
"record",
|
|
128
|
+
"remove",
|
|
129
|
+
"required",
|
|
130
|
+
"scoped",
|
|
131
|
+
"select",
|
|
132
|
+
"set",
|
|
133
|
+
"unmanaged",
|
|
134
|
+
"value",
|
|
135
|
+
"var",
|
|
136
|
+
"when",
|
|
137
|
+
"where",
|
|
138
|
+
"with",
|
|
139
|
+
"yield",
|
|
140
|
+
]);
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Returns true if the given name is a C# reserved keyword.
|
|
144
|
+
* The check is case-sensitive, matching C# language semantics.
|
|
145
|
+
*
|
|
146
|
+
* Note: this only checks reserved keywords, not contextual keywords.
|
|
147
|
+
* Contextual keywords are only reserved in specific language contexts
|
|
148
|
+
* and are valid identifiers elsewhere (e.g., `value` is valid as a parameter name).
|
|
149
|
+
* Use {@link isCSharpContextualKeyword} to check contextual keywords separately.
|
|
150
|
+
*/
|
|
151
|
+
export function isCSharpKeyword(name: string): boolean {
|
|
152
|
+
return csharpKeywords.has(name);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* Returns true if the given name is a C# contextual keyword.
|
|
157
|
+
* Contextual keywords are only reserved in specific language contexts
|
|
158
|
+
* and are generally valid as identifiers.
|
|
159
|
+
*/
|
|
160
|
+
export function isCSharpContextualKeyword(name: string): boolean {
|
|
161
|
+
return csharpContextualKeywords.has(name);
|
|
162
|
+
}
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import {
|
|
3
|
+
isValidCSharpIdentifier,
|
|
4
|
+
sanitizeCSharpIdentifier,
|
|
5
|
+
} from "./identifier-utils.js";
|
|
6
|
+
import {
|
|
7
|
+
csharpContextualKeywords,
|
|
8
|
+
csharpKeywords,
|
|
9
|
+
isCSharpContextualKeyword,
|
|
10
|
+
isCSharpKeyword,
|
|
11
|
+
} from "./keywords.js";
|
|
12
|
+
import { createCSharpNamePolicy } from "./name-policy.js";
|
|
13
|
+
|
|
14
|
+
describe("isCSharpKeyword", () => {
|
|
15
|
+
it("recognizes reserved keywords", () => {
|
|
16
|
+
expect(isCSharpKeyword("class")).toBe(true);
|
|
17
|
+
expect(isCSharpKeyword("interface")).toBe(true);
|
|
18
|
+
expect(isCSharpKeyword("string")).toBe(true);
|
|
19
|
+
expect(isCSharpKeyword("int")).toBe(true);
|
|
20
|
+
expect(isCSharpKeyword("void")).toBe(true);
|
|
21
|
+
expect(isCSharpKeyword("return")).toBe(true);
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
it("does not match contextual keywords", () => {
|
|
25
|
+
expect(isCSharpKeyword("async")).toBe(false);
|
|
26
|
+
expect(isCSharpKeyword("value")).toBe(false);
|
|
27
|
+
expect(isCSharpKeyword("var")).toBe(false);
|
|
28
|
+
expect(isCSharpKeyword("record")).toBe(false);
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
it("is case-sensitive — PascalCase versions are not keywords", () => {
|
|
32
|
+
expect(isCSharpKeyword("Class")).toBe(false);
|
|
33
|
+
expect(isCSharpKeyword("String")).toBe(false);
|
|
34
|
+
expect(isCSharpKeyword("Int")).toBe(false);
|
|
35
|
+
expect(isCSharpKeyword("Void")).toBe(false);
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
it("rejects non-keywords", () => {
|
|
39
|
+
expect(isCSharpKeyword("MyClass")).toBe(false);
|
|
40
|
+
expect(isCSharpKeyword("foo")).toBe(false);
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
it("keyword sets are non-empty", () => {
|
|
44
|
+
expect(csharpKeywords.size).toBeGreaterThan(70);
|
|
45
|
+
expect(csharpContextualKeywords.size).toBeGreaterThan(30);
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
describe("isCSharpContextualKeyword", () => {
|
|
50
|
+
it("recognizes contextual keywords", () => {
|
|
51
|
+
expect(isCSharpContextualKeyword("async")).toBe(true);
|
|
52
|
+
expect(isCSharpContextualKeyword("await")).toBe(true);
|
|
53
|
+
expect(isCSharpContextualKeyword("value")).toBe(true);
|
|
54
|
+
expect(isCSharpContextualKeyword("var")).toBe(true);
|
|
55
|
+
expect(isCSharpContextualKeyword("record")).toBe(true);
|
|
56
|
+
expect(isCSharpContextualKeyword("required")).toBe(true);
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
it("does not match reserved keywords", () => {
|
|
60
|
+
expect(isCSharpContextualKeyword("class")).toBe(false);
|
|
61
|
+
expect(isCSharpContextualKeyword("int")).toBe(false);
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
describe("isValidCSharpIdentifier", () => {
|
|
66
|
+
it("accepts valid identifiers", () => {
|
|
67
|
+
expect(isValidCSharpIdentifier("MyClass")).toBe(true);
|
|
68
|
+
expect(isValidCSharpIdentifier("_private")).toBe(true);
|
|
69
|
+
expect(isValidCSharpIdentifier("name123")).toBe(true);
|
|
70
|
+
expect(isValidCSharpIdentifier("a")).toBe(true);
|
|
71
|
+
expect(isValidCSharpIdentifier("_")).toBe(true);
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
it("rejects invalid identifiers", () => {
|
|
75
|
+
expect(isValidCSharpIdentifier("123start")).toBe(false);
|
|
76
|
+
expect(isValidCSharpIdentifier("has-dash")).toBe(false);
|
|
77
|
+
expect(isValidCSharpIdentifier("has space")).toBe(false);
|
|
78
|
+
expect(isValidCSharpIdentifier("")).toBe(false);
|
|
79
|
+
expect(isValidCSharpIdentifier("foo.bar")).toBe(false);
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
it("does not check for keywords (only character rules)", () => {
|
|
83
|
+
// "class" has valid characters, even though it's a keyword
|
|
84
|
+
expect(isValidCSharpIdentifier("class")).toBe(true);
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
describe("sanitizeCSharpIdentifier", () => {
|
|
89
|
+
it("passes through valid identifiers unchanged", () => {
|
|
90
|
+
expect(sanitizeCSharpIdentifier("ValidName")).toBe("ValidName");
|
|
91
|
+
expect(sanitizeCSharpIdentifier("_private")).toBe("_private");
|
|
92
|
+
expect(sanitizeCSharpIdentifier("name123")).toBe("name123");
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
it("prefixes underscore when first char is a digit", () => {
|
|
96
|
+
expect(sanitizeCSharpIdentifier("1foo")).toBe("_1foo");
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
it("replaces non-word characters with underscore", () => {
|
|
100
|
+
expect(sanitizeCSharpIdentifier("foo-bar")).toBe("foo_bar");
|
|
101
|
+
expect(sanitizeCSharpIdentifier("has space")).toBe("has_space");
|
|
102
|
+
expect(sanitizeCSharpIdentifier("a.b.c")).toBe("a_b_c");
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
it("handles leading special characters", () => {
|
|
106
|
+
expect(sanitizeCSharpIdentifier("$foo")).toBe("_foo");
|
|
107
|
+
expect(sanitizeCSharpIdentifier("-bar")).toBe("_bar");
|
|
108
|
+
});
|
|
109
|
+
|
|
110
|
+
it("handles empty string", () => {
|
|
111
|
+
expect(sanitizeCSharpIdentifier("")).toBe("_");
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
describe("createCSharpNamePolicy keyword escaping", () => {
|
|
116
|
+
const policy = createCSharpNamePolicy();
|
|
117
|
+
|
|
118
|
+
describe("PascalCase elements avoid most keyword conflicts naturally", () => {
|
|
119
|
+
it("class element: 'string' becomes 'String' (not a keyword, no escape)", () => {
|
|
120
|
+
expect(policy.getName("string", "class")).toBe("String");
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
it("class element: 'class' becomes 'Class' (not a keyword, no escape)", () => {
|
|
124
|
+
expect(policy.getName("class", "class")).toBe("Class");
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
it("class-property element: 'value' becomes 'Value' (not a keyword, no escape)", () => {
|
|
128
|
+
expect(policy.getName("value", "class-property")).toBe("Value");
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
|
|
132
|
+
describe("camelCase elements may hit keywords and get @-escaped", () => {
|
|
133
|
+
it("parameter: 'string' stays 'string' → gets @-escaped", () => {
|
|
134
|
+
expect(policy.getName("string", "parameter")).toBe("@string");
|
|
135
|
+
});
|
|
136
|
+
|
|
137
|
+
it("variable: 'int' stays 'int' → gets @-escaped", () => {
|
|
138
|
+
expect(policy.getName("int", "variable")).toBe("@int");
|
|
139
|
+
});
|
|
140
|
+
|
|
141
|
+
it("parameter: 'return' stays 'return' → gets @-escaped", () => {
|
|
142
|
+
expect(policy.getName("return", "parameter")).toBe("@return");
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
it("variable: 'value' stays 'value' — contextual keyword, not escaped", () => {
|
|
146
|
+
expect(policy.getName("value", "variable")).toBe("value");
|
|
147
|
+
});
|
|
148
|
+
|
|
149
|
+
it("parameter: 'async' stays 'async' — contextual keyword, not escaped", () => {
|
|
150
|
+
expect(policy.getName("async", "parameter")).toBe("async");
|
|
151
|
+
});
|
|
152
|
+
});
|
|
153
|
+
|
|
154
|
+
describe("non-keyword names pass through normally", () => {
|
|
155
|
+
it("parameter: 'myParam' stays 'myParam'", () => {
|
|
156
|
+
expect(policy.getName("myParam", "parameter")).toBe("myParam");
|
|
157
|
+
});
|
|
158
|
+
|
|
159
|
+
it("class: 'my-model' becomes 'MyModel'", () => {
|
|
160
|
+
expect(policy.getName("my-model", "class")).toBe("MyModel");
|
|
161
|
+
});
|
|
162
|
+
|
|
163
|
+
it("parameter: 'some-param' becomes 'someParam'", () => {
|
|
164
|
+
expect(policy.getName("some-param", "parameter")).toBe("someParam");
|
|
165
|
+
});
|
|
166
|
+
});
|
|
167
|
+
|
|
168
|
+
describe("namespace handling", () => {
|
|
169
|
+
it("applies PascalCase", () => {
|
|
170
|
+
expect(policy.getName("my-service", "namespace")).toBe("MyService");
|
|
171
|
+
});
|
|
172
|
+
|
|
173
|
+
it("single segment works", () => {
|
|
174
|
+
expect(policy.getName("system", "namespace")).toBe("System");
|
|
175
|
+
});
|
|
176
|
+
|
|
177
|
+
it("escapes keyword segments", () => {
|
|
178
|
+
// "namespace" as a namespace segment → PascalCase → "Namespace" → not a keyword
|
|
179
|
+
expect(policy.getName("namespace", "namespace")).toBe("Namespace");
|
|
180
|
+
});
|
|
181
|
+
});
|
|
182
|
+
|
|
183
|
+
describe("constant and private member escaping", () => {
|
|
184
|
+
it("constant: 'class' becomes 'CLASS' (not a keyword)", () => {
|
|
185
|
+
expect(policy.getName("class", "constant")).toBe("CLASS");
|
|
186
|
+
});
|
|
187
|
+
|
|
188
|
+
it("class-member-private: 'value' becomes '_value' (not a keyword)", () => {
|
|
189
|
+
expect(policy.getName("value", "class-member-private")).toBe("_value");
|
|
190
|
+
});
|
|
191
|
+
});
|
|
192
|
+
|
|
193
|
+
describe("identifier sanitization", () => {
|
|
194
|
+
it("sanitizes names starting with digits", () => {
|
|
195
|
+
expect(policy.getName("123foo", "class")).toBe("_123foo");
|
|
196
|
+
});
|
|
197
|
+
|
|
198
|
+
it("sanitizes names starting with digits for camelCase elements", () => {
|
|
199
|
+
expect(policy.getName("123param", "parameter")).toBe("_123param");
|
|
200
|
+
});
|
|
201
|
+
|
|
202
|
+
it("sanitizes empty string", () => {
|
|
203
|
+
expect(policy.getName("", "class")).toBe("_");
|
|
204
|
+
});
|
|
205
|
+
|
|
206
|
+
it("sanitizes namespace starting with digits", () => {
|
|
207
|
+
expect(policy.getName("123service", "namespace")).toBe("_123service");
|
|
208
|
+
});
|
|
209
|
+
});
|
|
210
|
+
});
|
package/src/name-policy.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import * as core from "@alloy-js/core";
|
|
2
2
|
import * as changecase from "change-case";
|
|
3
|
+
import { sanitizeCSharpIdentifier } from "./identifier-utils.js";
|
|
4
|
+
import { isCSharpKeyword } from "./keywords.js";
|
|
3
5
|
|
|
4
6
|
// the context in which the name policy should be applied
|
|
5
7
|
export type CSharpElements =
|
|
@@ -20,10 +22,27 @@ export type CSharpElements =
|
|
|
20
22
|
| "type-parameter"
|
|
21
23
|
| "namespace";
|
|
22
24
|
|
|
23
|
-
|
|
25
|
+
/**
|
|
26
|
+
* Prefixes the name with `@` if it is a C# keyword.
|
|
27
|
+
* This is the idiomatic C# way to use reserved words as identifiers.
|
|
28
|
+
* The check is case-sensitive, matching C# language semantics.
|
|
29
|
+
*/
|
|
30
|
+
function escapeIfKeyword(name: string): string {
|
|
31
|
+
return isCSharpKeyword(name) ? `@${name}` : name;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Creates the C# naming policy with case conversion and keyword escaping.
|
|
36
|
+
*
|
|
37
|
+
* After applying the appropriate case conversion for each element kind,
|
|
38
|
+
* the resulting name is checked against C# reserved and contextual keywords.
|
|
39
|
+
* If it matches (case-sensitively), the name is prefixed with `@`.
|
|
40
|
+
*/
|
|
24
41
|
export function createCSharpNamePolicy(): core.NamePolicy<CSharpElements> {
|
|
25
42
|
return core.createNamePolicy((name, element) => {
|
|
43
|
+
let result: string;
|
|
26
44
|
switch (element) {
|
|
45
|
+
case "namespace":
|
|
27
46
|
case "class":
|
|
28
47
|
case "struct":
|
|
29
48
|
case "enum":
|
|
@@ -34,15 +53,20 @@ export function createCSharpNamePolicy(): core.NamePolicy<CSharpElements> {
|
|
|
34
53
|
case "class-method":
|
|
35
54
|
case "type-parameter":
|
|
36
55
|
case "class-property":
|
|
37
|
-
|
|
38
|
-
|
|
56
|
+
result = changecase.pascalCase(name);
|
|
57
|
+
break;
|
|
39
58
|
case "constant":
|
|
40
|
-
|
|
59
|
+
result = changecase.constantCase(name);
|
|
60
|
+
break;
|
|
41
61
|
case "class-member-private":
|
|
42
|
-
|
|
62
|
+
result = `_${changecase.camelCase(name)}`;
|
|
63
|
+
break;
|
|
43
64
|
default:
|
|
44
|
-
|
|
65
|
+
result = changecase.camelCase(name);
|
|
66
|
+
break;
|
|
45
67
|
}
|
|
68
|
+
|
|
69
|
+
return escapeIfKeyword(sanitizeCSharpIdentifier(result));
|
|
46
70
|
});
|
|
47
71
|
}
|
|
48
72
|
|
package/src/scopes/csharp.ts
CHANGED
|
@@ -20,4 +20,15 @@ export class CSharpScope extends OutputScope {
|
|
|
20
20
|
get ownerSymbol(): CSharpSymbol | undefined {
|
|
21
21
|
return super.ownerSymbol as CSharpSymbol | undefined;
|
|
22
22
|
}
|
|
23
|
+
|
|
24
|
+
override get debugInfo(): Record<string, unknown> {
|
|
25
|
+
const info = super.debugInfo;
|
|
26
|
+
if (this.enclosingNamespace) {
|
|
27
|
+
return {
|
|
28
|
+
...info,
|
|
29
|
+
enclosingNamespace: this.enclosingNamespace.name,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
return info;
|
|
33
|
+
}
|
|
23
34
|
}
|
package/src/scopes/factories.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { OutputScopeOptions } from "@alloy-js/core";
|
|
1
|
+
import { OutputScopeOptions, createScope } from "@alloy-js/core";
|
|
2
2
|
import { NamedTypeSymbol } from "../symbols/named-type.js";
|
|
3
3
|
import { CSharpClassScope } from "./class.js";
|
|
4
4
|
import { useCSharpScope, useNamedTypeScope } from "./contexts.js";
|
|
@@ -21,7 +21,7 @@ export function createNamedTypeScope(
|
|
|
21
21
|
);
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
return
|
|
24
|
+
return createScope(CSharpNamedTypeScope, ownerSymbol, currentScope, options);
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
export function createClassScope(
|
|
@@ -37,9 +37,9 @@ export function createClassScope(
|
|
|
37
37
|
"Can't create C# class scope inside of " + currentScope.constructor.name,
|
|
38
38
|
);
|
|
39
39
|
}
|
|
40
|
-
return
|
|
40
|
+
return createScope(CSharpClassScope, ownerSymbol, currentScope, options);
|
|
41
41
|
}
|
|
42
42
|
export function createMethodScope(options: OutputScopeOptions = {}) {
|
|
43
43
|
const parentScope = useNamedTypeScope();
|
|
44
|
-
return
|
|
44
|
+
return createScope(CSharpMethodScope, "method scope", parentScope, options);
|
|
45
45
|
}
|
package/src/scopes/namespace.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { OutputScope, useScope } from "@alloy-js/core";
|
|
1
|
+
import { OutputScope, createScope, useScope } from "@alloy-js/core";
|
|
2
2
|
import type { NamespaceSymbol } from "../symbols/namespace.js";
|
|
3
3
|
import { CSharpNamedTypeScope } from "./named-type.js";
|
|
4
4
|
import { CSharpSourceFileScope } from "./source-file.js";
|
|
@@ -32,7 +32,7 @@ export function createCSharpNamespaceScope(namespaceSymbol: NamespaceSymbol) {
|
|
|
32
32
|
);
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
const scope =
|
|
35
|
+
const scope = createScope(CSharpNamespaceScope, namespaceSymbol, parentScope);
|
|
36
36
|
|
|
37
37
|
return scope;
|
|
38
38
|
}
|
package/src/symbols/csharp.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import {
|
|
2
|
+
createSymbol,
|
|
2
3
|
Namekey,
|
|
3
4
|
OutputDeclarationSpace,
|
|
4
5
|
OutputMemberSpace,
|
|
@@ -128,8 +129,10 @@ export class CSharpSymbol extends OutputSymbol {
|
|
|
128
129
|
|
|
129
130
|
copy() {
|
|
130
131
|
const options = this.getCopyOptions();
|
|
131
|
-
const
|
|
132
|
+
const binder = this.binder;
|
|
133
|
+
const copy = createSymbol(CSharpSymbol, this.name, undefined, {
|
|
132
134
|
...options,
|
|
135
|
+
binder,
|
|
133
136
|
accessibility: this.#accessibility,
|
|
134
137
|
isStatic: this.#isStatic,
|
|
135
138
|
isVirtual: this.#isVirtual,
|
|
@@ -151,6 +154,22 @@ export class CSharpSymbol extends OutputSymbol {
|
|
|
151
154
|
return copy;
|
|
152
155
|
}
|
|
153
156
|
|
|
157
|
+
override get debugInfo(): Record<string, unknown> {
|
|
158
|
+
return {
|
|
159
|
+
...super.debugInfo,
|
|
160
|
+
kind: this.symbolKind,
|
|
161
|
+
accessibility: this.accessibility,
|
|
162
|
+
isAbstract: this.isAbstract,
|
|
163
|
+
isVirtual: this.isVirtual,
|
|
164
|
+
isOverride: this.isOverride,
|
|
165
|
+
isStatic: this.isStatic,
|
|
166
|
+
isSealed: this.isSealed,
|
|
167
|
+
isExtern: this.isExtern,
|
|
168
|
+
isReadOnly: this.isReadOnly,
|
|
169
|
+
isNullable: this.isNullable,
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
|
|
154
173
|
/**
|
|
155
174
|
* Whether this symbol is static.
|
|
156
175
|
*/
|
package/src/symbols/factories.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import {
|
|
2
|
+
createSymbol,
|
|
2
3
|
Namekey,
|
|
3
4
|
NamePolicyGetter,
|
|
4
5
|
onCleanup,
|
|
@@ -37,11 +38,11 @@ export function createParameterSymbol(
|
|
|
37
38
|
`Can't create parameter symbol outside of a method or class scope.`,
|
|
38
39
|
);
|
|
39
40
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
);
|
|
41
|
+
const binder = options.binder ?? scope.binder;
|
|
42
|
+
return createSymbol(CSharpSymbol, originalName, scope.parameters, {
|
|
43
|
+
...withNamePolicy(options, "parameter"),
|
|
44
|
+
binder,
|
|
45
|
+
});
|
|
45
46
|
}
|
|
46
47
|
|
|
47
48
|
export interface CreateTypeParameterSymbolOptions extends CSharpSymbolOptions {
|
|
@@ -61,11 +62,11 @@ export function createTypeParameterSymbol(
|
|
|
61
62
|
);
|
|
62
63
|
}
|
|
63
64
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
);
|
|
65
|
+
const binder = options.binder ?? scope.binder;
|
|
66
|
+
return createSymbol(CSharpSymbol, originalName, scope.typeParameters, {
|
|
67
|
+
...withNamePolicy(options, "type-parameter"),
|
|
68
|
+
binder,
|
|
69
|
+
});
|
|
69
70
|
}
|
|
70
71
|
|
|
71
72
|
export function createFieldSymbol(
|
|
@@ -91,11 +92,11 @@ export function createFieldSymbol(
|
|
|
91
92
|
throw new Error(`Can't define a field outside of a class or struct.`);
|
|
92
93
|
}
|
|
93
94
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
);
|
|
95
|
+
const binder = options.binder ?? scope.binder;
|
|
96
|
+
return createSymbol(CSharpSymbol, originalName, scope.members, {
|
|
97
|
+
...withNamePolicy(options, nameElement),
|
|
98
|
+
binder,
|
|
99
|
+
});
|
|
99
100
|
}
|
|
100
101
|
|
|
101
102
|
function withCleanup<T extends CSharpSymbol>(sym: T): T {
|
|
@@ -111,8 +112,12 @@ export function createNamedTypeSymbol(
|
|
|
111
112
|
options?: OutputSymbolOptions,
|
|
112
113
|
) {
|
|
113
114
|
const scope = useNamedTypeScope();
|
|
115
|
+
const binder = options?.binder ?? scope.ownerSymbol.binder;
|
|
114
116
|
return withCleanup(
|
|
115
|
-
|
|
117
|
+
createSymbol(NamedTypeSymbol, name, scope.ownerSymbol.members, kind, {
|
|
118
|
+
...options,
|
|
119
|
+
binder,
|
|
120
|
+
}),
|
|
116
121
|
);
|
|
117
122
|
}
|
|
118
123
|
|
|
@@ -121,7 +126,9 @@ export function createNamespaceSymbol(
|
|
|
121
126
|
options: CSharpSymbolOptions = {},
|
|
122
127
|
): NamespaceSymbol {
|
|
123
128
|
const scope = useNamespaceContext();
|
|
124
|
-
const parentSymbol =
|
|
129
|
+
const parentSymbol =
|
|
130
|
+
scope?.symbol ??
|
|
131
|
+
getGlobalNamespace(options.binder ?? scope?.symbol?.binder ?? useBinder());
|
|
125
132
|
const names = normalizeNamespaceName(name);
|
|
126
133
|
let current = parentSymbol;
|
|
127
134
|
for (const name of names) {
|
|
@@ -155,12 +162,12 @@ function createNamespaceSymbolInternal(
|
|
|
155
162
|
expectedName,
|
|
156
163
|
)! as NamespaceSymbol;
|
|
157
164
|
}
|
|
165
|
+
const binder = options.binder ?? parentSymbol.binder;
|
|
158
166
|
return withCleanup(
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
),
|
|
167
|
+
createSymbol(NamespaceSymbol, name, parentSymbol, {
|
|
168
|
+
...withNamePolicy(options, "namespace"),
|
|
169
|
+
binder,
|
|
170
|
+
}),
|
|
164
171
|
);
|
|
165
172
|
}
|
|
166
173
|
|
|
@@ -184,12 +191,17 @@ export function createMethodSymbol(
|
|
|
184
191
|
);
|
|
185
192
|
}
|
|
186
193
|
|
|
194
|
+
const binder = options.binder ?? scope.binder;
|
|
187
195
|
return withCleanup(
|
|
188
|
-
|
|
196
|
+
createSymbol(
|
|
197
|
+
MethodSymbol,
|
|
189
198
|
originalName,
|
|
190
199
|
scope.members,
|
|
191
200
|
options.methodKind ?? "ordinary",
|
|
192
|
-
|
|
201
|
+
{
|
|
202
|
+
...withNamePolicy(options, "class-method"),
|
|
203
|
+
binder,
|
|
204
|
+
},
|
|
193
205
|
),
|
|
194
206
|
);
|
|
195
207
|
}
|
|
@@ -199,12 +211,12 @@ export function createPropertySymbol(
|
|
|
199
211
|
options: CSharpSymbolOptions,
|
|
200
212
|
) {
|
|
201
213
|
const scope = useNamedTypeScope();
|
|
214
|
+
const binder = options.binder ?? scope.binder;
|
|
202
215
|
return withCleanup(
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
),
|
|
216
|
+
createSymbol(CSharpSymbol, name, scope.members, {
|
|
217
|
+
...withNamePolicy(options, "class-property"),
|
|
218
|
+
binder,
|
|
219
|
+
}),
|
|
208
220
|
);
|
|
209
221
|
}
|
|
210
222
|
|
|
@@ -232,12 +244,12 @@ export function createVariableSymbol(
|
|
|
232
244
|
`Can't create variable symbol outside of a lexical scope, got a ${scope.constructor.name}.`,
|
|
233
245
|
);
|
|
234
246
|
}
|
|
247
|
+
const binder = options.binder ?? scope.binder;
|
|
235
248
|
return withCleanup(
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
),
|
|
249
|
+
createSymbol(CSharpSymbol, originalName, scope.localVariables, {
|
|
250
|
+
...withNamePolicy(options, "variable"),
|
|
251
|
+
binder,
|
|
252
|
+
}),
|
|
241
253
|
);
|
|
242
254
|
}
|
|
243
255
|
|