# Swift in Maguyva: codegrafen voor iOS en macOS

Canonical source: https://maguyva.ai/nl/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).

Maguyva ondersteunt Swift met AST, symbolen en graaf, zodat AI-agents protocollen, extensions, initializers en observers volgen in iOS- en macOS-code.

## Ondersteuningsoverzicht

- Tier: AST- en symboolondersteuning
- Programmeren
- Extensies: .swift
- Echte AST-parsing voor syntaxbewust zoeken en structurele context.
- Benoemde symbolen voeden semantische lookup en kruisverwijzingen. Graafnavigatie is beschikbaar wanneer relatie-extractie is ingeschakeld.
- Deze taal draagt symbolen en relaties bij aan graafbewust zoeken; ondersteunde kanttypen variëren met de eigen constructies van de taal.
- Zowel AST-parsing als symboolextractie zijn beschikbaar.

## Beste toepassing

- iOS- en macOS-teams met grote app-targets en gedeelde Swift-pakketten.
- Codebases rond protocollen en extensions, waarin het gedrag van één type over veel bestanden is verspreid.
- Agentworkflows die een impactanalyse nodig hebben voordat een gedeeld model, een service of een protocol verandert.

## Agentworkflows

- Elk type vinden dat aan een protocol voldoet voordat een van de vereisten verandert.
- De aanroepers van een servicemethode volgen over ViewModels, coordinators en pakketten heen.
- Initializers, computed properties en `didSet`-observers vinden die een bepaalde state raken.

## Waarom Swift meer nodig heeft dan bestandszoeken

Swift verspreidt één type over veel plekken. Een struct wordt in het ene bestand gedeclareerd, krijgt gedrag uit extensions in drie andere en voldoet aan protocollen die in een pakket zijn gedefinieerd. Statewijzigingen zitten verstopt in computed properties en `willSet` / `didSet`-observers. Een agent die één bestand tegelijk leest, mist het meeste daarvan.

Maguyva indexeert die structuur, zodat een agent de members, protocolconformiteit en aanroepers van een type samen ziet.

## Wat Maguyva in Swift extraheert

Maguyva dekt `.swift`. Aanroepbare symbolen omvatten functies, `init` en `deinit`, subscripts, getters en setters van computed properties, en `willSet` / `didSet`-observers, zodat code die state wijzigt als symbool doorzoekbaar is in plaats van te verdwijnen in property-bodies.

Members die in structs, enums, protocollen en extensions zijn gedeclareerd, worden gekwalificeerd met hun eigenaartype (bijvoorbeeld `CartStore.add`), en members die in een extension worden toegevoegd, worden aan het uitgebreide type toegeschreven. Uit definitienamen worden generieke parameters, protocolconformiteitslijsten en de suffixen `?` / `!` verwijderd, zodat zoekopdrachten de kale naam gebruiken. Aanroepen behouden `self.` en klassekwalificatie, en trailing closures tellen mee in de ariteit van de aanroep.

De graaf legt aanroepen vast, protocolconformiteit, overerving, overrides, instantiëring, attributen, typeverwijzingen, lees- en schrijfacties, en `throw`-randen.

## Voorbeeldprompts voor agents

- "Welke types voldoen aan `PaymentProvider`, en waar wordt elk daarvan aangemaakt?" (`dependency_search`)
- "Wie roept `CartStore.add` aan, en vanuit welke views?" (`find_symbol`, daarna `dependency_search` incoming)
- "Leg uit hoe een pushmelding het inboxscherm bereikt." (`get_task_context`)

## Bekende beperkingen

- Alleen `.swift`-broncode is gekoppeld. Storyboard- en XIB-bestanden staan niet in de extensielijst, dus Interface Builder-verbindingen vallen buiten de graaf.
- Aanroepen uit de standaardbibliotheek en Foundation zoals `print`, `debugPrint`, `NSLog` en assertions worden uit de relaties gefilterd en zijn dus geen randen in de graaf. Gebruik daarvoor `text_pattern_search`.

## Volgende stappen

Koppel een repository via de [snelstart](/nl/docs/quickstart) en bekijk daarna de ondersteuningsmatrix op de [compatibiliteitspagina](/nl/docs/compatibility). Breng je hetzelfde product ook op Android uit, lees dan de [Kotlin-gids](/nl/languages/kotlin).

## Enginedetails

- Aanroepbare symbolen omvatten functies, `init`, `deinit`, subscripts, getters en setters van computed properties, en `willSet` / `didSet`-observers.
- Members van structs, enums, protocollen en extensions worden gekwalificeerd met hun eigenaartype, zoals `CartStore.add`.
- Generieke parameters, protocolconformiteitslijsten en de suffixen `?` / `!` worden uit definitienamen verwijderd, en aanroepen behouden `self.` en klassekwalificatie.

## Nuttige MCP-instappunten

- `find_symbol`: Gebruik het voor een type-, protocol- of methodenaam wanneer je de definitie en verwijzingen nodig hebt.
- `dependency_search`: Gebruik het op een protocol om conforme types te vinden, of incoming op een methode om aanroepers te vinden.
- `get_task_context`: Gebruik het voor prompts zoals "leg uit hoe een pushmelding het inboxscherm bereikt".
