Mermi projedeki tüm dosyaları göstermiyor


12

Git deposunun bir parçası olan bir dosyayı ziyaret ettikten sonra, Projectile git havuzumun varlığını bir proje olarak kabul eder, ancak projenin bir parçası olarak yalnızca bir dosyayı (geçerli dosya) listeler. Projedeki diğer dosyaları ziyaret ettiğimde, her seferinde bir projenin parçası oluyorlar.

Projedeki tüm dosyaların hemen farkında olmaları için Projectile'da nasıl proje oluştururum?

Şimdiye kadar bulduğum tüm öğreticiler, mevcut bir proje içindeki bir dosyayı ziyaret ettiğinizi ve Projectile'ın bu projenin hangi dosyaları içerdiğini bildiğini varsayar.


Güncelleme

Mermi kurduğumda Mermi belgelerinde aşağıdaki öneriyi aldım:

Önbelleğe almak

Büyük bir projenin indekslenmesi tam olarak hızlı olmadığından (özellikle Emacs Lisp'te), Mermi proje dosyalarının önbelleğe alınmasını destekler. Yerel dizin oluşturma etkinleştirildiğinde önbellekleme varsayılan olarak etkindir.

Önbelleğe almayı koşulsuz olarak etkinleştirmek için bu kod snippet'ini kullanın:

(setq projectile-enable-caching t)

Bazen bazı büyük projelerde dolaşacağım için, bunu performans artışı sağlayacağını umarak init dosyama ekledim. Mermi'nin önbelleğini nasıl yönettiğini bilmiyorum, ancak bir projeyi ilk ziyaret ettiğimde, proje ağacının keşfedileceğini ve önbelleğin tüm proje dosyalarıyla doldurulacağını varsaydım. Benim varsayımın yanlış olduğu anlaşılıyor.

Ben ayarladıktan projectile-enable-cachingsonra nil, Projectile projemdeki tüm dosyaları bulabildi. Sayesinde alexurba cevabı ve sonraki yorumlar ben de sorunu bulmak mümkün oldu.


Bu soru çok geniştir ve kapatılmalıdır. SE için iyi bir aday değil. Lütfen yaşadığınız tek bir sorun hakkında özel bir soru sorun. Belirli bir sorun için gereken bağlamsal bilgileri sağlayın.
Drew

4
Bence çok fazla arka plana sahip olan iyi bir soru. Bence bu çizgide yeniden odaklanmış olsaydı: "Projedeki tüm dosyaların hemen farkında olmaları için Projectile'da projeleri nasıl kurarım.", İyi olurdu.
Jordon Biondo

3
@JordonBiondo: Ne kadar odaklanmışsa (SE için) o kadar yararlı olur. Kuşkusuz, kişi asgari derecede odaklanmayı amaçlayabilir, böylece kapatılamaz / kapatılamaz. Ama bundan daha iyisini yapabilmek gerekir. Orada bir yerde muhtemelen 3 veya 4 iyi soru olduğunu tahmin ediyorum ve herkes ayrı ayrı pozlanırlarsa, odaklanmış bir şekilde faydalanacaktır.
Drew

Hangi platformu kullanıyorsunuz (Windows, Mac, Linux)? Proje dosyalarının endekslenmesi platforma bağlı olarak uygulanmış görünmektedir.
alexurba

1
Bunu Linux'ta test ediyorum (RHEL 6.5), ancak tüm platformlarda kullanabilmek istiyorum.
nispio

Yanıtlar:


8

Etkinleştirildikten sonra, projectilegit projeleri için hazır çalışır. Dahil etmek için

(projectile-global-mode)

Emacs yapılandırmanızda (veya başlangıçta projectile-mode) manuel olarak.

Daha sonra projectile-find-file(varsayılan anahtar bağlama C-c p f) aynı şekilde çalışır find-file, ancak projenin ana dizininin ( .gitdizinin olduğu konum) alt dizinlerindeki tüm dosyalar üzerinde çalışır .

Git'ten kaçınmak istiyorsanız, alternatif .projectileolarak proje kökünde bir dosya oluşturabilirsiniz . Bu aynı etkiye sahip olacaktır ve belirli dosyaları veya dizinleri (benzeri .gitignore) yok saymak için kullanılabilir .

Projenin github sayfasında çok daha fazla bilgi bulunabilir (bu da çok uzun bir okumadır ). Özellikle Idove ile ilgili bölümleri okumanızı tavsiye ederim helm.

Düzenle:

Değerini kontrol edin projectile-indexing-method. Linux'ta bu olmalı alienve değeri projectile-enable-cachingolmalı nil.


Bu benim için çalışmayan kısım. Çalıştırdığımda projectile-find-file, listelenen dosyalar proje dizini çok daha fazla içeriyor olsa da, daha önce ziyaret ettiğim dosyalar.
nispio

@ nispio, proje sayfasında farklı indeksleme ve önbellekleme yöntemlerinden bahseder. projectile-indexing-method( C-h v projectile-indexing-method) Değerini kontrol edebilir misiniz ? Linux'ta bu olmalı alien.
alexurba

Ve projectile-enable-cachingolmalı nil.
alexurba

2
Buldun. Ben set projectile-enable-cachingetmek nilve onu beklediğim nasıl çalışmaya başladı. Bunu bilerek, onu geri ayarlayabildim tve sonra C-u C-c p fönbelleği geçersiz kılmak için kullanabildim projectile-find-fileve bu da çalışıyor. Proje daha önce hiç önbelleğe alınmadıysa neden önbelleği geçersiz kılmam gerektiğine kafam karıştı, ama belki başka bir soru için bunu kaydedeceğim.
nispio

Harika çalışıyor. Yine de, 'yabancı' dizine eklenemeyen Windows altında neler olacağından emin değilim. Ama belki bu, onunla karşılaştığınızda ikinci bir sorunun konusu olabilir.
alexurba
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.