En iyi C ++ dizinleyici?


11

Geçenlerde arta geçiş yaptıktan Eclipse CDT için Spacemacs ile C ++ tabakasının benim geliştirme ortamı olarak.

Şimdiye kadar ... harika! Ancak, Eclipse hakkında özlediğim şeylerden biri onun dizinleyici .

Şu anda kullanıyorum GNU Küresel ile gtags katmanında. Gtags ile ilgili sorun, bir dizinleme sistemi değil, bir etiketleme sistemi olmasıdır.

Misal:

setSınıfta çağrılan bir işlev için başvuruları aramak, Fieldkod tabanımda 165 başvuru döndürür; bunlardan yalnızca biri,Field::set

CDT'de referans aranması set1 sonuç döndürür.

EMAC'lerde kullanabileceğim daha iyi bir dizin oluşturma çözümü var mı?

Çevrimiçi arama Bu sayfayı 3 clang tabanlı dizinleyicinin listelendiği yerde buldum .

Sorular:

  • Bunlardan herhangi biri daha iyi bir indeksleme deneyimi sunacak mı?
  • Hangisinin kullanılacağına dair bir öneriniz var mı?
  • Listelenmemiş daha iyi bir alternatif var mı?

Not:

Ben de clang-completekod tamamlanması için kullanıyorum , ama çok yavaş bulduk . Alışılmadık derecede yavaş. ( Bunu deneyimleyen tek kişi ben değilim ) Herhangi bir indeksleme çözümü aynı sorundan muzdarip olsaydı, işe yaramazdı.


C ++ projeleri ile çalışıyorum, ama belki C ++ bölümü altında emacs.zeef.com üzerinde yararlı içerik bulabilirsiniz?
ReneFroger

clang-indexerSon zamanlarda herhangi bir gelişme olmadığını fark ettim ve yazarın kendisi "kaba" olduğunu söylüyor - bu yüzden diğer ikisini de denemeyeceğim
Steve Lorimer

rtagslistelenen 3 en popüler gibi görünüyor
Steve Lorimer

1
Açıkçası, bu sorunun Emacs ile ilgisi var mı?
PythonNut

1
Şu anda ifade edildiği gibi, bu soru çok özneldir ve öncelikle fikir tabanlı cevaplar vermesi muhtemeldir. Soruyu daha somut hale getirmek için lütfen yayınınızı düzenleyin.
Dan

Yanıtlar:


4

Sadece rtags için son 1-2 yıldır aktif olarak kullandığımı söyleyebilirim .

rtags beklendiği gibi çalışır. Derleyici tabanlıdır ve doğru kod navigasyonu sağlar. Bir emacs kullanıcısı olarak son 10 yıldır aradığım bir şey.

Kurulum biraz zor olabilir. Kurulumun bir kısmını otomatik olarak yapan cmake-ide'a göz atmanızı öneririm. https://github.com/atilaneves/cmake-ide

Bu blog gönderisi ayrıca https://vxlabs.com/2016/04/11/step-by-step-guide-to-c-navigation-and-completion-with-emacs-and-the-clang-based- rtags /

Ayrıca kendi yapılandırmamı da inceleyebilir (veya kullanabilirsiniz): https://github.com/jardon-u/dotfiles/blob/master/emacs.d/development/c/_init.el cmake- ide (proje keşfi), ironi (kod tamamlama için) ve rtags (kod gezinme için). Bazı işlevler her mod arasında çakıştığından bunun basitleştirilebileceğinden eminim, ancak sonuç modern bir IDE'den beklediğim seviyede.

rtags ayrıca kod yeniden düzenleme olanakları sağlar, ancak oldukça sınırlıdır (çoğunlukla yeniden adlandırma)


1
Bu cevabın kabul edilmesinden bu yana iki yıl geçti, hala rtags kullanıyor musunuz? Kurulumla ilgili belgelerin değişip değişmediğini veya daha kolay kurulumun sunulduğunu merak ediyorum. Bununla ilgili herhangi bir bilgi var mı? Setup / config dosyanızı paylaşabilir misiniz?
A_P

@A_P Herhangi bir nedenden ötürü sadece yorumunuzu görüyorum. Hala rtags kullanıyorum. Cmake-ide sayfasını + yapılandırmamı (cevabımdaki bağlantı) tekrar kontrol etmelisiniz. Ayrıca kurulumun çoğunu otomatikleştirdim. Kontrol: github.com/jardon-u/dotfiles/blob/master/install.sh (emacs sürümü en son olmayabilir. Bunu güncellemeyi deneyeceğim)
log0
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.