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

Swift trên Maguyva: đồ thị mã cho iOS và macOS

Maguyva hỗ trợ Swift với AST, ký hiệu và đồ thị, để agent AI có thể lần theo protocol, extension, initializer và observer trong mã iOS và macOS.

Vì sao Swift cần nhiều hơn tìm kiếm tệp

Swift trải một kiểu ra nhiều nơi. Một struct được khai báo ở một tệp, nhận thêm hành vi từ extension ở ba tệp khác, và tuân thủ các protocol được định nghĩa trong một package. Thay đổi trạng thái ẩn trong thuộc tính tính toán và observer willSet / didSet. Một agent đọc từng tệp một sẽ bỏ lỡ phần lớn những điều đó.

Maguyva lập chỉ mục cấu trúc này, để agent thấy cùng lúc thành viên, sự tuân thủ và nơi gọi của một kiểu.

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

Maguyva bao phủ .swift. Ký hiệu có thể gọi bao gồm hàm, init và deinit, subscript, getter và setter của thuộc tính tính toán, và observer willSet / didSet, để mã thay đổi trạng thái có thể được tìm như ký hiệu thay vì bị lẫn trong thân thuộc tính.

Thành viên khai báo trong struct, enum, protocol và extension được định danh theo kiểu sở hữu (ví dụ CartStore.add), và thành viên được thêm trong extension được gán cho kiểu được mở rộng. Tham số generic, danh sách tuân thủ protocol và hậu tố ? / ! được bỏ khỏi tên định nghĩa, nên tìm kiếm dùng tên trần. Lời gọi giữ self. và định danh lớp, và trailing closure được tính vào số đối số của lời gọi.

Đồ thị ghi lại lời gọi, tuân thủ protocol, kế thừa, ghi đè, khởi tạo, attribute, tham chiếu kiểu, đọc và ghi, cùng các cạnh throw.

Ví dụ prompt cho agent

  • “Những kiểu nào tuân thủ PaymentProvider, và mỗi kiểu được tạo ở đâu?” (dependency_search)
  • “Ai gọi CartStore.add, và từ những view nào?” (find_symbol, sau đó dependency_search theo chiều vào)
  • “Giải thích cách một thông báo đẩy tới được màn hình hộp thư.” (get_task_context)

Giới hạn đã biết

  • Chỉ mã nguồn .swift được ánh xạ. Tệp Storyboard và XIB không có trong danh sách phần mở rộng, nên các kết nối Interface Builder nằm ngoài đồ thị.
  • Các lời gọi thư viện chuẩn và Foundation như print, debugPrint, NSLog và assertion bị lọc khỏi quan hệ, nên chúng không phải là cạnh đồ thị. Dùng text_pattern_search cho chúng.

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. Nếu bạn phát hành cùng sản phẩm trên Android, hãy đọc hướng dẫn Kotlin.

Phù hợp nhất

  • > Các nhóm iOS và macOS có target ứng dụng lớn và package Swift dùng chung.
  • > Codebase xây quanh protocol và extension, nơi hành vi của một kiểu trải rộng trên nhiều tệp.
  • > Quy trình agent cần phân tích tác động trước khi thay đổi một model, service hoặc protocol dùng chung.

Workflow agent

  • > Tìm mọi kiểu tuân thủ một protocol trước khi một yêu cầu của nó thay đổi.
  • > Lần theo nơi gọi một phương thức service qua các ViewModel, coordinator và package.
  • > Tìm initializer, thuộc tính tính toán và observer `didSet` chạm vào một trạng thái.

Chi tiết engine

  • > Ký hiệu có thể gọi bao gồm hàm, `init`, `deinit`, subscript, getter và setter của thuộc tính tính toán, và observer `willSet` / `didSet`.
  • > Thành viên của struct, enum, protocol và extension được định danh theo kiểu sở hữu, như `CartStore.add`.
  • > Tham số generic, danh sách tuân thủ protocol và hậu tố `?` / `!` được bỏ khỏi tên định nghĩa, còn lời gọi giữ `self.` và định danh lớp.

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

  • find_symbol

    Dùng với tên kiểu, protocol hoặc phương thức khi bạn cần định nghĩa và các tham chiếu.

  • dependency_search

    Dùng trên một protocol để tìm các kiểu tuân thủ, hoặc theo chiều vào trên một phương thức để tìm nơi gọi.

  • get_task_context

    Dùng cho các prompt như “giải thích cách một thông báo đẩy tới được màn hình hộp thư”.