Halo, Habr!
Suatu hari kami merilis CLion 2018.3. Rilis besar ketiga tahun ini merangkum pekerjaan kami di dua bidang pembangunan yang penting -
meningkatkan dukungan bahasa dan
pengembangan jarak jauh .
Selain itu, kami akhirnya:
- menambahkan alat profiling kode;
- redid perintah dalam editor untuk merakit / menyusun kembali kode pada level satu file, beberapa target, atau keseluruhan proyek;
- Bersama dengan IDE berbasis platform IntelliJ lainnya, mereka menambahkan dukungan untuk submitula Git dan permintaan tarik GitHub;
- peningkatan sarana akses universal ke kemungkinan IDE (aksesibilitas).
Baca lebih lanjut tentang ini dan inovasi lainnya di bawah ini. Dan untuk mencoba fitur dan peningkatan baru, unduh versi 30 hari gratis
dari situs web kami .
Dukungan bahasa C ++
Lebih banyak C ++ 17
CLion parser telah belajar untuk memahami dua fitur baru dari standar
ekspresi C + + 17 dan
panduan deduksi . Di satu sisi, perubahan pada parser belum sepenuhnya mendukung, tetapi setidaknya penyorotan kode akan lebih benar, dan untuk kasus
panduan deduksi yang ditentukan pengguna, IDE bahkan akan menampilkan jenis tersebut dengan benar dan Anda dapat melihatnya, misalnya, saat memanggil informasi tentang parameter fungsi.

Dentang sekarang dalam navigasi
Terakhir kali kami menulis bahwa CLion sekarang menggunakan tidak hanya mesin bahasanya sendiri untuk bekerja dengan kode C / C ++, tetapi juga satu tambahan, percobaan yang dibuat berdasarkan Clangd. Mengaktifkannya untuk menampilkan kesalahan dan peringatan di editor, kami pindah dan di CLion 2018.3 menerapkan beberapa tindakan navigasi kode dan pencarian kode pada dasarnya.
Mesin bahasa Clangd berbasis memberikan hasil yang kemudian digabungkan pula dengan hasil yang diperoleh dari mesin CLion. Contoh khas adalah Cari Penggunaan (
Alt+F7
): Clangd mencari file yang dibuka di editor, dan mesin kami sendiri mencari sisanya.
Contoh tindakan lain yang juga menggunakan mesin bahasa Clangd:
- Pergi ke deklarasi (
Ctrl+B
/ โB
) / Pergi ke definisi ( Ctrl+Alt+B
/ โฅโB
) - Sorot semua inklusi simbol tempat kursor berada
- Dokumentasi Cepat (
Ctrl+Q
/ F1
)
Dentang diaktifkan secara default dan dikonfigurasi dalam Pengaturan / Preferensi | Bahasa & Kerangka Kerja | C / C ++ | Clangd:

Artinya, Anda dapat secara independen mengaktifkan / menonaktifkan fungsionalitas yang diperlukan di atas Dentang - misalnya, hanya menampilkan kesalahan atau hanya navigasi. Jika Anda perlu sepenuhnya menonaktifkan penggunaan Dentang, hapus centang semua kotak dalam dialog ini.
Dan omong-omong, Clang-Tidy dapat dijalankan tanpa Clangd, tetapi meluncurkan melalui Clangd secara signifikan meningkatkan kinerja karena menggunakan pohon AST yang di-cache di Clangd.
Pengembangan jarak jauh
Rilis CLion 2018.1 memperkenalkan kemampuan pada Windows untuk bekerja dengan subsistem Windows Subsystem untuk Linux (WSL). Lingkungan Linux ini, dibangun ke dalam Windows, memungkinkan Anda untuk membangun, menjalankan, dan men-debug aplikasi Linux pada Windows. Kami mengatakan bahwa kami secara khusus mengimplementasikan dukungan untuk WSL melalui ssh, yaitu, sebagai subsistem jarak jauh. Ini adalah langkah pertama untuk bekerja dengan konfigurasi yang sepenuhnya jauh.
Maka dalam CLion 2018.3 kami mengumumkan dukungan untuk versi besar pertama pengembangan jarak jauh:
- Di mesin lokal tempat CLion dijalankan, mungkin Linux, Windows, atau macOS.
- Pada mesin jarak jauh, di mana CLion akan membangun aplikasi Anda, jalankan dan debug itu, jalankan tes, sejauh ini hanya ada Linux.
- Diasumsikan bahwa kode ada di mesin lokal. CLion sendiri menyinkronkannya ke mesin jarak jauh, dan menarik jalur pencarian header kembali ke yang lokal untuk dengan cepat menyelesaikan kode dalam editor. Sinkronisasi dilakukan melalui rsync untuk Linux atau macOS sebagai mesin lokal, dan melalui sftp dan gzip untuk Windows.
- Sejauh ini hanya berfungsi untuk proyek-proyek di CMake.

Menyiapkan konfigurasi jarak jauh seperti itu sangat mudah - Anda hanya perlu membuat rantai alat jarak jauh di Pengaturan / Preferensi | Bangun, Eksekusi, Penempatan | Toolchains dan gunakan di beberapa Profil CMake. Petunjuk terperinci ada di
blog berbahasa Inggris dan
dokumentasi online kami . Kemajuan sinkronisasi dengan host jarak jauh ditampilkan di jendela Transfer File (Lihat | Alat Windows | Transfer File), dan ubah parameter koneksi dan jalur direktori pada mesin jarak jauh di Pengaturan / Preferensi | Bangun, Eksekusi, Penempatan | Penempatan
Banyak pekerjaan yang diharapkan ke arah ini. Sekarang, seperti yang Anda lihat, opsi untuk menemukan kode secara langsung pada mesin jarak jauh tidak didukung, tidak ada dukungan untuk sistem kontrol versi jarak jauh, tidak ada integrasi dengan terminal jarak jauh, dan ada banyak kelemahan kecil dalam koneksi itu sendiri. Tapi yang utama adalah -
pengembangan jarak jauh dengan CLion sekarang mungkin!Analisis Kinerja Kode Kustom
CLion 2018.3 memberikan kemampuan untuk menganalisis kinerja kode. Di Linux, integrasi dengan
Perf disediakan, di macOS, dengan
DTrace . Tindakan baru tersedia di menu Run, di panel navigasi dan di menu konteks ikon peluncuran aplikasi. Hasil profil kode tersedia di jendela CPU Profiler (Lihat | Alat Windows | CPU Profiler).

Baca lebih lanjut tentang apa yang perlu Anda instal di komputer Anda agar profil kode berfungsi, baca
blog atau
dokumentasi online .
Perlu dicatat bahwa UI / UX masih agak eksperimental. Direncanakan untuk meningkatkan secara signifikan dalam versi 2019.x. Tetapi sudah ada hal-hal yang berguna, seperti kemampuan untuk melihat semua utas bersama atau satu per satu, kemampuan untuk menavigasi ke kode sumber, dll.
Membangun dan Membangun Kembali Perintah
Jumlah berbagai kombinasi perintah build telah bertambah banyak sehingga kami memutuskan untuk menempatkan semuanya dalam item menu terpisah - Build. Ada perakitan / perakitan kembali seluruh proyek, dan
all
target dari semua atau dari profil CMake yang dipilih, dan konfigurasi yang dipilih, dan satu file tertentu:

Ini, tentu saja, untuk CMake. Untuk database kompilasi hanya akan ada perintah membangun kembali untuk file tertentu.
Dialog Universal: Jalankan Apa Saja dan Cari Di Mana Saja
Pengguna CLion telah terbiasa dengan dialog Pencarian Di Mana Saja (
Double Shift
) untuk waktu yang lama, serta dengan dialog Cari Tindakan (
Ctrl+Shift+A
/
โงโA
) untuk mencari perintah atau pengaturan berdasarkan nama, dan dengan dialog untuk menavigasi ke file, simbol, atau kelas berdasarkan mereka nama. Dan sekarang ini, pada kenyataannya, dialog yang sama!

Dialog terpisah berubah menjadi tab terpisah, beralih berfungsi melalui
Tab
. Pada saat yang sama, kami menghilangkan sejumlah masalah yang terkait dengan dialog ini, termasuk kehilangan fokus dan ukuran yang salah.
Dialog universal baru lainnya adalah Run Anything (
Double Ctrl
). Dari sana, Anda dapat menjalankan aplikasi dalam mode normal atau dari bawah debugger, dan juga membuka proyek apa pun:

Memeriksa di compilation_database.json
Database kompilasi adalah model desain alternatif yang telah didukung CLion selama beberapa waktu. Sangat nyaman karena
Anda bisa mendapatkannya dari hampir semua model desain lain, populer atau bahkan custom. CLion dapat membuka proyek dari database kompilasi, mengurai kode dengan benar dan menyediakan semua cara pintar untuk bekerja dengan kode. Satu-satunya minus adalah kurangnya informasi tentang perakitan seluruh proyek dalam format ini, sejauh ini hanya file individu yang akan dikumpulkan dari IDE.
Dalam rilis ini, kami menambahkan skema untuk file comp__database.json ke CLion, dan berdasarkan skema ini sudah menerapkan pemeriksaan dalam file itu sendiri. Misalnya, jenis nilai properti yang salah atau properti yang umumnya hilang:

Cek bisa sangat berguna jika Anda masih memutuskan untuk menulis file seperti itu dengan tangan atau memperbaiki file yang ada.
Kinerja dan Tes Editor
Dalam banyak kesedihan dari pengguna kami, terlihat bahwa masalah signifikan dengan kinerja IDE terkait dengan cara IDE menentukan daftar tes yang tersedia di proyek. Di versi 2018.3, kami membuat proses ini malas, dan sekarang, jika Anda belum membuka file uji di editor, mereka tidak akan diindeks. Selain itu, peningkatan kinerja dilakukan saat menavigasi ke hasil pengujian, pelengkapan otomatis makro uji, dll.
Penyempurnaan editor
Seperti yang Anda ketahui, di jendela Dokumentasi Cepat (
Ctrl+Q
/
F1
), CLion tidak hanya dapat menampilkan dokumentasi dan komentar kode, tetapi juga tipe yang disimpulkan untuk variabel dan substitusi akhir dalam makro. Pencarian terakhir ini sekarang diformat, dan kata kunci disorot di dalamnya. Sangat berguna untuk makro kompleks dengan beberapa tingkat sarang, misalnya untuk Peningkatan:

Komentar TODO sekarang bisa multiline, yang utama adalah membuat indentasi baris kedua dan selanjutnya - CLion secara otomatis akan mengerti bahwa ini adalah bagian dari komentar TODO:

Ada pengguna yang tema standarnya tidak nyaman, karena mereka tidak memiliki kontras yang memadai. Untuk mereka, kami menambahkan Tema kontras Tinggi khusus. Ini hanya dapat diaktifkan di editor kode (Ctrl + `) atau untuk seluruh IDE (Pengaturan / Preferensi | Appearance & Behavior | Appearance | Theme).

Bersama dengan Platform IntelliJ, kami mendesain ulang menu pengaturan plugin di IDE (Pengaturan / Preferensi | Plugin). Sekarang jauh lebih mudah untuk menjaga plugin yang terinstal tetap up to date, serta mengurutkan dan memfilter repositori besar dari plugin IDE yang ada.
Sistem kontrol versi
Perubahan platform utama lainnya adalah dukungan yang lama ditunggu-tunggu untuk
submodules Git . Sekarang semua operasi untuk bekerja dengan VCS di CLion juga diperhitungkan dengan submodul: mengkloning suatu proyek, memperbaruinya, membandingkan versi (berbeda), dll.
Jendela
Permintaan Tarik GitHub telah ditambahkan, di mana Anda tidak hanya dapat melihat semua permintaan tarik, tetapi juga mencari / memfilternya berdasarkan penulis atau status. Dan Anda dapat membuat cabang baru dari permintaan tarik apa pun hanya dalam satu klik.
Demo
Video tradisional tentang fitur baru CLion 2018.3 dalam bahasa Inggris:
Apa selanjutnya
Tahun depan kami berencana untuk terus bekerja pada mesin bahasa tambahan kedua berdasarkan Clangd - mari kita lihat apa fitur IDE lain yang dapat kita terapkan di atasnya. Kami akan meningkatkan produktivitas editor, menyelesaikan dan meningkatkan fitur yang ada; Pekerjaan mendukung pengembangan jarak jauh di CLion terlihat sangat beragam. Dari integrasi kami merencanakan format dentang dan, mungkin, ini atau itu debugger untuk Windows / MSVC.
Dan fokus utama bagi kami adalah
pengembangan Tertanam . Baru-baru ini,
Elmot , penulis plugin dukungan yang sangat populer di CLion
OpenOCD + STM32CubeMX , bergabung dengan tim kami. Ilya akan terus mengintegrasikan fungsi ini ke dalam IDE, tetapi kami berencana untuk menyelesaikan tampilan memori dan membuat kembali tampilan hex dalam waktu dekat.
Pertanyaan, keinginan, laporan bug dan hanya pemikiran yang diungkapkan dalam komentar! Kami akan dengan senang hati menjawab.
Tim JetBrains CLion AndaDorongan untuk berkembang