Setelah mengunjungi file yang merupakan bagian dari repositori git, Projectile mengakui keberadaan repositori git saya sebagai sebuah proyek, tetapi hanya mencantumkan satu file (file saat ini) sebagai bagian dari proyek. Ketika saya mengunjungi file lain di proyek, mereka menjadi bagian dari proyek satu per satu.
Bagaimana cara membuat proyek di Proyektil sehingga mereka segera mengetahui semua file dalam proyek?
Semua tutorial yang saya temukan sejauh ini mengasumsikan bahwa Anda mengunjungi file dalam proyek yang ada, dan bahwa Proyile tahu file apa yang berisi proyek tersebut.
Memperbarui
Ketika saya mengatur Proyektil saya mengambil saran berikut dalam dokumentasi Proyektil:
Caching
Karena pengindeksan proyek besar tidak sepenuhnya cepat (terutama di Emacs Lisp), Proyektil mendukung caching file-file proyek. Tembolok diaktifkan secara default setiap kali pengindeksan asli diaktifkan.
Untuk mengaktifkan caching tanpa syarat, gunakan potongan kode ini:
(setq projectile-enable-caching t)
Karena saya kadang-kadang akan menavigasi beberapa proyek besar, saya menambahkan ini ke file init saya berharap itu akan memberi saya peningkatan kinerja. Saya tidak tahu bagaimana proyektil mengelola caching, tetapi pada saat itu saya berasumsi bahwa pertama kali saya mengunjungi proyek, pohon proyek akan dieksplorasi, dan cache akan diisi dengan semua file proyek. Tampaknya anggapan saya salah.
Setelah saya set projectile-enable-caching
ke nil
, Projectile dapat menemukan semua file di proyek saya. Berkat jawaban alexurba dan komentar tindak lanjutnya, saya dapat menemukan masalahnya.
sumber
Jawaban:
Setelah diaktifkan,
projectile
bekerja di luar kotak untuk proyek git. Untuk mengaktifkan termasukdalam konfigurasi Emacs Anda (atau mulai
projectile-mode
) secara manual.Kemudian
projectile-find-file
(pengikatan kunci defaultC-c p f
) berfungsi seperti itufind-file
, tetapi akan bekerja pada semua file dalam subdirektori dari direktori utama proyek (di mana.git
direktori tersebut berada).Jika Anda ingin menghindari git, Anda dapat membuat file alternatif
.projectile
di root proyek. Ini akan memiliki efek yang sama dan dapat digunakan untuk mengabaikan file atau direktori tertentu (mirip dengan.gitignore
).Lebih banyak info dapat ditemukan di halaman github proyek (yang terlalu lama dibaca, baik). Saya terutama merekomendasikan untuk membaca bagian tentang
Ido
danhelm
.Edit:
Periksa nilai
projectile-indexing-method
. Di Linux ini seharusnyaalien
, dan nilaiprojectile-enable-caching
seharusnyanil
.sumber
projectile-find-file
, satu-satunya file yang terdaftar adalah yang sudah saya kunjungi, walaupun direktori proyek berisi lebih banyak.projectile-indexing-method
(C-h v projectile-indexing-method
)? Di Linux ini seharusnyaalien
.projectile-enable-caching
seharusnyanil
.projectile-enable-caching
untuknil
dan mulai bekerja bagaimana saya harapkan. Mengetahui itu, saya dapat mengaturnya kembalit
dan kemudian gunakanC-u C-c p f
untuk membatalkan cacheprojectile-find-file
dan itu juga berfungsi. Saya bingung mengapa saya harus membatalkan cache jika proyek belum pernah di-cache sebelumnya, tapi saya akan menyimpannya untuk pertanyaan lain, mungkin.