Add @Observable macro for class property mutation tracking

This commit is contained in:
Brendan Szymanski 2026-06-15 17:42:44 -04:00
parent 4ea5ec7efe
commit 0c011eff01
5 changed files with 281 additions and 0 deletions

View file

@ -1,3 +1,4 @@
import CompilerPluginSupport
// swift-tools-version: 6.0
import PackageDescription
@ -11,6 +12,7 @@ let package = Package(
.package(url: "https://github.com/apple/swift-openapi-runtime", from: "1.0.0"),
.package(url: "https://github.com/apple/swift-openapi-urlsession", from: "1.0.0"),
.package(url: "https://github.com/stephencelis/SQLite.swift", from: "0.16.0"),
.package(url: "https://github.com/apple/swift-syntax", from: "603.0.0"),
],
targets: [
.target(
@ -27,11 +29,20 @@ let package = Package(
name: "LuminateCore",
dependencies: [
"LuminateAPI",
"LuminateObservationMacros",
.product(name: "OpenAPIRuntime", package: "swift-openapi-runtime"),
.product(name: "OpenAPIURLSession", package: "swift-openapi-urlsession"),
.product(name: "SQLite", package: "SQLite.swift"),
]
),
.macro(
name: "LuminateObservationMacros",
dependencies: [
.product(name: "SwiftSyntax", package: "swift-syntax"),
.product(name: "SwiftSyntaxMacros", package: "swift-syntax"),
.product(name: "SwiftCompilerPlugin", package: "swift-syntax"),
]
),
.target(
name: "LuminateDI",
dependencies: [
@ -44,6 +55,7 @@ let package = Package(
dependencies: [
"LuminateCore",
"LuminateDI",
"LuminateObservationMacros",
.product(name: "Adwaita", package: "adwaita-swift"),
]
),
@ -52,6 +64,7 @@ let package = Package(
dependencies: [
"LuminateCore",
"LuminateDI",
"LuminateObservationMacros",
.product(name: "Adwaita", package: "adwaita-swift"),
]
),
@ -60,6 +73,7 @@ let package = Package(
dependencies: [
"LuminateCore",
"LuminateDI",
"LuminateObservationMacros",
.product(name: "Adwaita", package: "adwaita-swift"),
]
),
@ -70,6 +84,7 @@ let package = Package(
"LuminateLibrary",
"LuminatePlayer",
"LuminateDI",
"LuminateObservationMacros",
.product(name: "Adwaita", package: "adwaita-swift"),
.product(name: "Localized", package: "localized"),
],