Skip to content

Commit

Permalink
Merge pull request kateinoigakukun#11 from ileitch/unit-target-name
Browse files Browse the repository at this point in the history
Implement indexstore_unit_reader_get_target.
  • Loading branch information
kateinoigakukun authored and Ian Leitch committed Mar 19, 2023
2 parents 4af8b39 + 92a475d commit 918e159
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 0 deletions.
1 change: 1 addition & 0 deletions Sources/SwiftIndexStore/LibIndexStore.swift
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ public struct LibIndexStore {
api.unit_reader_dispose = try requireSym(dylib, "indexstore_unit_reader_dispose")
api.unit_reader_get_main_file = try requireSym(dylib, "indexstore_unit_reader_get_main_file")
api.unit_reader_get_module_name = try requireSym(dylib, "indexstore_unit_reader_get_module_name")
api.unit_reader_get_target = try requireSym(dylib, "indexstore_unit_reader_get_target")
api.unit_dependency_get_name = try requireSym(dylib, "indexstore_unit_dependency_get_name")
api.unit_dependency_get_filepath = try requireSym(dylib, "indexstore_unit_dependency_get_filepath")
api.unit_dependency_get_modulename = try requireSym(dylib, "indexstore_unit_dependency_get_modulename")
Expand Down
6 changes: 6 additions & 0 deletions Sources/SwiftIndexStore/SwiftIndexStore.swift
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,12 @@ public final class IndexStore {
return lib.unit_reader_get_module_name(reader).toSwiftString()
}

public func target(for unit: IndexStoreUnit) throws -> String? {
let reader = try createUnitReader(for: unit)
defer { lib.unit_reader_dispose(reader) }
return lib.unit_reader_get_target(reader).toSwiftString()
}

// - MARK: ForEach Functions

public func forEachUnits(includeSystem: Bool = true, _ next: (IndexStoreUnit) throws -> Bool) rethrows {
Expand Down
7 changes: 7 additions & 0 deletions Tests/SwiftIndexStoreTests/SwiftIndexStoreTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,13 @@ final class SwiftIndexStoreTests: XCTestCase {
XCTAssertEqual(moduleName, "TestModule")
}

func testUnitTarget() throws {
let units = indexStore.units()
let unit = try XCTUnwrap(units.first { $0.name?.contains("ViewController") ?? false })
let moduleName = try XCTUnwrap(indexStore.target(for: unit))
XCTAssertNotNil(moduleName)
}

func testDependency() throws {
let unit = indexStore.units().first(where: { $0.name?.contains("ViewController") ?? false })!
let dependencies = try indexStore.recordDependencies(for: unit)
Expand Down

0 comments on commit 918e159

Please sign in to comment.