İçeriğe atla
cd /languages
  • Platformlar arası arayüz
  • Programlama
  • AST ve sembol desteği

Maguyva'da Dart: Flutter ve Dart uygulamaları için kod grafları

Maguyva, Dart'ı AST, sembol ve graf desteğiyle sunar; böylece yapay zeka ajanları Flutter ve Dart kodunda sınıfları, mixin'leri, uzantıları ve kurucuları izleyebilir.

Dart yüzeysel yapay zeka araçlarını nerede şaşırtır

Dart tek bir türü birkaç yapıya yayar. Bir sınıf tek bir taban sınıftan kalıtım alabilir, birkaç arayüzü uygulayabilir ve with ile mixin’lerden davranış katabilir. Uzantı metotları başka yerde tanımlanmış türlere üye ekler; adlandırılmış kurucular ve factory kurucuları ise gerçekte hangi sınıfın oluşturulduğunu gizler. Metin araması adları bulur, ama arkalarındaki yapıyı bulamaz.

Maguyva bu yapıyı ajana verir; böylece ajan bir değişikliği widget’tan bağımlı olduğu servise kadar izleyebilir.

Maguyva Dart’tan neleri çıkarır

Maguyva .dart dosyalarını kapsar. Sınıflar, mixin’ler ve uzantılar tür olarak çıkarılır. structural_search içindeki functions hazır ayarı fonksiyonları, metotları, yerel fonksiyonları, lambda’ları ve üretici, const ve factory kurucuları kapsar. İmzalar isteğe bağlı konumsal ve adlandırılmış parametre gruplarını ve static üyeleri kaydeder; tanım adlarının sonundaki ? ve ! kaldırılır.

İçe aktarmalar import, part ve library yönergelerini normalleştirir ve show, hide ve as yan tümcelerini atar. import 'package:http/http.dart' as http sonrasındaki http.get gibi bir içe aktarma öneki üzerinden yapılan çağrı grafta kalır.

Alıcı türlemesi parametreleri, türü belirtilmiş ve ilklendirilmiş değişkenleri, getter’ları ve listeler, kümeler ve yinelenebilirler üzerindeki for-in döngülerini izler; var ve dynamic türlerini çıkarımsal kabul eder. Kalıtılan üyeler çözülürken extends, implements ve with yan tümceleri izlenir. Graf ayrıca örnekleme, tür başvuruları, okuma ve yazmalar ile istisna kenarlarını kaydeder.

Örnek ajan istemleri

  • “CartRepository.addItem’i kim çağırıyor ve hangi widget’lardan?” (find_symbol, ardından dependency_search incoming)
  • “Hangi sınıflar PaymentGateway’i uyguluyor?” (dependency_search)
  • “Ödeme düğmesinin ödeme API’sine nasıl ulaştığını izle.” (get_task_context)

Bilinen sınırlar

  • Dart çekirdek kütüphanelerinden yaklaşık 200 ad ilişkilerden filtrelenir; aralarında map, where ve forEach gibi koleksiyon yardımcıları, then ve listen gibi Future ve Stream metotları ve dart: kütüphaneleri vardır. Bunlar için text_pattern_search kullanın.
  • Dart imza düğümleri gövdeyi kardeş düğüm olarak tutar; bu yüzden structural_search sonuçlarında bir yerel fonksiyon veya lambda onu içeren çağrılabilir öğeyle çakışabilir, getter ve setter’lar da metot imzası olarak görünür.

Sonraki adımlar

Hızlı başlangıç ile bir repo bağlayın, ardından destek matrisi için uyumluluk sayfasına bakın. Diğer mobil kod tabanları için Kotlin rehberini ve Swift rehberini okuyun.

En uygun kullanım

  • > Widget'ların, durum sınıflarının, repoların ve servislerin birçok dosya boyunca birbirini çağırdığı Flutter uygulamaları.
  • > Başka yerde tanımlanmış türlere mixin'ler ve uzantı metotlarıyla davranış ekleyen Dart paketleri.
  • > Modellerini bir Flutter istemcisiyle paylaşan sunucu tarafı ve komut satırı Dart kodu.

Ajan iş akışları

  • > Bir repo veya servis metodunun API'sini değiştirmeden önce tüm çağıranlarını bulmak.
  • > Bir arayüze üye eklemeden önce onu uygulayan sınıfları listelemek.
  • > Bir widget'taki dokunuşun ağ katmanına nasıl ulaştığını izlemek.

Motor ayrıntıları

  • > Dart desteği `.dart` dosyalarını kapsar. Sınıflar, mixin'ler ve uzantılar türdür; kurucular üretici, `const` ve `factory` biçimlerini içerir.
  • > İçe aktarmalar `import`, `part` ve `library` yönergelerini normalleştirir; içe aktarma öneki üzerinden yapılan çağrılar grafta kalır.
  • > Alıcı türlemesi parametreleri, değişkenleri, getter'ları ve `for`-`in` döngülerini izler; yaklaşık 200 çekirdek kütüphane adı ilişkilerden filtrelenir.

Yararlı MCP giriş noktaları

  • find_symbol

    Tanıma ve başvurulara ihtiyaç duyduğunuzda bir widget, repo veya servis sınıfı için kullanın.

  • dependency_search

    Bir API'yi değiştirmeden önce çağıranları ve uygulayıcıları görmek için bir repo metodu veya arayüz üzerinde incoming geçişi kullanın.

  • get_task_context

    "Ödeme düğmesinin ödeme API'sine nasıl ulaştığını izle" gibi istemler için kullanın.