2012-10-14 17 views
5

Przeczytałem dla Alexa Ott'a fantastic guide to CEDET dla Emacsa, i myślę, że wiem, jak poprawnie skonfigurować moje projekty EDE.Emocja CEDET: przeskakiwanie do symboli

Jednak, gdy staram się skakać do lokalnej symbolu (np funkcja w C main() ++) za pomocą polecenia semantic-complete-jump-local (C-c , j), pojawia się błąd [no match] chociaż Wołam tego polecenia z poziomu pliku .cpp, gdzie symbol jest zdefiniowany.

Również, gdy staram się skakać z semantic-complete-jump-global (C-c , J) do symbolu z wieloma definicjami w różnych plikach (np wieloma main() funkcji), CEDET narzeka [not unique] ale to nie daje mi sposób wyboru, który symbol chcę zobaczyć. Jedynym sposobem na znalezienie symbolu, który mnie interesuje jest przejście przez wszystkie opcje z bufora <TAB> przez bufor, dopóki nie znajdę tego, który mnie interesuje. Czy istnieje sposób, aby uzyskać listę symboli, skąd mogę wybrać? Najlepiej byłoby, gdyby lista autouzupełniania była podobna do tej, którą zapewnia Emacs helm (dawniej znany jako Anything).

To wszystko z Emacsa 24.2.1 w systemie Linux z CEDET 1,1.

+0

której wersji CEDETu używasz? –

+0

Dzięki @AlexOtt, właśnie zaktualizowałem OP o informacje o wersji. –

Odpowiedz

5

Czy próbowałeś użyć polecenia semantic-ia-fast-jump? Wykorzystuje nie tylko Semantic, ale także inne źródła danych, aby obliczyć, gdzie skoczyć. Po prostu wypróbowałem i poprawnie przeskoczyło do zmiennej, która została zadeklarowana w klasie nadrzędnej, o 3 poziomy wyżej w hierarchii.

+0

Dzięki Alex! 'semantic-ia-fast-jump' działa świetnie, ale wymaga ode mnie punktu (kursora) na symbolu, którego definicję chcę przeskoczyć. Zamiast tego chciałbym przeskoczyć do symboli, które mogę wpisać w minibuforze (tj. Mechanizmie nawigowania po symbolach zdefiniowanych w moim projekcie). Byłoby wspaniale zobaczyć listę wszystkich możliwych symboli, które mogę przeglądać, aby wybrać tę, którą chcę. Idealnie byłoby to pewnego rodzaju przyrostową listą autouzupełniania, która jest aktualizowana podczas pisania i udoskonalania nazwy symbolu (jak to robi Emacs Helm). Nie jestem pewien, czy to jest możliwe. –

+0

Myślę, że powinno być możliwe napisanie takiej funkcji, chociaż będzie wymagało pewnego kodowania –

+0

Dzięki Alex. W międzyczasie jakie inne mechanizmy istnieją, aby nawigować, przeskakiwać lub wyświetlać definicje symboli? –