Od ponad roku próbuję używać Emacsa jako IDE C / C ++. Do tej pory odnosiłem tylko niewielkie sukcesy, ale po drodze natknąłem się na kilka ceglanych ścian. Obecnie próbuję użyć CEDET, ale mam trudny czas, aby zrozumieć, jak go skutecznie używać.
Funkcje, których szukam w IDE, są następujące:
- Zarządzanie „projektami” oprogramowania Chcę, aby moje IDE znało wszystkie pliki, które składają się na mój bieżący projekt, aby umożliwić mi wykonywanie funkcji takich jak wyszukiwanie i zamiana w moim projekcie. (Byłoby miło, gdybym mógł to osiągnąć bez zaśmiecania mojego drzewa źródłowego dużą ilością plików pomocniczych. Dlaczego potrzebuję więcej niż jednego scentralizowanego pliku projektu na projekt?)
- Możliwość zbudowania bieżącego projektu z poziomu IDE, niezależnie od tego, który bufor aktualnie odwiedzam. Muszę być w stanie powiązać klucz, który zbuduje bieżący projekt.
- Zgłaszanie błędów. Nie chcę czytać ponad 500 wierszy danych wyjściowych, aby znaleźć błędy zgłoszone przez narzędzia kompilacji. Korzystnie błędy pojawiają się w swoim własnym buforze z jedną linią na błąd.
- Świadomość symboli w projekcie i miejsca ich zdefiniowania. Chcę przejść do definicji symbolu, niezależnie od tego, czy znajduje się ona w moich plikach projektu, czy w plikach systemowych.
- Debugowanie wizualne. Chcę mieć listę obserwacyjną zmiennych lokalnych, które aktualizują się automatycznie, gdy przeglądam kod. Chcę mieć możliwość ustawienia punktów przerwania w kodzie, aby zobaczyć, który wiersz kodu zostanie wykonany w następnej kolejności.
Wiem, że każda z tych funkcji istnieje, ponieważ każda z nich pracowała w tym samym czasie przy użyciu EDE, Semantic, GDB itp. Problem polega na tym, że nigdy nie byłem w stanie mieć tych wszystkich funkcji jednocześnie , ponieważ każdy element zwykle musi być skonfigurowany sam, a zwykle jest zbyt wiele pracy, aby wymyślić, jak skonfigurować wszystkie z nich jednocześnie i sprawić, by działały razem.
Jakie rozwiązania istnieją, aby zmienić Emacsa we w pełni funkcjonalne C / C ++ IDE? Czy zawsze musisz konfigurować wszystko fragmentarycznie, czy jest sposób na skonfigurowanie wszystkich funkcji jednocześnie?
EDYCJA: Dobra odpowiedź na to pytanie nie musi dokładnie spełniać wszystkich pięciu podanych kryteriów. Po prostu podałem listę, aby dać bardziej konkretne pojęcie o rodzaju funkcji, które chcę zobaczyć, zanim uznam IDE za „w pełni funkcjonalny”. Jest całkiem możliwe, że CEDET będzie w stanie wpasować się w rachunek, ale jeszcze nie znalazłem działającego samouczka krok po kroku, jak ustawić go od zera.