# Swift sa Maguyva: mga code graph para sa iOS at macOS

Canonical source: https://maguyva.ai/fil/languages/swift

License: text under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/); code samples under [MIT-0](https://opensource.org/license/mit-0); the Maguyva name, logos, brand assets and other code are not covered. Details: [maguyva.ai/license](https://maguyva.ai/license).

Sinusuportahan ng Maguyva ang Swift gamit ang AST, mga symbol at graph, para ma-trace ng mga AI agent ang mga protocol, extension, initializer at observer sa iOS at macOS code.

## Snapshot ng support

- Antas: Support para sa AST at mga simbolo
- Programming
- Mga extension: .swift
- Tunay na AST parsing para sa syntax-aware search at structural context.
- Pinapagana ng mga named symbol ang semantic lookup at cross-reference. Available ang graph navigation kapag naka-enable ang pagkuha ng mga ugnayan.
- Nag-aambag ang wikang ito ng mga simbolo at ugnayan sa graph-aware search; nag-iiba ang mga sinusuportahang uri ng edge ayon sa mga native construct nito.
- Available ang AST parsing at symbol extraction.

## Pinakabagay

- Mga iOS at macOS team na may malalaking app target at mga shared Swift package.
- Mga codebase na nakabuo sa paligid ng mga protocol at extension, kung saan kalat sa maraming file ang behavior ng isang type.
- Mga agent workflow na nangangailangan ng impact analysis bago magbago ang isang shared model, service o protocol.

## Mga workflow ng agent

- Hanapin ang bawat type na nagco-conform sa isang protocol bago magbago ang isa sa mga requirement nito.
- I-trace ang mga tumatawag sa isang service method sa mga ViewModel, coordinator at package.
- Hanapin ang mga initializer, computed property at `didSet` observer na humahawak sa isang state.

## Bakit kailangan ng Swift ng higit pa sa file search

Ikinakalat ng Swift ang isang type sa maraming lugar. Dineklara ang isang struct sa isang file, nakakakuha ito ng behavior mula sa mga extension sa tatlong ibang file, at nagco-conform ito sa mga protocol na naka-define sa isang package. Nakatago ang mga pagbabago sa state sa mga computed property at sa mga `willSet` / `didSet` observer. Karamihan nito ay nami-miss ng agent na isang file lang ang binabasa sa bawat pagkakataon.

Ini-index ng Maguyva ang structure na ito, para sabay na makita ng agent ang mga member, conformance at tumatawag sa isang type.

## Ano ang kinukuha ng Maguyva mula sa Swift

Sakop ng Maguyva ang `.swift`. Kasama sa mga callable symbol ang mga function, `init` at `deinit`, mga subscript, mga computed-property getter at setter, at mga `willSet` / `didSet` observer, para mahanap bilang symbol ang code na nagbabago ng state sa halip na mawala sa loob ng mga property body.

Kina-qualify sa owning type ang mga member na dineklara sa mga struct, enum, protocol at extension (halimbawa `CartStore.add`), at ina-attribute sa na-extend na type ang mga member na idinagdag sa isang extension. Tinatanggal sa mga definition name ang mga generic parameter, protocol-conformance list at mga `?` / `!` suffix, kaya payak na pangalan ang gamit ng search. Pinapanatili ng mga call ang `self.` at ang class qualifier, at binibilang sa arity ng call ang mga trailing closure.

Itinatala ng graph ang mga call, protocol conformance, inheritance, override, instantiation, mga attribute, type reference, read at write, at mga `throw` edge.

## Mga halimbawang agent prompt

- "Aling mga type ang nagco-conform sa `PaymentProvider`, at saan ginagawa ang bawat isa?" (`dependency_search`)
- "Sino ang tumatawag sa `CartStore.add`, at mula sa aling mga view?" (`find_symbol`, tapos `dependency_search` na incoming)
- "Ipaliwanag kung paano umaabot ang isang push notification sa inbox screen." (`get_task_context`)

## Mga kilalang limitasyon

- `.swift` source lang ang naka-map. Wala sa extension list ang mga Storyboard at XIB file, kaya nasa labas ng graph ang mga Interface Builder connection.
- Nifi-filter mula sa mga relationship ang mga standard-library at Foundation call tulad ng `print`, `debugPrint`, `NSLog` at mga assertion, kaya hindi sila graph edge. Gamitin ang `text_pattern_search` para sa mga iyon.

## Mga susunod na hakbang

Mag-connect ng repository gamit ang [quickstart](/fil/docs/quickstart), tapos tingnan ang support matrix sa [compatibility page](/fil/docs/compatibility). Kung inilalabas mo rin ang parehong produkto sa Android, basahin ang [gabay sa Kotlin](/fil/languages/kotlin).

## Mga detalye ng engine

- Kasama sa mga callable symbol ang mga function, `init`, `deinit`, mga subscript, mga computed-property getter at setter, at mga `willSet` / `didSet` observer.
- Kina-qualify sa owning type ang mga member ng struct, enum, protocol at extension, tulad ng `CartStore.add`.
- Tinatanggal sa mga definition name ang mga generic parameter, protocol-conformance list at mga `?` / `!` suffix, at pinapanatili ng mga call ang `self.` at ang class qualifier.

## Mga kapaki-pakinabang na MCP entry point

- `find_symbol`: Gamitin kasama ang pangalan ng type, protocol o method kapag kailangan mo ang definition at mga reference.
- `dependency_search`: Gamitin sa isang protocol para mahanap ang mga nagco-conform na type, o incoming sa isang method para mahanap ang mga tumatawag.
- `get_task_context`: Gamitin para sa mga prompt tulad ng “ipaliwanag kung paano umaabot ang isang push notification sa inbox screen”.
