MPS 2019.2: enumerasi tipe data, penyesuaian pesan kesalahan, transisi ke JDK 11 dan banyak lagi

Dalam MPS 2019.2, kami telah menyiapkan untuk Anda banyak fitur baru di berbagai subsistem dan memperbaiki sejumlah kesalahan .

gambar

Unduh MPS 2019.2

Jenis Data yang disebutkan


Cara baru untuk mendeklarasikan tipe data enumerasi memungkinkan Anda untuk menentukan daftar opsi dalam bentuk yang kompak dengan menentukan nilai yang disebutkan untuk setiap opsi. Jika perlu, Anda dapat mengonfigurasi cara beberapa nilai ditampilkan atau pilih nilai default yang akan digunakan jika properti belum secara eksplisit diatur ke nilai apa pun.

gambar

Kami juga meningkatkan aspek bahasa SModel terkait bekerja dengan properti dari jenis yang disebutkan. Sekarang, ketika membaca dan menulis properti, contoh yang diketik dari anggota enumerasi digunakan alih-alih nilai dasar awal, yang membantu pengembang menulis kode dengan lebih sedikit kesalahan.

gambar

Selain itu, kami telah mendesain ulang semua operasi yang dilakukan dengan tipe yang disebutkan.

gambar

Pernyataan Enum Switch telah ditambahkan ke bahasa SModel untuk beberapa pilihan anggota enumerasi. Itu juga dapat digunakan sebagai ekspresi untuk menghitung berbagai nilai tergantung pada anggota enumerasi yang memenuhi persyaratan.

gambar

Menyesuaikan Pesan Kesalahan


Untuk beberapa waktu sekarang, kami telah menerima permintaan untuk mengimplementasikan kemampuan untuk mengkonfigurasi beberapa pesan kesalahan di MPS. Karena permintaan dari salah satu pelanggan komersial kami, kami dapat memberikan fungsionalitas ini prioritas tertinggi. Sekarang Anda dapat mengonfigurasi semua pesan kesalahan yang terkait dengan kendala pemeriksaan. Dalam versi yang akan datang, kami akan membuat opsi penyesuaian ini tersedia untuk jenis kesalahan lainnya.

Dalam versi ini, kami telah menambahkan aspek baru dari bahasa yang disebut umpan balik. Aspek ini dapat digunakan untuk menyesuaikan teks pesan kesalahan yang terkait dengan memeriksa struktur, pembatasan properti, dan ruang lingkup.

gambar

Misalnya, ShowMessage mendefinisikan teks yang muncul di tooltip yang muncul ketika Anda mengarahkan kursor ke simpul masalah.

gambar

Harap dicatat: Anda dapat mengatur umpan balik Anda dengan memperluas rangkaian bahasa umpan balik yang disediakan. Misalnya, Anda bisa menggambarkan umpan balik yang akan menyorot tepi atau simpul dalam editor bagan.

Untuk menerima pesan kesalahan khusus untuk pembatasan canBe *, gunakan bahasa pembatasan berbasis aturan.

gambar

Bahasa Kendala Berbasis Aturan


Kami telah membuat bahasa pembatasan berbasis aturan yang di masa depan akan menggantikan pembatasan canBe * yang saat ini tersedia dari bahasa pembatasan MPS standar. Saat ini, bahasa kendala berbasis aturan adalah fungsi eksperimental, sehingga kemungkinan akan banyak berubah di rilis mendatang.

gambar

Saat ini, versi sebelumnya dari pembatasan tetap menjadi prioritas, oleh karena itu, untuk memperkenalkan pembatasan berdasarkan aturan, pembatasan canBe * lama harus sepenuhnya dihapus. Bahasa baru untuk mendefinisikan kendala lebih bersifat deklaratif, ia membutuhkan menentukan satu set kendala terisolasi (aturan) daripada satu blok bersyarat tunggal.

Dalam versi 2019.2, ini memungkinkan Anda untuk menerima pesan kesalahan individual untuk setiap aturan secara individual.

gambar

Riwayat root


Sekarang ada tindakan baru di menu Git yang memungkinkan Anda untuk menampilkan riwayat perubahan VCS untuk root tertentu. Tindakan ini tersedia dari menu konteks editor:

gambar

Perhatikan bahwa mengumpulkan data riwayat root, seperti tindakan VCS terkait riwayat lainnya, memakan waktu. Ada bilah kemajuan di bilah status untuk membantu Anda mengevaluasi waktu yang dihabiskan.

Kotak dialog mirip dengan dialog History Selection di IntelliJ IDEA:

gambar

Kotak dialog menampilkan daftar revisi file model di mana akar yang sesuai telah diubah.

Pencarian Data


Pencarian teks lengkap berdasarkan nilai properti sekarang tersedia. Tindakan Edit–> Temukan–> Temukan Teks dalam aksi Proyek (Ctrl + Alt + Shift + F) memungkinkan Anda untuk menemukan node dengan properti yang nilainya berisi teks yang ditentukan.

gambar

Periksa kesalahan spesifik


Satu kasus penggunaan umum untuk menulis bahasa uji adalah memeriksa node untuk pesan kesalahan dan peringatan. Dalam beberapa kasus, subsistem pengujian MPS tidak membedakan antara berbagai jenis kesalahan yang mempengaruhi simpul yang sama. Ini dapat menyebabkan kebingungan: bahkan jika pengguna secara eksplisit menunjukkan jenis kesalahan yang diharapkan dalam anotasi tes, kesalahan dan peringatan lainnya yang mempengaruhi node yang sesuai tidak menghasilkan kesalahan pengujian.

Ingatlah bahwa ketika meningkatkan ke versi baru, beberapa tes mungkin gagal, karena sekarang mereka hanya akan menekan peringatan dan kesalahan yang ditunjukkan pengguna dalam anotasi pemindaian.

gambar

Templat dalam definisi aturan validasi


Jika Anda menetapkan aturan validasi untuk sebuah konsep, itu akan dipanggil untuk setiap node yang merupakan turunan dari konsep itu.

Sekarang, alih-alih mengganti setiap aturan yang diwarisi dari konsep induk, Anda dapat secara eksplisit menentukan daftar aturan yang perlu didefinisikan ulang. Kami sangat menyarankan Anda meninjau semua aturan validasi Anda yang menggunakan fungsi override dan menunjukkan aturan mana yang harus didefinisikan ulang.

Sebelumnya, Anda bisa menetapkan aturan validasi untuk konsep menggunakan bahasa templat. Fitur ini berfungsi untuk membatasi kondisi penerapan aturan (dibandingkan dengan aturan yang didefinisikan secara eksklusif untuk konsep), serta untuk penamaan yang mudah untuk properti, anak-anak dan cucu, dll. Untuk kedua tujuan, penggunaan bahasa templat di dalam badan aturan cocok, khususnya, penggunaan operator pertandingan di bagian atas blok do:

gambar

Di masa mendatang, kami tidak berencana untuk mendukung aturan validasi dengan templat di header, jadi kami sarankan Anda menemukan kasus tersebut dan memindahkan templat ke badan aturan menggunakan tindakan khusus.

Java 11 sebagai runtime


MPS sekarang akan berjalan di JDK 11. Ini akan mempengaruhi mekanisme pemuatan model rintisan. Sebagian besar proyek Anda tidak perlu dimigrasi, kecuali dalam kasus yang jarang terjadi di mana beberapa kelas dan bidang telah dikemas ulang di JDK 11.

Saat menggunakan plugin untuk IntelliJ IDEA, modul dengan MPS Facet sekarang harus dikaitkan dengan JDK versi 11. Jika tidak, pembuatan kode akan gagal.

Jenis Fasad API Fasad


Sekarang pengecekan tipe hanya dapat dilakukan dengan API fasad baru.

API Baru: lihat jetbrains.mps.typechecking.TypecheckingFacade dan kelas terkait.

API yang tidak digunakan lagi: jetbrains.mps.typesystem. * Paket hierarki sekarang sudah tidak digunakan lagi. Menggunakan kelas-kelas dari hierarki ini tidak dianjurkan, dengan pengecualian kode yang secara otomatis dihasilkan dari isi dari aspek typesystem.

Perubahan yang direncanakan dalam rilis mendatang


Berikut ini adalah ikhtisar awal dari perubahan yang mempengaruhi dukungan sistem tipe:

  • Aspek yang bertanggung jawab untuk mengimplementasikan sistem tipe dan bahasa yang digunakan di dalamnya akan usang. Seiring waktu, bahasa dan dukungannya dalam runtime akan dipindahkan ke plugin terpisah.
  • Sebuah aspek baru akan ditambahkan yang secara efektif akan menggantikan bagian sistem non-tipe dari aspek typesystem. Migrasi akan diberikan untuk mengekstraksi aturan validasi dari aspek sistem huruf lama.
  • Kerangka kerja pemeriksaan tipe baru akan diimplementasikan dengan dukungan dari runtime, sebagai akibatnya mekanisme usang akan ditulis ulang dari awal.

Perakitan di latar belakang


Kami meningkatkan respons antarmuka selama pembuatan latar belakang. Jika proses build dikirim ke latar sekali, itu akan selalu dilakukan di latar selama eksekusi berikutnya. Tindakan disimpan di menu Preferensi-> Pengaturan Proyek-> Lakukan di latar belakang.

Bahasa dasar


Salah satu tujuan utama dari rilis ini adalah untuk meningkatkan BaseLanguage. Kami memperbaiki sejumlah masalah yang memengaruhi bahasa BaseLanguage, dari bug hingga masalah yang memengaruhi kegunaan.

Periksa ejaan dalam komentar BL


Pengecekan ejaan sekarang tersedia untuk komentar baris tunggal, teks Javadoc, dan string literal.

Proyek sampel baru


Kami memperhitungkan keinginan komunitas dan menambahkan proyek sampel baru dengan generasi XML.

Konfigurasi Git Lokal


Sekarang pengaturan driver gabungan bukan global, tetapi lokal (terpisah untuk setiap repositori Git), sehingga setiap salinan MPS yang terinstal dapat memiliki driver gabungannya sendiri.

Anda dapat mengunduh versi ini di sini , kami harap Anda menikmatinya. Silakan laporkan masalah apa pun kepada kami di pelacak kami .

Tim MPS JetBrains Anda
Dorongan untuk berkembang

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


All Articles