Langkau ke kandungan
cd /languages
  • UI merentas platform
  • Pengaturcaraan
  • Sokongan AST dan simbol

Dart dalam Maguyva: graf kod untuk aplikasi Flutter dan Dart

Maguyva menyokong Dart dengan AST, simbol dan graf, supaya ejen AI boleh menjejak kelas, mixin, sambungan dan pembina dalam kod Flutter dan Dart.

Di mana Dart memerangkap alat AI yang cetek

Dart menyebarkan satu jenis kepada beberapa binaan. Sesebuah kelas boleh mewarisi daripada satu kelas asas, melaksanakan beberapa antara muka dan mencampurkan tingkah laku daripada mixin melalui with. Kaedah sambungan menambah ahli pada jenis yang ditakrifkan di tempat lain, manakala pembina bernama dan pembina factory menyembunyikan kelas mana yang sebenarnya dicipta. Carian teks menemui nama, bukan struktur di sebaliknya.

Maguyva memberikan struktur itu kepada ejen, supaya ejen boleh menjejak perubahan daripada widget hingga ke perkhidmatan yang menjadi sandarannya.

Apa yang diekstrak oleh Maguyva daripada Dart

Maguyva merangkumi fail .dart. Kelas, mixin dan sambungan diekstrak sebagai jenis. Pratetap functions dalam structural_search merangkumi fungsi, kaedah, fungsi setempat, lambda serta pembina generatif, const dan factory. Tandatangan merekodkan kumpulan parameter kedudukan pilihan dan parameter bernama serta ahli static; akhiran ? dan ! dibuang daripada nama takrifan.

Import menormalkan arahan import, part dan library, serta membuang klausa show, hide dan as. Panggilan melalui awalan import, seperti http.get selepas import 'package:http/http.dart' as http, kekal dalam graf.

Penjenisan penerima menjejak parameter, pemboleh ubah yang berjenis dan yang diawalkan, getter, serta gelung for-in ke atas senarai, set dan iterable; var dan dynamic dianggap sebagai jenis inferens. Apabila ahli warisan diselesaikan, klausa extends, implements dan with turut diikuti. Graf juga merekodkan instansiasi, rujukan jenis, bacaan dan tulisan, serta tepi pengecualian.

Contoh gesaan ejen

  • “Siapa yang memanggil CartRepository.addItem, dan daripada widget mana?” (find_symbol, kemudian dependency_search arah masuk)
  • “Kelas mana yang melaksanakan PaymentGateway?” (dependency_search)
  • “Jejaki bagaimana butang pembayaran sampai ke API pembayaran.” (get_task_context)

Had yang diketahui

  • Kira-kira 200 nama daripada pustaka teras Dart ditapis daripada hubungan, termasuk pembantu koleksi seperti map, where dan forEach, kaedah Future dan Stream seperti then dan listen, serta pustaka dart:. Gunakan text_pattern_search untuknya.
  • Nod tandatangan Dart menyimpan badan fungsi sebagai nod adik-beradik, jadi keputusan structural_search boleh menindihkan fungsi setempat atau lambda pada callable yang mengandunginya, dan getter serta setter muncul sebagai tandatangan kaedah.

Langkah seterusnya

Sambungkan repositori dengan panduan permulaan pantas, kemudian semak matriks sokongan di halaman keserasian. Untuk pangkalan kod mudah alih yang lain, baca panduan Kotlin dan panduan Swift.

Paling sesuai

  • > Aplikasi Flutter yang widget, kelas keadaan, repositori dan perkhidmatannya saling memanggil merentas banyak fail.
  • > Pakej Dart yang menambah tingkah laku melalui mixin dan kaedah sambungan pada jenis yang ditakrifkan di tempat lain.
  • > Kod Dart sisi pelayan dan baris arahan yang berkongsi model dengan klien Flutter.

Aliran kerja ejen

  • > Mencari semua pemanggil kaedah repositori atau perkhidmatan sebelum mengubah API-nya.
  • > Menyenaraikan kelas yang melaksanakan sesuatu antara muka sebelum menambah ahli baharu.
  • > Menjejak bagaimana ketikan pada widget sampai ke lapisan rangkaian.

Butiran enjin

  • > Sokongan Dart merangkumi fail `.dart`. Kelas, mixin dan sambungan ialah jenis; pembina merangkumi bentuk generatif, `const` dan `factory`.
  • > Import menormalkan arahan `import`, `part` dan `library`; panggilan melalui awalan import kekal dalam graf.
  • > Penjenisan penerima menjejak parameter, pemboleh ubah, getter dan gelung `for`-`in`; kira-kira 200 nama pustaka teras ditapis daripada hubungan.

Titik masuk MCP yang berguna

  • find_symbol

    Gunakan untuk kelas widget, repositori atau perkhidmatan apabila anda memerlukan takrifan dan rujukannya.

  • dependency_search

    Gunakan penelusuran arah masuk pada kaedah repositori atau antara muka untuk melihat pemanggil dan pelaksana sebelum mengubah API.

  • get_task_context

    Gunakan untuk gesaan seperti "jejaki bagaimana butang pembayaran sampai ke API pembayaran".