├── .github └── workflows │ └── blade.yml ├── .gitignore ├── LICENSE ├── Package.resolved ├── Package.swift ├── README.md ├── Sources ├── Blade │ ├── Blade.docc │ │ ├── Blade.md │ │ ├── Pages │ │ │ ├── AdvancedUsage │ │ │ │ ├── InstanceBinding.md │ │ │ │ ├── LazyDependencies.md │ │ │ │ ├── NamedDependencies.md │ │ │ │ └── Scopes.md │ │ │ ├── Basics │ │ │ │ ├── Components.md │ │ │ │ ├── Modules.md │ │ │ │ └── Providers.md │ │ │ ├── GettingStarted │ │ │ │ └── Installation.md │ │ │ └── Misc │ │ │ │ └── Internal.md │ │ └── Resources │ │ │ ├── graph@2x.png │ │ │ └── graph~dark@2x.png │ ├── Component.swift │ ├── Internal │ │ ├── DependencyKey.swift │ │ ├── DependencyProvider.swift │ │ ├── DependencyProviderResolver.swift │ │ ├── InstanceProvider.swift │ │ └── UnfairLock.swift │ ├── Lazy.swift │ ├── Module.swift │ ├── Named.swift │ ├── Provider.swift │ └── Scope.swift └── BladePlugin │ ├── BladePlugin.swift │ ├── Diagnostics │ └── BladeDiagnosticMessage.swift │ ├── Extensions │ ├── Foundation │ │ ├── Sequence.swift │ │ └── String.swift │ └── SwiftSyntax │ │ ├── ClassDeclSyntax.swift │ │ ├── CodeBlockItemSyntax.swift │ │ ├── DeclModifierListSyntax.swift │ │ ├── FunctionParameterSyntax.swift │ │ ├── TypeAliasDeclSyntax.swift │ │ └── VariableDeclSyntax.swift │ ├── Macros │ ├── ComponentMacro.swift │ ├── ModuleMacro.swift │ └── ProviderMacro.swift │ ├── Models │ ├── Binding.swift │ ├── BindingParameter.swift │ ├── BindingParameterAttributes.swift │ ├── ComponentAttribute.swift │ ├── ComponentEntryPoint.swift │ ├── ComponentInitializer.swift │ ├── FunctionAttributes.swift │ ├── InitializerBinding.swift │ ├── ModuleAttribute.swift │ ├── NamedAttribute.swift │ ├── ProviderAttribute.swift │ ├── ProviderContext.swift │ ├── ProviderFunctionBinding.swift │ ├── Scope.swift │ └── Visibility.swift │ ├── SyntaxGenerators │ ├── ComponentGenerator.swift │ ├── DependencyProviderGenerator.swift │ └── ModuleGenerator.swift │ └── SyntaxParsers │ ├── BindingParameterAttributesParser.swift │ ├── BindingParameterParser.swift │ ├── ComponentAttributeParser.swift │ ├── ComponentEntryPointParser.swift │ ├── ComponentInitializerParser.swift │ ├── FunctionAttributeListParser.swift │ ├── InitializerBindingParser.swift │ ├── MetatypeParser.swift │ ├── ModuleAttributeParser.swift │ ├── ProviderAttributeParser.swift │ ├── ProviderContextParser.swift │ ├── ProviderFunctionBindingParser.swift │ └── VisibilityParser.swift └── Tests ├── BladePluginTests └── BladePluginTests.swift └── BladeTests └── BladeTests.swift /.github/workflows/blade.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/.github/workflows/blade.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/LICENSE -------------------------------------------------------------------------------- /Package.resolved: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Package.resolved -------------------------------------------------------------------------------- /Package.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Package.swift -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/README.md -------------------------------------------------------------------------------- /Sources/Blade/Blade.docc/Blade.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/Blade/Blade.docc/Blade.md -------------------------------------------------------------------------------- /Sources/Blade/Blade.docc/Pages/AdvancedUsage/InstanceBinding.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/Blade/Blade.docc/Pages/AdvancedUsage/InstanceBinding.md -------------------------------------------------------------------------------- /Sources/Blade/Blade.docc/Pages/AdvancedUsage/LazyDependencies.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/Blade/Blade.docc/Pages/AdvancedUsage/LazyDependencies.md -------------------------------------------------------------------------------- /Sources/Blade/Blade.docc/Pages/AdvancedUsage/NamedDependencies.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/Blade/Blade.docc/Pages/AdvancedUsage/NamedDependencies.md -------------------------------------------------------------------------------- /Sources/Blade/Blade.docc/Pages/AdvancedUsage/Scopes.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/Blade/Blade.docc/Pages/AdvancedUsage/Scopes.md -------------------------------------------------------------------------------- /Sources/Blade/Blade.docc/Pages/Basics/Components.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/Blade/Blade.docc/Pages/Basics/Components.md -------------------------------------------------------------------------------- /Sources/Blade/Blade.docc/Pages/Basics/Modules.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/Blade/Blade.docc/Pages/Basics/Modules.md -------------------------------------------------------------------------------- /Sources/Blade/Blade.docc/Pages/Basics/Providers.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/Blade/Blade.docc/Pages/Basics/Providers.md -------------------------------------------------------------------------------- /Sources/Blade/Blade.docc/Pages/GettingStarted/Installation.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/Blade/Blade.docc/Pages/GettingStarted/Installation.md -------------------------------------------------------------------------------- /Sources/Blade/Blade.docc/Pages/Misc/Internal.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/Blade/Blade.docc/Pages/Misc/Internal.md -------------------------------------------------------------------------------- /Sources/Blade/Blade.docc/Resources/graph@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/Blade/Blade.docc/Resources/graph@2x.png -------------------------------------------------------------------------------- /Sources/Blade/Blade.docc/Resources/graph~dark@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/Blade/Blade.docc/Resources/graph~dark@2x.png -------------------------------------------------------------------------------- /Sources/Blade/Component.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/Blade/Component.swift -------------------------------------------------------------------------------- /Sources/Blade/Internal/DependencyKey.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/Blade/Internal/DependencyKey.swift -------------------------------------------------------------------------------- /Sources/Blade/Internal/DependencyProvider.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/Blade/Internal/DependencyProvider.swift -------------------------------------------------------------------------------- /Sources/Blade/Internal/DependencyProviderResolver.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/Blade/Internal/DependencyProviderResolver.swift -------------------------------------------------------------------------------- /Sources/Blade/Internal/InstanceProvider.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/Blade/Internal/InstanceProvider.swift -------------------------------------------------------------------------------- /Sources/Blade/Internal/UnfairLock.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/Blade/Internal/UnfairLock.swift -------------------------------------------------------------------------------- /Sources/Blade/Lazy.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/Blade/Lazy.swift -------------------------------------------------------------------------------- /Sources/Blade/Module.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/Blade/Module.swift -------------------------------------------------------------------------------- /Sources/Blade/Named.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/Blade/Named.swift -------------------------------------------------------------------------------- /Sources/Blade/Provider.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/Blade/Provider.swift -------------------------------------------------------------------------------- /Sources/Blade/Scope.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/Blade/Scope.swift -------------------------------------------------------------------------------- /Sources/BladePlugin/BladePlugin.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/BladePlugin/BladePlugin.swift -------------------------------------------------------------------------------- /Sources/BladePlugin/Diagnostics/BladeDiagnosticMessage.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/BladePlugin/Diagnostics/BladeDiagnosticMessage.swift -------------------------------------------------------------------------------- /Sources/BladePlugin/Extensions/Foundation/Sequence.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/BladePlugin/Extensions/Foundation/Sequence.swift -------------------------------------------------------------------------------- /Sources/BladePlugin/Extensions/Foundation/String.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/BladePlugin/Extensions/Foundation/String.swift -------------------------------------------------------------------------------- /Sources/BladePlugin/Extensions/SwiftSyntax/ClassDeclSyntax.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/BladePlugin/Extensions/SwiftSyntax/ClassDeclSyntax.swift -------------------------------------------------------------------------------- /Sources/BladePlugin/Extensions/SwiftSyntax/CodeBlockItemSyntax.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/BladePlugin/Extensions/SwiftSyntax/CodeBlockItemSyntax.swift -------------------------------------------------------------------------------- /Sources/BladePlugin/Extensions/SwiftSyntax/DeclModifierListSyntax.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/BladePlugin/Extensions/SwiftSyntax/DeclModifierListSyntax.swift -------------------------------------------------------------------------------- /Sources/BladePlugin/Extensions/SwiftSyntax/FunctionParameterSyntax.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/BladePlugin/Extensions/SwiftSyntax/FunctionParameterSyntax.swift -------------------------------------------------------------------------------- /Sources/BladePlugin/Extensions/SwiftSyntax/TypeAliasDeclSyntax.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/BladePlugin/Extensions/SwiftSyntax/TypeAliasDeclSyntax.swift -------------------------------------------------------------------------------- /Sources/BladePlugin/Extensions/SwiftSyntax/VariableDeclSyntax.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/BladePlugin/Extensions/SwiftSyntax/VariableDeclSyntax.swift -------------------------------------------------------------------------------- /Sources/BladePlugin/Macros/ComponentMacro.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/BladePlugin/Macros/ComponentMacro.swift -------------------------------------------------------------------------------- /Sources/BladePlugin/Macros/ModuleMacro.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/BladePlugin/Macros/ModuleMacro.swift -------------------------------------------------------------------------------- /Sources/BladePlugin/Macros/ProviderMacro.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/BladePlugin/Macros/ProviderMacro.swift -------------------------------------------------------------------------------- /Sources/BladePlugin/Models/Binding.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/BladePlugin/Models/Binding.swift -------------------------------------------------------------------------------- /Sources/BladePlugin/Models/BindingParameter.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/BladePlugin/Models/BindingParameter.swift -------------------------------------------------------------------------------- /Sources/BladePlugin/Models/BindingParameterAttributes.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/BladePlugin/Models/BindingParameterAttributes.swift -------------------------------------------------------------------------------- /Sources/BladePlugin/Models/ComponentAttribute.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/BladePlugin/Models/ComponentAttribute.swift -------------------------------------------------------------------------------- /Sources/BladePlugin/Models/ComponentEntryPoint.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/BladePlugin/Models/ComponentEntryPoint.swift -------------------------------------------------------------------------------- /Sources/BladePlugin/Models/ComponentInitializer.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/BladePlugin/Models/ComponentInitializer.swift -------------------------------------------------------------------------------- /Sources/BladePlugin/Models/FunctionAttributes.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/BladePlugin/Models/FunctionAttributes.swift -------------------------------------------------------------------------------- /Sources/BladePlugin/Models/InitializerBinding.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/BladePlugin/Models/InitializerBinding.swift -------------------------------------------------------------------------------- /Sources/BladePlugin/Models/ModuleAttribute.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/BladePlugin/Models/ModuleAttribute.swift -------------------------------------------------------------------------------- /Sources/BladePlugin/Models/NamedAttribute.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/BladePlugin/Models/NamedAttribute.swift -------------------------------------------------------------------------------- /Sources/BladePlugin/Models/ProviderAttribute.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/BladePlugin/Models/ProviderAttribute.swift -------------------------------------------------------------------------------- /Sources/BladePlugin/Models/ProviderContext.swift: -------------------------------------------------------------------------------- 1 | struct ProviderContext { 2 | let type: String? 3 | } 4 | -------------------------------------------------------------------------------- /Sources/BladePlugin/Models/ProviderFunctionBinding.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/BladePlugin/Models/ProviderFunctionBinding.swift -------------------------------------------------------------------------------- /Sources/BladePlugin/Models/Scope.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/BladePlugin/Models/Scope.swift -------------------------------------------------------------------------------- /Sources/BladePlugin/Models/Visibility.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/BladePlugin/Models/Visibility.swift -------------------------------------------------------------------------------- /Sources/BladePlugin/SyntaxGenerators/ComponentGenerator.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/BladePlugin/SyntaxGenerators/ComponentGenerator.swift -------------------------------------------------------------------------------- /Sources/BladePlugin/SyntaxGenerators/DependencyProviderGenerator.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/BladePlugin/SyntaxGenerators/DependencyProviderGenerator.swift -------------------------------------------------------------------------------- /Sources/BladePlugin/SyntaxGenerators/ModuleGenerator.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/BladePlugin/SyntaxGenerators/ModuleGenerator.swift -------------------------------------------------------------------------------- /Sources/BladePlugin/SyntaxParsers/BindingParameterAttributesParser.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/BladePlugin/SyntaxParsers/BindingParameterAttributesParser.swift -------------------------------------------------------------------------------- /Sources/BladePlugin/SyntaxParsers/BindingParameterParser.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/BladePlugin/SyntaxParsers/BindingParameterParser.swift -------------------------------------------------------------------------------- /Sources/BladePlugin/SyntaxParsers/ComponentAttributeParser.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/BladePlugin/SyntaxParsers/ComponentAttributeParser.swift -------------------------------------------------------------------------------- /Sources/BladePlugin/SyntaxParsers/ComponentEntryPointParser.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/BladePlugin/SyntaxParsers/ComponentEntryPointParser.swift -------------------------------------------------------------------------------- /Sources/BladePlugin/SyntaxParsers/ComponentInitializerParser.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/BladePlugin/SyntaxParsers/ComponentInitializerParser.swift -------------------------------------------------------------------------------- /Sources/BladePlugin/SyntaxParsers/FunctionAttributeListParser.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/BladePlugin/SyntaxParsers/FunctionAttributeListParser.swift -------------------------------------------------------------------------------- /Sources/BladePlugin/SyntaxParsers/InitializerBindingParser.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/BladePlugin/SyntaxParsers/InitializerBindingParser.swift -------------------------------------------------------------------------------- /Sources/BladePlugin/SyntaxParsers/MetatypeParser.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/BladePlugin/SyntaxParsers/MetatypeParser.swift -------------------------------------------------------------------------------- /Sources/BladePlugin/SyntaxParsers/ModuleAttributeParser.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/BladePlugin/SyntaxParsers/ModuleAttributeParser.swift -------------------------------------------------------------------------------- /Sources/BladePlugin/SyntaxParsers/ProviderAttributeParser.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/BladePlugin/SyntaxParsers/ProviderAttributeParser.swift -------------------------------------------------------------------------------- /Sources/BladePlugin/SyntaxParsers/ProviderContextParser.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/BladePlugin/SyntaxParsers/ProviderContextParser.swift -------------------------------------------------------------------------------- /Sources/BladePlugin/SyntaxParsers/ProviderFunctionBindingParser.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/BladePlugin/SyntaxParsers/ProviderFunctionBindingParser.swift -------------------------------------------------------------------------------- /Sources/BladePlugin/SyntaxParsers/VisibilityParser.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Sources/BladePlugin/SyntaxParsers/VisibilityParser.swift -------------------------------------------------------------------------------- /Tests/BladePluginTests/BladePluginTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Tests/BladePluginTests/BladePluginTests.swift -------------------------------------------------------------------------------- /Tests/BladeTests/BladeTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shackley/swift-blade/HEAD/Tests/BladeTests/BladeTests.swift --------------------------------------------------------------------------------