Μετάβαση στο περιεχόμενο
cd /languages
  • UI για πολλές πλατφόρμες
  • Προγραμματισμός
  • Υποστήριξη AST και συμβόλων

Dart στο Maguyva: γράφοι κώδικα για εφαρμογές Flutter και Dart

Το Maguyva υποστηρίζει τη Dart με AST, σύμβολα και γράφο, ώστε οι πράκτορες AI να ακολουθούν κλάσεις, mixin, επεκτάσεις και κατασκευαστές σε κώδικα Flutter και Dart.

Πού σκοντάφτουν τα επιφανειακά εργαλεία AI στη Dart

Η Dart απλώνει έναν τύπο σε πολλές κατασκευές. Μια κλάση μπορεί να κληρονομεί από μία βασική κλάση, να υλοποιεί πολλές διεπαφές και να αναμειγνύει συμπεριφορά από mixin μέσω with. Οι μέθοδοι επέκτασης προσθέτουν μέλη σε τύπους που ορίζονται αλλού, ενώ οι επώνυμοι κατασκευαστές και οι κατασκευαστές factory κρύβουν ποια κλάση δημιουργείται στην πράξη. Η αναζήτηση κειμένου βρίσκει τα ονόματα, όχι τη δομή πίσω τους.

Το Maguyva δίνει αυτή τη δομή στον πράκτορα, ώστε να ακολουθήσει μια αλλαγή από ένα γραφικό στοιχείο έως την υπηρεσία από την οποία εξαρτάται.

Τι εξάγει το Maguyva από τη Dart

Το Maguyva καλύπτει αρχεία .dart. Οι κλάσεις, τα mixin και οι επεκτάσεις εξάγονται ως τύποι. Η προεπιλογή functions στο structural_search καλύπτει συναρτήσεις, μεθόδους, τοπικές συναρτήσεις, lambda και γενετικούς κατασκευαστές, καθώς και κατασκευαστές const και factory. Οι υπογραφές καταγράφουν ομάδες προαιρετικών θεσιακών και επώνυμων παραμέτρων και μέλη static· τα επιθήματα ? και ! αφαιρούνται από τα ονόματα ορισμών.

Οι εισαγωγές κανονικοποιούν τις οδηγίες import, part και library και απορρίπτουν τους όρους show, hide και as. Μια κλήση μέσω προθέματος εισαγωγής, όπως http.get μετά από import 'package:http/http.dart' as http, παραμένει στον γράφο.

Η τυποποίηση δέκτη παρακολουθεί παραμέτρους, μεταβλητές με δηλωμένο τύπο ή αρχικοποίηση, getter και βρόχους for-in σε λίστες, σύνολα και επαναλήψιμα· τα var και dynamic θεωρούνται συναγόμενοι τύποι. Κατά την επίλυση κληρονομημένων μελών ακολουθούνται οι όροι extends, implements και with. Ο γράφος καταγράφει επίσης δημιουργία στιγμιοτύπων, αναφορές τύπων, αναγνώσεις και εγγραφές, καθώς και ακμές εξαιρέσεων.

Παραδείγματα προτροπών για πράκτορες

  • «Ποιος καλεί το CartRepository.addItem και από ποια γραφικά στοιχεία;» (find_symbol, μετά dependency_search με εισερχόμενη κατεύθυνση)
  • «Ποιες κλάσεις υλοποιούν το PaymentGateway;» (dependency_search)
  • «Ακολούθησε πώς το κουμπί ολοκλήρωσης αγοράς φτάνει στο API πληρωμών.» (get_task_context)

Γνωστοί περιορισμοί

  • Περίπου 200 ονόματα από τις βασικές βιβλιοθήκες της Dart φιλτράρονται από τις σχέσεις, μεταξύ τους βοηθητικά συλλογών όπως map, where και forEach, μέθοδοι των Future και Stream όπως then και listen, και οι βιβλιοθήκες dart:. Για αυτά χρησιμοποιήστε το text_pattern_search.
  • Οι κόμβοι υπογραφής της Dart κρατούν το σώμα ως αδελφό κόμβο, οπότε στα αποτελέσματα του structural_search μια τοπική συνάρτηση ή lambda μπορεί να επικαλύπτει την καλέσιμη μονάδα που την περιέχει, και οι getter και setter εμφανίζονται ως υπογραφές μεθόδων.

Επόμενα βήματα

Συνδέστε ένα αποθετήριο με τον γρήγορο οδηγό εκκίνησης και έπειτα δείτε τον πίνακα υποστήριξης στη σελίδα συμβατότητας. Για άλλες βάσεις κώδικα κινητών, διαβάστε τον οδηγό για την Kotlin και τον οδηγό για τη Swift.

Ιδανική χρήση

  • > Εφαρμογές Flutter όπου γραφικά στοιχεία, κλάσεις κατάστασης, αποθετήρια και υπηρεσίες καλούν το ένα το άλλο σε πολλά αρχεία.
  • > Πακέτα Dart που προσθέτουν συμπεριφορά μέσω mixin και μεθόδων επέκτασης σε τύπους που ορίζονται αλλού.
  • > Κώδικας Dart για διακομιστή και γραμμή εντολών που μοιράζεται μοντέλα με έναν πελάτη Flutter.

Ροές εργασίας πρακτόρων

  • > Εύρεση όλων των καλούντων μιας μεθόδου αποθετηρίου ή υπηρεσίας πριν αλλάξει το API της.
  • > Καταγραφή των κλάσεων που υλοποιούν μια διεπαφή πριν προστεθεί νέο μέλος.
  • > Ανίχνευση του πώς ένα πάτημα σε γραφικό στοιχείο φτάνει στο επίπεδο δικτύου.

Λεπτομέρειες μηχανής

  • > Η υποστήριξη της Dart καλύπτει αρχεία `.dart`. Οι κλάσεις, τα mixin και οι επεκτάσεις είναι τύποι· οι κατασκευαστές περιλαμβάνουν γενετικές μορφές, `const` και `factory`.
  • > Οι εισαγωγές κανονικοποιούν τις οδηγίες `import`, `part` και `library`· οι κλήσεις μέσω προθέματος εισαγωγής παραμένουν στον γράφο.
  • > Η τυποποίηση δέκτη παρακολουθεί παραμέτρους, μεταβλητές, getter και βρόχους `for`-`in`· περίπου 200 ονόματα βασικών βιβλιοθηκών φιλτράρονται από τις σχέσεις.

Χρήσιμα σημεία εισόδου MCP

  • find_symbol

    Χρησιμοποιήστε το για μια κλάση γραφικού στοιχείου, αποθετηρίου ή υπηρεσίας όταν χρειάζεστε τον ορισμό και τις αναφορές.

  • dependency_search

    Χρησιμοποιήστε εισερχόμενη διάσχιση σε μια μέθοδο αποθετηρίου ή διεπαφή για να δείτε καλούντες και υλοποιήσεις πριν αλλάξετε ένα API.

  • get_task_context

    Χρησιμοποιήστε το για προτροπές όπως «ακολούθησε πώς το κουμπί ολοκλήρωσης αγοράς φτάνει στο API πληρωμών».