# Dart sa Maguyva: mga code graph para sa Flutter at Dart app

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

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 Dart gamit ang AST, mga symbol at graph, para ma-trace ng mga AI agent ang mga class, mixin, extension at constructor sa Flutter at Dart code.

## Snapshot ng support

- Antas: Support para sa AST at mga simbolo
- Programming
- Mga extension: .dart
- 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 Flutter app na nagtatawagan ang mga widget, state class, repository at service sa maraming file.
- Mga Dart package na nagdadagdag ng behavior gamit ang mixin at extension method sa mga type na nakadeklara sa ibang lugar.
- Server-side at command-line na Dart code na kahati ng isang Flutter client sa mga model.

## Mga workflow ng agent

- Hanapin ang lahat ng tumatawag sa isang repository o service method bago baguhin ang API nito.
- Ilista ang mga class na nag-i-implement ng isang interface bago magdagdag ng bagong member.
- I-trace kung paano umaabot sa network layer ang isang tap sa widget.

## Saan nalilito ang mababaw na AI tool sa Dart

Ikinakalat ng Dart ang isang type sa ilang construct. Puwedeng magmana ang isang class mula sa isang base class, mag-implement ng ilang interface, at maghalo ng behavior mula sa mga mixin gamit ang `with`. Nagdadagdag ang mga extension method ng member sa mga type na nakadeklara sa ibang lugar, at itinatago ng mga named constructor at `factory` constructor kung aling class talaga ang nalilikha. Nahahanap ng text search ang mga pangalan, pero hindi ang istruktura sa likod nila.

Ibinibigay ng Maguyva ang istrukturang iyon sa agent, para ma-trace nito ang isang pagbabago mula sa widget hanggang sa service na inaasahan nito.

## Ano ang kinukuha ng Maguyva mula sa Dart

Sakop ng Maguyva ang mga `.dart` file. Kinukuha bilang type ang mga class, mixin at extension. Sakop ng `functions` preset sa `structural_search` ang mga function, method, local function, lambda, at generative, `const` at `factory` constructor. Itinatala ng mga signature ang optional positional at named parameter group at ang mga `static` member; tinatanggal ang mga suffix na `?` at `!` sa mga pangalan ng definition.

Nino-normalize ng mga import ang mga directive na `import`, `part` at `library`, at tinatanggal ang mga clause na `show`, `hide` at `as`. Nananatili sa graph ang tawag sa pamamagitan ng import prefix, gaya ng `http.get` pagkatapos ng `import 'package:http/http.dart' as http`.

Sinusundan ng receiver typing ang mga parameter, mga variable na may type o initializer, mga getter, at mga `for`-`in` loop sa mga list, set at iterable; itinuturing na inferred ang `var` at `dynamic`. Kapag nireresolba ang mga minanang member, sinusundan din ang mga clause na `extends`, `implements` at `with`. Itinatala rin ng graph ang instantiation, mga type reference, mga read at write, at mga exception edge.

## Mga halimbawang agent prompt

- "Sino ang tumatawag sa `CartRepository.addItem`, at mula sa aling mga widget?" (`find_symbol`, tapos `dependency_search` na incoming)
- "Aling mga class ang nag-i-implement ng `PaymentGateway`?" (`dependency_search`)
- "I-trace kung paano umaabot ang checkout button sa payment API." (`get_task_context`)

## Mga kilalang limitasyon

- Mga 200 pangalan mula sa core library ng Dart ang nifi-filter mula sa mga relationship, kasama ang mga collection helper tulad ng `map`, `where` at `forEach`, mga method ng `Future` at `Stream` tulad ng `then` at `listen`, at ang mga `dart:` library. Gamitin ang `text_pattern_search` para sa mga iyon.
- Hawak ng mga signature node ng Dart ang body bilang sibling node, kaya sa mga resulta ng `structural_search` ay puwedeng magpatong ang isang local function o lambda sa callable na naglalaman nito, at lumalabas ang mga getter at setter bilang method signature.

## 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). Para sa iba pang mobile codebase, basahin ang [gabay sa Kotlin](/fil/languages/kotlin) at ang [gabay sa Swift](/fil/languages/swift).

## Mga detalye ng engine

- Sakop ng suporta sa Dart ang mga `.dart` file. Mga type ang class, mixin at extension; kasama sa mga constructor ang generative, `const` at `factory`.
- Nino-normalize ng mga import ang mga directive na `import`, `part` at `library`; nananatili sa graph ang mga call sa pamamagitan ng import prefix.
- Sinusundan ng receiver typing ang mga parameter, variable, getter at `for`-`in` loop; mga 200 core-library na pangalan ang nifi-filter mula sa mga relationship.

## Mga kapaki-pakinabang na MCP entry point

- `find_symbol`: Gamitin para sa isang widget, repository o service class kapag kailangan mo ang definition at mga reference.
- `dependency_search`: Gumamit ng incoming traversal sa isang repository method o interface para makita ang mga caller at implementer bago baguhin ang API.
- `get_task_context`: Gamitin para sa mga prompt tulad ng "i-trace kung paano umaabot ang checkout button sa payment API".
