Bagaimana saya bisa membuat vim menunjukkan kelas saat ini dan metode yang saya edit

15

Adakah yang tahu apakah itu mungkin (atau mengetahui skrip atau plugin vim yang ada) yang dapat membuat "status bar" yang menunjukkan nama kelas dan metode saat ini (atau fungsi) yang saya edit?

Saya membayangkan bahwa itu akan disambungkan ke parser sintaks untuk tipe file buffer saat ini, dan menampilkan jejak breadcrumb untuk menunjukkan kepada Anda apa yang sedang Anda edit. Saya tidak tahu vimscript dengan cukup baik untuk menyarankan lebih dari itu, tetapi jika belum ada solusi yang baik, saya dapat mulai meretasnya, jadi saran untuk memulai harus diterima juga!

dcrosta
sumber

Jawaban:

7

Script ini menempatkan nama fungsi saat ini di bilah judul dan / atau baris status. Ini menggunakan ctag untuk menghasilkan daftar tag untuk file saat ini dan mengasumsikan bahwa tag yang mendahului lokasi kursor adalah nama dari fungsi saat ini. Karena menggunakan ctag, dapat disesuaikan untuk bekerja dengan berbagai bahasa, bahkan file teks terstruktur. Ini bekerja dengan baik dalam praktik, tetapi memiliki beberapa keterbatasan. Jika tidak ada yang lain, itu mungkin memberi Anda titik awal untuk peretasan.

garyjohn
sumber
6

Ini akan berfungsi jika Anda memasang plugin maskapai dan tagbar . Kedua plugin ini terintegrasi secara otomatis dan Anda akan mendapatkan fungsi saat ini ditampilkan di bilah status. Jika Anda ingin memiliki hierarki objek lengkap (mis. Kelas + metode), Anda harus mengonfigurasinya di .vimrc Anda:

let g:airline#extensions#tagbar#flags = 'f'  " show full tag hierarchy

Anda mungkin harus mengatur file tag untuk tagbar untuk mengidentifikasi posisi kode saat ini, jika Anda belum menggunakan ctag. Jika Anda belum tahu tentang itu, berikut ini intro singkat tentang ctag .

Karl Bartel
sumber