AppCode 2019.2: Swift 5.1, analisis cakupan kode dengan tes, tampilan kode dibongkar dan banyak lagi

Astrolog telah mengumumkan satu minggu rilis di JetBrains, jumlah posting blog telah tiga kali lipat! Bahkan, ini juga merupakan postingan rilis, jadi jika Anda berpartisipasi dalam EAP, Anda sudah tahu segalanya.


Jika tidak, pastikan untuk memeriksa potongannya, karena dalam rilis ini kami tidak hanya memiliki analisis cakupan kode dengan tes dan tampilan kode yang dibongkar, tetapi juga dukungan DSL untuk Ruby dan banyak hal menarik lainnya!


Jalankan dengan menjalankan



Cepat


Dukungan bahasa


Mulai mendukung Swift 5.1:


  • SE-0242 : Mensintesis nilai default untuk penginisialisasi anggota.
  • SE-0254 : Subskrip statis dan kelas.
  • SE-0068 : Memperluas Swift Self ke anggota kelas dan tipe nilai.
  • SE-0260 : Evolusi Perpustakaan untuk ABI yang Stabil.
  • SE-0258 : Pembungkus Properti

Sementara dalam prosesnya, tingkat kesiapan dapat dilihat di sini .


Lipat kode


Apakah penutupan lipat:


Penutupan lipat


Lampu latar


Anda tidak bisa hanya mengambil dan menyorot sebaris kode tanpa mengetahui entitas spesifik apa yang kita hadapi. Oleh karena itu, penyorotan penuh hanya mungkin dilakukan setelah pembangunan cache yang lengkap. Tapi kami tahu kata kunci bahasa sebelumnya dan dapat menyorotinya - sekarang mereka disorot untuk Swift, bahkan jika pengindeksan dengan caching belum berakhir:


Kata kunci


Pembuatan Elemen Pencacahan


Kami terus memperluas cakupan Create From Usage : sekarang Anda dapat membuat elemen enumerasi dari penggunaannya dalam kode, cukup dengan menekan ⌥⏎:


Buat dari penggunaan


Pencarian Penggunaan


Pencarian kegunaan di AppCode mencari konstruksi kode spesifik (variabel, kelas, fungsi, metode kelas, dll.) - ini memungkinkan Anda untuk mempersempit area pencarian dibandingkan dengan teks lengkap. Sampai saat ini, untuk Swift kami hanya menampilkan tempat desain tertentu digunakan. Pada 2019.2, kami menerapkan pengelompokan penggunaan berdasarkan jenis, jadi sekarang kami dapat dengan cepat memahami juga bagaimana kami menggunakan variabel, fungsi atau kelas:


Temukan penggunaan


Menggabungkan baris kode


Tidak ada yang istimewa, sekarang Anda dapat menempelkan deklarasi dan inisialisasi variabel menggunakan Join Lines ( ⌃⇧J ):


Bergabunglah dengan garis


Impor Otomatis


Ada semacam sistem build - BUCK . Sistem BUCK build secara default menggunakan peta header, dukungan yang kami tambahkan setahun yang lalu, tetapi tidak punya waktu untuk memasukkannya ke impor otomatis. Akibatnya, setelah menekan ⌥⏎, jalan panjang ke header dimasukkan, yang sama sekali tidak perlu. Sekarang ini tidak terjadi, sekarang semuanya benar.


Debugging


Tampilan kode dibongkar


Kolega dari CLion membuat pemetaan kode yang dibongkar untuk LLDB di versi 2019.1, dan kami kreatif menggunakannya kembali dalam rilis ini:


Tampilan pembongkaran


Penyelesaian otomatis


Hal lain yang bermanfaat yang awalnya dibuat di CLion adalah pelengkapan otomatis dari perintah debugger di konsol LLDB dengan menekan ⇥ (sama seperti di konsol biasa):


Perintah LLDB selesai


Uji kode analisis cakupan


Akhirnya dilakukan, dan dilakukan dengan baik. Kami memilih konfigurasi pengujian, klik Jalankan Dengan Cakupan dan biarkan untuk menyelesaikan tes, kami senang dengan hasilnya:


Jalankan dengan menjalankan


Di sebelah kiri dalam editor adalah hasil liputan:


Hasil liputan


Dengan mengklik pada indikator warna, piring ditampilkan dengan jumlah panggilan di bagian kode dan tindakan yang bermanfaat:


Hit hit


Statistik cakupan ditampilkan secara singkat di tampilan Proyek , dan lebih detail di jendela terpisah:


Jendela alat


Bangun, jalankan, debug, dan uji selama pengindeksan


Mengindeks dan membuat cache bukan proses yang cepat, terutama pada proyek-proyek besar dan terutama indeksasi pertama. Namun demikian, Anda dapat melakukan beberapa tindakan dengan proyek saat sedang berlangsung, misalnya, membangun atau menjalankan aplikasi.


Untuk waktu yang lama, tindakan ini diblokir untuk kami, karena untuk penggunaan normal konfigurasi peluncuran perlu terlebih dahulu membuat cache pada proyek. Sebenarnya, ini tidak begitu diperlukan, oleh karena itu, dalam versi 2019.2, kami dengan tegas melepaskan ikatan konfigurasi peluncuran dari caching, dan sekarang Anda dapat mengumpulkan, meluncurkan, men-debug atau menguji proyek segera setelah pembukaannya:


Bangun, Jalankan, Debug, dan Uji selama pengindeksan


Integrasi


Plugin TextMate


Seringkali mereka diminta untuk menambahkan dukungan untuk beberapa bahasa yang bukan yang utama untuk AppCode. Terkadang kami melakukan ini jika kami memahami bahwa banyak pengguna benar-benar membutuhkannya, jadi pada titik tertentu kami menyeret sebagian dari WebStorm ke diri kami sendiri, sehingga pengembang di React Native dan PhoneGap akan merasa nyaman bekerja dengan HTML / CSS / JavaScript.


Kemudian datang plugin untuk Markdown , karena README apa pun harus dapat dengan mudah dan cepat mengedit. Ada juga plug-in untuk AppleScript yang dibuat oleh salah satu rekan hanya karena dia tertarik untuk menulis dukungan bahasa.


Tetapi Anda tidak dapat menjejalkan besarnya, karena itu kami tidak dapat menerapkan dukungan untuk semua bahasa. Misalnya, dalam pengembangan iOS, DSL yang dibuat di Ruby sering ditemukan (CocoaPods dan Fastlane mengkonfigurasi). Awalnya, permintaan terdengar seperti "nyalakan seluruh dukungan Ruby", tetapi dalam kenyataannya konfigurasi ini tidak sering diedit, dan menarik setengah-RubyMine karena mereka tampaknya tidak masuk akal. Pada saat yang sama, tidak memiliki dukungan juga tidak baik.


Dalam rilis ini, kolega dari WebStorm memasukkan plug-in dengan instalasi default untuk bundel TextMate, yang memberikan banyak bahasa sorotan sederhana dan pelengkapan otomatis. Kami mengikuti contoh mereka, dan sekarang kami juga memiliki ini:


Plugin TextMate Plugin


Karena beberapa kontradiksi dalam dukungan Fastlane pada bagian bundel ini sendiri, prinsip konfigurasi untuk Ruby DSL tetap sama (namun, Anda dapat membantu memperbaiki situasi ini).


Plugin Script Shell


Skrip umum dalam proyek, jadi kami telah menyertakan dukungan untuk mengeditnya:


Plugin skrip shell


Jendela komit


Lebih tepatnya, tidak ada lagi jendela terpisah - sekarang telah menjadi bagian dari tab Perubahan Lokal:


Jendela komit


Inilah akhirnya. Tuliskan semua pertanyaan dan saran di sini di komentar - dengan senang hati kami akan menjawab!


Tim AppCode

Source: https://habr.com/ru/post/id461949/


All Articles