Langkau ke kandungan
cd /languages
  • Platform Apple
  • Pengaturcaraan
  • Sokongan AST dan simbol

Swift dalam Maguyva: graf kod untuk iOS dan macOS

Maguyva menyokong Swift dengan AST, simbol dan graf, supaya ejen AI boleh menjejak protocol, extension, pemula dan pemerhati dalam kod iOS dan macOS.

Mengapa Swift memerlukan lebih daripada carian fail

Swift menyebarkan satu jenis ke banyak tempat. Sesuatu struct diisytiharkan dalam satu fail, mendapat tingkah laku daripada extension dalam tiga fail lain, dan mematuhi protocol yang ditakrifkan dalam sesuatu pakej. Perubahan keadaan tersembunyi dalam sifat terkira dan pemerhati willSet / didSet. Ejen yang membaca satu fail pada satu masa terlepas kebanyakan perkara ini.

Maguyva mengindeks struktur ini, supaya ejen melihat ahli, pematuhan dan pemanggil sesuatu jenis secara serentak.

Apa yang diekstrak oleh Maguyva daripada Swift

Maguyva meliputi .swift. Simbol boleh panggil merangkumi fungsi, init dan deinit, subscript, getter dan setter sifat terkira, serta pemerhati willSet / didSet, supaya kod yang mengubah keadaan boleh dicari sebagai simbol dan tidak hilang di dalam badan sifat.

Ahli yang diisytiharkan dalam struct, enum, protocol dan extension dilayakkan dengan jenis pemiliknya (contohnya CartStore.add), dan ahli yang ditambah dalam extension dikaitkan dengan jenis yang dilanjutkan. Parameter generik, senarai pematuhan protocol dan akhiran ? / ! dibuang daripada nama definisi, jadi carian menggunakan nama asal. Panggilan mengekalkan self. dan pelayak kelas, dan trailing closure dikira dalam ariti panggilan.

Graf merekodkan panggilan, pematuhan protocol, pewarisan, penggantian, penginstansian, atribut, rujukan jenis, bacaan dan tulisan, serta tepi throw.

Contoh gesaan ejen

  • “Jenis mana yang mematuhi PaymentProvider, dan di mana setiap satunya dicipta?” (dependency_search)
  • “Siapa yang memanggil CartStore.add, dan daripada paparan mana?” (find_symbol, kemudian dependency_search arah masuk)
  • “Terangkan cara pemberitahuan push sampai ke skrin peti masuk.” (get_task_context)

Had yang diketahui

  • Hanya sumber .swift dipetakan. Fail Storyboard dan XIB tiada dalam senarai sambungan, jadi sambungan Interface Builder berada di luar graf.
  • Panggilan pustaka standard dan Foundation seperti print, debugPrint, NSLog dan penegasan ditapis daripada hubungan, jadi ia bukan tepi graf. Gunakan text_pattern_search untuknya.

Langkah seterusnya

Sambungkan repositori dengan panduan permulaan pantas, kemudian semak matriks sokongan di halaman keserasian. Jika anda melancarkan produk yang sama di Android, baca panduan Kotlin.

Paling sesuai

  • > Pasukan iOS dan macOS dengan sasaran aplikasi yang besar dan pakej Swift kongsi.
  • > Pangkalan kod yang dibina di sekitar protocol dan extension, tempat tingkah laku sesuatu jenis tersebar di banyak fail.
  • > Aliran kerja ejen yang memerlukan analisis impak sebelum model, perkhidmatan atau protocol kongsi berubah.

Aliran kerja ejen

  • > Mencari setiap jenis yang mematuhi sesuatu protocol sebelum salah satu keperluannya berubah.
  • > Menjejak pemanggil kaedah perkhidmatan merentas ViewModel, penyelaras dan pakej.
  • > Mencari pemula, sifat terkira dan pemerhati `didSet` yang menyentuh sesuatu keadaan.

Butiran enjin

  • > Simbol boleh panggil merangkumi fungsi, `init`, `deinit`, subscript, getter dan setter sifat terkira, serta pemerhati `willSet` / `didSet`.
  • > Ahli struct, enum, protocol dan extension dilayakkan dengan jenis pemiliknya, seperti `CartStore.add`.
  • > Parameter generik, senarai pematuhan protocol dan akhiran `?` / `!` dibuang daripada nama definisi, dan panggilan mengekalkan `self.` serta pelayak kelas.

Titik masuk MCP yang berguna

  • find_symbol

    Gunakan dengan nama jenis, protocol atau kaedah apabila anda memerlukan definisi dan rujukan.

  • dependency_search

    Gunakan pada protocol untuk mencari jenis yang mematuhinya, atau arah masuk pada kaedah untuk mencari pemanggil.

  • get_task_context

    Gunakan untuk gesaan seperti “terangkan cara pemberitahuan push sampai ke skrin peti masuk”.