CLion News: Rilis 2020.1, IDE Lima Tahun, dan Tanya Jawab Online

Halo, Habr!

Begitu banyak yang ingin saya sampaikan hari ini sehingga sulit untuk memilih dari mana harus memulai. Jadi pertama, saya akan mencoba secara singkat tentang semua yang paling penting:

  1. CLion berusia 5 tahun kemarin! Untuk menghormati liburan ini, kami memasang sebuah video kecil, sebuah kenangan aneh dan sebuah cerita tentang betapa menariknya segalanya telah berkembang bagi kami selama 5 tahun ini. Segera peringatkan cerita dalam bahasa Inggris:


  2. Kemarin, rilis besar pertama produk terjadi tahun ini - CLion 2020.1 . Di dalamnya, kami mendukung dialek CUDA, menulis ulang Analisis Dataflow untuk Dentang, mengajarkan IDE untuk bekerja dengan kompiler Clang-cl dan IAR, dan juga membuat banyak perbaikan dan koreksi lainnya.
  3. Selama beberapa bulan terakhir, tim kami menjadi sangat sedih tanpa konferensi dan pameran terkait, di mana kami selalu senang berada di stan perusahaan dan banyak berkomunikasi dengan pengguna kami dan masyarakat secara keseluruhan. Oleh karena itu, kami memutuskan untuk mengatur sesi tanya jawab online dengan tim - sesi CLion Ask Me Anything (AMA) . Sesi akan diadakan pada tanggal 7 Mei secara real time, penunjukan pendahuluan diperlukan. Bergabunglah dan ajukan pertanyaan tentang produk!

Sekarang mari kita bicara lebih banyak tentang semua acara ini.

CLion - lima!


Anak-anak yang sedang tumbuh selalu mengejutkan dan seringkali tidak terduga bagi orang tua. Ceritanya sama dengan produk - sepertinya baru kemarin kami meluncurkan versi awal dan menghitung mundur untuk merilis 1.0, tapi hari ini kami sudah merayakan tanggal bulat. CLion sekarang memiliki lebih dari 200 ribu pengguna bulanan, termasuk tim dari perusahaan seperti BMW, NASA, Tencent, Tesla dan banyak lainnya, dan tentu saja, kerjasama dengan Google dan Android Studio.

Kami senang dapat mendukung banyak siswa di seluruh dunia yang, bersama CLion, mengambil langkah pertama mereka dalam pengembangan perangkat lunak. Dan sangat senang mengetahui bahwa sepertiga dari tim ICPC di final 2019 juga menggunakan CLion!

Alat ICPC Final

Kegembiraan dengan setiap rilis baru, tanggung jawab untuk sejumlah besar pengguna kami, kesatuan tim yang melakukan pekerjaan dengan baik - semua ini membuat kami kewalahan, dan kami senang berbagi peringatan kecil pertama kami dengan seluruh komunitas Habr! Kami harap Anda menikmati film;)

CLion 2020.1


Ini mungkin bukan yang terbesar pada skala periode lima tahun terakhir, tapi kami pasti merilis rilis penting kemarin. Mari kita bicara tentang perubahan paling penting:

  • Dukungan dialek CUDA.
  • Untuk pengembang tertanam, dukungan kompiler IAR dan plug-in untuk integrasi dengan PlatformIO.
  • Integrasi yang diperbarui dengan alat-alat Clang - Migrasi DFA ke Clangd, peningkatan penyelesaian otomatis, kerja yang lebih dekat dengan Clang-Tidy dan ClangFormat.
  • Untuk pengembang di Windows - dukungan untuk compiler Clang-cl dan debugger default.
  • Nilai parameter default di Ubah tanda tangan refactoring.
  • Konfigurasi startup dan debugging yang lebih nyaman, termasuk pengalihan input dan dukungan makro IDE.
  • Pembaruan formatter, perbaikan editor, dan banyak lagi.

Cuda


CLion sekarang mendukung dialek CUDA C / C ++. Dukungan meliputi:

  • parser kode yang benar (untuk mengecualikan kode "merah" dan operasi yang salah dari penganalisa kode);
  • menyoroti dan berbagai tindakan cerdas, seperti navigasi dan melihat dokumentasi;
    CUDA quick doc
  • wizard yang diperbarui untuk membuat proyek baru - sekarang termasuk template untuk proyek CUDA;

    Proyek baru CUDA
  • dukungan untuk ekstensi file CUDA (.cu / .cuh);
  • target CMake khusus untuk CUDA - dialog untuk menambahkan file baru sekarang akan menawarkan untuk menambahkannya tidak hanya untuk target yang sesuai yang dibuat oleh perintah CMake biasa, tetapi juga khusus untuk CUDA ( cuda_add_executable/ cuda_add_library);

    CUDA menambah target
  • dan bahkan pelengkapan otomatis untuk kurung sudut untuk panggilan kernel:

    Penyelesaian CUDA

Catatan: untuk pengujian dan tangkapan layar, proyek CUDA ini digunakan dengan GitHub: ClaraGenomicsAnalysis .

Kami ditanya mengapa kami begitu fokus pada CUDA, dan bukan pada area spesifik lainnya, seperti Qt. Singkatnya, tentu saja, kami ingin mendukung semua jenis proyek C / C ++ di IDE kami. Tetapi dalam kondisi sumber daya yang terbatas, Anda harus membuat pilihan dan lebih fokus pada mendukung kemampuan yang paling universal. Dialek seperti CUDA, jika tidak didukung "out of the box," maka mengarah pada kode merah, kesalahan penganalisa kode, dan masalah lain dengan kemampuan dasar IDE. Tidak seperti Qt, di mana parser umum berupaya dengan kode dan hanya kekurangan beberapa fitur tertentu.

Untuk Pengembang Tertanam


Kami terus mendukung pengembang sistem tertanam. Melalui kolaborasi dengan IAR Systems AB, kami dapat memperoleh lisensi kemitraan dan menambahkan dukungan kompiler IAR ke CLion. Sebelumnya, kami tidak dapat membaca informasi dari kompiler dengan benar dan proyek seperti itu tidak dimuat dengan benar di CLion. Sekarang semuanya berfungsi!

Kompiler Iar

Perlu dicatat bahwa untuk menggunakan kompiler, Anda perlu menggunakan toolchain MinGW. Dan di sini Anda dapat menemukan beberapa tips tentang cara menggunakan CMake dengan IAR Embedded Workbench.

Kami akan terus bekerja dengan IAR Systems AB, dan semoga suatu hari CLion juga akan memiliki dukungan untuk debugger mereka.

Dari rilis CLion pertama, kami berbicara dengan pencipta PlatformIO, ekosistem unik untuk memulai proyek dengan cepat untuk sistem tertanam. Misalnya, dia membantu banyak orang untuk memulai proyek pertama di Arduino. Untuk rilis 2020.1, kami telah mengumpulkan, walau plugin PlatformIO untuk CLion yang cukup mendasar namun bermanfaat . Peluang terpentingnya adalah membuat proyek untuk PlatformIO berdasarkan CMake, cukup pilih jenis proyek ini di Panduan Buat Proyek Baru:

Plugin PlatformIO

Plugin ini secara otomatis membuat konfigurasi peluncuran dan debug khusus untuk PlatformIO, dan juga memungkinkan Anda untuk debug menggunakan PIO Unified Debugger langsung dari CLion Informasi lebih lanjut dapat ditemukan di dokumentasi resmi . Coba dan tulis keinginan Anda untuk pengembangan lebih lanjut - kami sekarang hanya ingin tahu di mana dan bagaimana mengembangkan plugin ini lebih lanjut.

Integrasi Alat Dentang Diperbarui


Seperti yang sudah Anda ketahui, kami secara aktif porting lebih banyak fitur ke mesin bahasa berbasis Clangd. Pertama, dengan cepat mendapatkan dukungan untuk fitur bahasa baru dan mengadaptasi tindakan IDE untuk mereka, dan kedua, dalam beberapa kasus untuk meningkatkan kinerja editor (tidak di mana-mana, sayangnya, Clangd adalah alat universal).

Dalam rilis 2020.1, kami menghabiskan banyak waktu untuk perbaikan pelengkapan otomatis berbasis Clangd (muncul di versi 2019.3). Dan, setelah memutuskan bahwa hasil dari pendekatan ini cukup bagus, mereka mengaktifkan mode default di mana opsi untuk penyelesaian otomatis diambil sepenuhnya dari Clangd. Anda dapat mengaktifkan mode operasi campuran dalam pengaturan:

Selesai dentang

Tetapi kami tidak merekomendasikan melakukan ini tanpa alasan yang baik, karena menggabungkan hasil dari dua penyedia yang berbeda dapat menyebabkan masalah dengan prioritas. Selain itu, dilihat dari pengukuran kami, pelengkapan otomatis baru berdasarkan Clangd tidak lebih lambat, tetapi seringkali lebih cepat daripada yang terpasang.

Clangd juga pindah analisis aliran data (DFA) dalam rilis ini. Penganalisa ini layak mendapatkan artikel terpisah, karena ia dapat dan tidak melakukan apa yang biasanya tidak dilakukan oleh penyusun (terutama karena mereka tidak membutuhkannya, walaupun secara teoritis dimungkinkan untuk mereproduksi di pihak mereka) - menganalisis bagaimana data bergerak di sepanjang grafik aliran kontrol dan, Berdasarkan pengetahuan ini, ditemukan potensi kesalahan. Misalnya, kondisi yang selalu benar atau salah, rekursi dan loop tak terbatas, ekspresi pengembalian yang hilang, nilai yang tidak digunakan, parameter, dan variabel lokal:

DFA selalu benar

Sekarang semuanya bekerja pada Clangd. Dan kami berharap ini akan meningkatkan kinerja analisis kode pada proyek Anda. Sayangnya, sebelumnya, kami sering harus menyarankan pengguna untuk mematikan analisis DFA secara khusus untuk meningkatkan kinerja editor. Jika ini kasus Anda, kami sarankan Anda menghidupkan kembali alat analisa. Kami akan menunggu tanggapan Anda dalam dukungan teknis dan pelacak kami .

Sebagai tambahan, alat-alat Clang harus mencatat peningkatan dalam dukungan untuk Clang-Tidy dan ClangFormat:

  • Ketika file konfigurasi .clang-rapi ditemukan di proyek, CLion secara otomatis menonaktifkan pengaturan Clang-Tidy di IDE dan beralih untuk menggunakan file konfigurasi ini. Perilaku didorong oleh penyesuaian.
  • .clang-format CLion ClangFormat . ClangFormat, , CLion , .

Windows


Jika di Linux dan macOS, CLion toolchain cukup sederhana untuk dipilih (kami menggunakan GCC atau Dentang), maka pada Windows ada banyak pilihan yang tidak mudah diketahui: Cygwin, MinGW / Mingw-w64, WSL, Visual Studio. Pada saat yang sama, kompiler yang berbeda sering digunakan dalam setiap toolchain. Kami telah lama ditanya tentang kemungkinan menggunakan Dentang pada Windows. Dan dalam CLion 2020.1, menjadi mungkin untuk mengambil Clang-cl (baik dari situs web LLVM resmi, atau bersama-sama dengan alat Visual Studio) dan menggunakannya dalam rantai alat Visual Studio:

Dentang-cl

Omong-omong, apakah Anda melihat debugger dipilih secara default di dialog ini? Debugger berbasis LLDB yang sama untuk toolchain Microsoft Visual C ++ yang dikembangkan tim kami dan yang kami perkenalkan tahun lalu dimasukkan dalam versi baru secara default! Namun, jika Anda juga ingin menggunakan dukungan Native Visualizers, Anda masih perlu mengaktifkannya secara eksplisit di pengaturan: Pengaturan | Bangun, Eksekusi, Penempatan | Tampilan Data Debugger | Aktifkan penyaji NatVis untuk LLDB.

Refactoring Change Signature


Di antara banyak refactorings di CLion, Change Signature menonjol (Ctrl + F6 pada Windows dan Linux, ⌘F6 pada macOS). Ini memungkinkan Anda untuk mengubah nama fungsi, tipe pengembalian, daftar parameter. Dengan demikian, IDE memperbarui semua penggunaan fungsi untuk menjaga kebenaran kode. Tetapi bagaimana jika Anda menambahkan parameter baru? Sebelumnya, CLion meletakkan nilai standar tipe dalam semua penggunaan (jika ada) - 0untuk angka, nullptruntuk pointer. Sekarang, dari versi 2020.1, menjadi mungkin untuk menentukan nilai yang akan diganti CLion untuk menggunakan fungsi secara langsung dalam dialog refactoring:

Ubah tanda tangan
Jika Anda tidak menentukan apa-apa, maka perilaku akan seperti sebelumnya.

Konfigurasi Startup dan Debug


Banyak peningkatan kecil pada konfigurasi startup dan debugging di CLion membuatnya lebih bermanfaat.

Pertama, konfigurasi Remote GDB Server dan Embedded GDB Server sekarang berfungsi dengan target khusus, bukan hanya target CMake. Jadi sekarang mungkin untuk melakukan debug pada mesin jarak jauh atau pada mikrokontroler tidak hanya dalam kasus proyek berbasis CMake, tetapi juga untuk semua jenis proyek yang Anda konfigurasikan target khusus (dengan menentukan perintah build dan pembersihan proyek).

Kedua, untuk konfigurasi seperti CMake, Custom Build, dan Aplikasi Asli Gradle, Anda sekarang dapat menggunakan variabel makro dan path. Dengan bantuan mereka, Anda dapat mengakses banyak nilai berguna:

Macro IDE

Dan akhirnya, opsi untuk mengarahkan input program telah muncul dalam jenis konfigurasi ini. Dalam kombinasi dengan makro Prompt / FilePrompt, ini memungkinkan tidak hanya untuk mengalihkan input ke program dari file, tetapi juga untuk menampilkan dialog untuk memilih file yang akan dimasukkan pada awal konfigurasi:

Pengalihan input

Pembaruan Formatter, Perbaikan Editor, dan Lainnya


Perlu disebutkan beberapa peningkatan poin kecil di berbagai subsistem:

  • Pengaturan penamaan terpisah untuk bidang struktur dan bidang kelas.
  • Kemampuan untuk menutup blok kode yang disorot dengan #pragma region/ #pragma endregion.
  • Jendela tampilan dokumentasi sekarang tidak hanya dapat dipanggil dengan cara pintas, tetapi juga dapat dilihat hanya dengan mengarahkan kursor ke simbol yang diinginkan.
  • Font default di IDE sekarang adalah JetBrains Mono , font monospace baru dari JetBrains yang dirancang khusus untuk pengembang untuk membantu mengoptimalkan pembacaan kode.
  • Tema cahaya default sekarang sama di ketiga platform - IntelliJ Light.
  • Sesi terminal dapat dibagi menjadi beberapa secara horizontal atau vertikal. Dengan demikian, beberapa sesi dapat dilihat secara bersamaan dalam satu tab.
  • Dari platform IntelliJ, peningkatan juga datang dalam integrasi dengan sistem kontrol versi .

CLion Ask Me Anything


Sesi tanya jawab online dengan pengembang dari tim CLion dijadwalkan 7 Mei. Sesi ini akan dihadiri oleh anggota tim yang bertanggung jawab untuk subsistem berikut:

  • C C++, Clangd, C++ CLion.
  • .
  • .
  • ( , ClangFormat).
  • .
  • .
  • .

Sesi ini gratis, tetapi pra- registrasi diperlukan . Kami juga meminta Anda untuk berpikir terlebih dahulu dan, jika mungkin, tinggalkan pertanyaan untuk tim dalam formulir pendaftaran. Akan ada kesempatan untuk mengajukan pertanyaan selama sesi, melalui formulir khusus (dan saya akan memoderasi ini dan mengajukan pertanyaan kepada kolega), tetapi pertanyaan yang diajukan di muka lebih mungkin untuk menerima jawaban terperinci di awal sesi.

Itu saja untuk hari ini. Baca sampai akhir? Terima kasih banyak atas perhatiannya! Tulis pertanyaan, saran, seru di komentar - kami selalu senang membaca dan menjawabnya!

CLion
Drive to Develop Team

All Articles