Chuyển tới nội dung
cd /languages
  • Giao diện đa nền tảng
  • Lập trình
  • Hỗ trợ AST và symbol

Dart trên Maguyva: đồ thị mã cho ứng dụng Flutter và Dart

Maguyva hỗ trợ Dart với AST, ký hiệu và đồ thị, để agent AI có thể lần theo lớp, mixin, extension và constructor trong mã Flutter và Dart.

Dart làm khó các công cụ AI hời hợt ở đâu

Dart trải một kiểu ra nhiều cấu trúc. Một lớp có thể kế thừa từ một lớp cơ sở, triển khai nhiều interface và trộn hành vi từ mixin bằng with. Phương thức extension thêm thành viên vào kiểu được định nghĩa ở nơi khác, còn constructor có tên và constructor factory che giấu lớp nào thực sự được tạo ra. Tìm kiếm văn bản thấy được tên, nhưng không thấy cấu trúc phía sau.

Maguyva trao cấu trúc đó cho agent, để agent có thể lần theo một thay đổi từ widget tới service mà nó phụ thuộc.

Maguyva trích xuất gì từ Dart

Maguyva bao quát các tệp .dart. Lớp, mixin và extension được trích xuất thành kiểu. Preset functions trong structural_search bao gồm hàm, phương thức, hàm cục bộ, lambda và các constructor sinh, const và factory. Chữ ký ghi lại nhóm tham số vị trí tùy chọn và tham số có tên cùng các thành viên static; hậu tố ? và ! bị loại khỏi tên định nghĩa.

Import chuẩn hóa các chỉ thị import, part và library, đồng thời bỏ các mệnh đề show, hide và as. Lời gọi qua tiền tố import, như http.get sau import 'package:http/http.dart' as http, vẫn nằm trong đồ thị.

Việc gán kiểu cho receiver theo dõi tham số, biến có khai báo kiểu và biến được khởi tạo, getter, cùng vòng lặp for-in trên list, set và iterable; var và dynamic được xem là kiểu suy luận. Khi phân giải thành viên kế thừa, các mệnh đề extends, implements và with cũng được lần theo. Đồ thị còn ghi lại việc khởi tạo đối tượng, tham chiếu kiểu, thao tác đọc và ghi, và các cạnh ngoại lệ.

Ví dụ prompt cho agent

  • “Ai gọi CartRepository.addItem, và từ những widget nào?” (find_symbol, sau đó dependency_search theo chiều vào)
  • “Những lớp nào triển khai PaymentGateway?” (dependency_search)
  • “Lần theo cách nút thanh toán đi tới API thanh toán.” (get_task_context)

Giới hạn đã biết

  • Khoảng 200 tên từ thư viện lõi của Dart bị lọc khỏi quan hệ, gồm các helper cho tập hợp như map, where và forEach, các phương thức của Future và Stream như then và listen, và các thư viện dart:. Dùng text_pattern_search cho chúng.
  • Nút chữ ký của Dart giữ phần thân như một nút anh em, nên trong kết quả structural_search, một hàm cục bộ hoặc lambda có thể chồng lên callable chứa nó, và getter cùng setter xuất hiện như chữ ký phương thức.

Bước tiếp theo

Kết nối một kho mã bằng hướng dẫn bắt đầu nhanh, sau đó xem ma trận hỗ trợ trên trang tương thích. Với các codebase di động khác, hãy đọc hướng dẫn Kotlin và hướng dẫn Swift.

Phù hợp nhất

  • > Ứng dụng Flutter có widget, lớp state, repository và service gọi lẫn nhau qua nhiều tệp.
  • > Gói Dart bổ sung hành vi bằng mixin và phương thức extension cho các kiểu được định nghĩa ở nơi khác.
  • > Mã Dart phía máy chủ và dòng lệnh dùng chung model với một ứng dụng khách Flutter.

Workflow agent

  • > Tìm mọi nơi gọi một phương thức của repository hoặc service trước khi đổi API của nó.
  • > Liệt kê các lớp triển khai một interface trước khi thêm thành viên mới.
  • > Lần theo cách một thao tác chạm trên widget đi tới tầng mạng.

Chi tiết engine

  • > Hỗ trợ Dart bao quát các tệp `.dart`. Lớp, mixin và extension là kiểu; constructor gồm dạng sinh, `const` và `factory`.
  • > Import chuẩn hóa các chỉ thị `import`, `part` và `library`; lời gọi qua tiền tố import vẫn nằm trong đồ thị.
  • > Việc gán kiểu cho receiver theo dõi tham số, biến, getter và vòng lặp `for`-`in`; khoảng 200 tên thư viện lõi bị lọc khỏi quan hệ.

Điểm khởi đầu MCP hữu ích

  • find_symbol

    Dùng cho lớp widget, repository hoặc service khi bạn cần định nghĩa và các tham chiếu.

  • dependency_search

    Dùng duyệt theo chiều vào trên một phương thức repository hoặc interface để thấy nơi gọi và nơi triển khai trước khi đổi API.

  • get_task_context

    Dùng cho prompt như "lần theo cách nút thanh toán đi tới API thanh toán".