Semua aktivitas pengembangan telah dipindahkan ke repositori cxxd dan cxxd-vim. Untuk mengikuti perkembangan terkini disarankan untuk menggunakan plugin cxxd-vim. Lihat bagian pertama FAQ untuk lebih jelasnya.
Isi
- Perubahan
- Instalasi
- Penggunaan
- Tangkapan layar
- Fitur
- Kredit
- Pertanyaan Umum
Perubahan
- 13 Juli 2018
- Fungsionalitas inti telah diekstraksi ke repositori terpisah:
- cxxd, implementasi server bahasa C/C++
- cxxd-vim, frontend Vim yang dikembangkan untuk
cxxd
-
Yavide
akan menyertakannya sebagai dependensi dan akan terus berfungsi secara normal tetapi semua aktivitas dan fokus pengembangan kini dipindahkan ke proyek tersebut , jadi untuk mendapatkan lebih banyak fitur dan stabilitas, silakan mulai menggunakannya langsung dari konfigurasi Vim biasa Anda.
- 2 Desember 2017
- Mengimplementasikan pengindeks berbasis Dentang
- Menerapkan temukan semua referensi berbasis Dentang
- Menerapkan definisi masuk berbasis Clang
- Menerapkan go-to-include berbasis Clang
- Dukungan yang diterapkan untuk clang-tidy
- Dukungan yang diterapkan untuk database kompilasi JSON
- Mekanisme cache unit terjemahan yang diterapkan
- Berbagai perbaikan bug dan perbaikan kecil lainnya
- 12 Februari 2017
- Layanan pengurangan tipe yang diterapkan.
- Kursor mouse yang diarahkan ke kode sumber akan memberikan rincian tentang konstruksi yang mendasarinya (yaitu tipe data, tanda tangan fungsi, dll.).
- 10 Februari 2017
- Layanan perbaikan & diagnostik berbasis Clang yang diterapkan.
- Mekanisme yang diterapkan yang memungkinkan berbagi AST yang sama dalam beberapa layanan:
- Misalnya, setelah AST dibuat, penyorotan sintaksis semantik dan layanan perbaikan Clang akan dapat berbagi AST yang sama.
- Hal ini akan menjadi sangat penting ketika layanan berbasis Clang yang lebih berat akan ikut berperan, seperti pengindeks dan mesin pelengkapan otomatis.
- Kode sisi server yang difaktorkan ulang untuk memisahkan integrasi khusus editor dari implementasi inti layanan.
- 19 Januari 2017
- Menyempurnakan beberapa sisi kasar di sekitar penyorotan sintaksis:
- Dukungan yang diterapkan untuk menangani sekumpulan fungsi yang kelebihan beban atau templat fungsi (ekspresi CursorKind.OVERLOADED_DECL_REF)
- Dukungan yang diterapkan untuk menangani tipe dependen (ekspresi TypeKind.DEPENDENT)
- Menerapkan patch non-intrusif untuk clang.cindex memungkinkan traversal AST yang lebih fleksibel
- 28 Desember 2016
- Mengimplementasikan layanan penyorotan sintaksis kode sumber berbasis Dentang (jalankan
cd /colors/yaflandia && git pull
untuk mendapatkan perubahan skema warna yang diperlukan)
- 1 Juli 2016
- Menerapkan kerangka kerja klien-server (async) generik baru yang memungkinkan pengiriman segala jenis operasi untuk dijalankan dalam proses latar belakang non-pemblokiran terpisah (disebut layanan) dan hasil penyelesaiannya dapat dilaporkan kembali ke server ('Yavide').
- Menerapkan 4 layanan baru di atas kerangka async baru:
- Layanan penyorotan sintaksis kode sumber sambil jalan.
- Layanan pengindeksan kode sumber sambil jalan.
- Layanan pemformatan otomatis kode sumber berbasis dentang.
- Layanan pembangun proyek.
Instalasi
Lihat Panduan instalasi.
Penggunaan
Lihat Penggunaan.
Tangkapan layar
Lihat beberapa GIF beraksi.
Lebih detailnya...
Fitur
- Dibundel dan disesuaikan untuk pengembangan C/C++
- Manajemen proyek
- Buat proyek baru atau impor basis kode yang ada ke ruang kerja baru
- Penjelajah proyek
- Jelajahi proyek menggunakan widget tampilan pohon
- Pembangun proyek
- Memicu build Anda di dalam lingkungan agar berjalan secara non-intrusif di latar belakang
- Peramban kelas
- Menampilkan ikhtisar simbol yang ditentukan dalam unit saat ini (yaitu makro, struct, kelas, metode, namespace, dll.)
- Penyelesaian otomatis kode sumber
- Didukung oleh back-end kompiler C/C++ asli untuk memastikan kebenaran total
- Navigasi kode sumber
- Menampilkan sistem pembuatan tag otomatis yang menjaga database simbol tetap mutakhir
- Penyorotan sintaks kode sumber berdasarkan
libclang
- Memberikan dukungan penyorotan sintaksis yang lebih kaya daripada yang awalnya disediakan oleh
Vim
- Pemformatan otomatis kode sumber
- Analisis statis kode sumber
- Integrasi klien manajemen kode sumber
- Menampilkan integrasi klien
Git
- Masih banyak lagi fitur lain-lain seperti:
- Pelengkapan otomatis tanda kurung
- Pelengkapan otomatis teks biasa yang sadar konteks
- Dukungan pengeditan beberapa pilihan
- Cuplikan kode
- Dukungan skema warna
Kredit
Ini adalah daftar plugin Vim pihak ketiga yang diurutkan berdasarkan abjad yang saat ini digunakan dalam sistem:
- SEBUAH (https://github.com/vim-scripts/a.vim)
- Dentang_lengkap (https://github.com/Rip-Rip/clang_complete)
- NERDCommenter (https://github.com/scrooloose/nerdcommenter)
- NERDTree (https://github.com/scrooloose/nerdtree)
- SuperTab (https://github.com/ervandew/supertab)
- Bilah Tag (https://github.com/majutsushi/tagbar)
- UltiSnips (https://github.com/SirVer/ultisnips)
- vim-airline (https://github.com/bling/vim-airline)
- vim-autoclose (https://github.com/Townk/vim-autoclose)
- vim-buronan (https://github.com/tpope/vim-fugitive)
- vim-gitgutter (https://github.com/airblade/vim-gitgutter)
- vim-multiple-cursors (https://github.com/terryma/vim-multiple-cursors)
- vim-patogen (https://github.com/tpope/vim-patogen)
Pertanyaan Umum
Mengapa fokus pengembangan dipindahkan ke cxxd dan cxxd-vim?
TL;DR Setelah memisahkan satu repositori Yavide
monolitik besar menjadi dua repositori terpisah ( cxxd
& cxxd-vim
) memberi kami desain yang lebih modular, dapat digunakan kembali, dapat diuji, dan fleksibel. Ada banyak keuntungan lain dari pendekatan ini yang semuanya dapat dicatat secara singkat di sini tetapi bagian yang penting sekarang adalah logika frontend (misalnya implementasi UI) sekarang dipisahkan dari implementasi backend (fitur server bahasa C/C++). Kedua perkembangan ini kini dapat didorong secara terpisah dan paralel. Selain itu, cxxd-vim
berperilaku seperti plugin Vim asli sehingga Anda tidak perlu lagi menggunakan skrip instalasi hacky tetapi cara instalasi biasa sama seperti plugin Vim lainnya di luar sana (misalnya Vundle). Untuk detail lainnya silakan lihat di repositori masing-masing.
Pertanyaan lainnya
Lihat FAQ.