Lumaktaw papunta sa content
cd /languages
  • UI para sa maraming platform
  • Programming
  • Support para sa AST at mga simbolo

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

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.

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, tapos tingnan ang support matrix sa compatibility page. Para sa iba pang mobile codebase, basahin ang gabay sa Kotlin at ang gabay sa Swift.

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.

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".