2011-12-12 11 views
9

Czy w Emacs można zaznaczyć wszystkie zmienne różnych typów danych w różnych kolorach? na przykład jeśli mam następujące zmienne w C/C++ mojego programuPodświetlanie składni w emacs. Oznaczanie różnych typów danych różnymi kolorami

int i,j; 
float g,h; 
char a,b; 

Następnie całym kod źródłowy i oraz j zostanie oznaczony jako czerwony, G i H jak zielony, A i B, niebieski.

Nie jestem pewien, jak przydatne będzie to w przyszłości, ale uważam, że pomogłoby mi to podczas czytania kodu, i byłoby dobrą alternatywą dla węgierskiej notacji (nie, że używam tego zapisu: D).

+6

Z normalnym trybem emacs C byłby to bardzo nietrywialny - trzeba by przetworzyć plik, aby uzyskać te informacje, gdzie obecnie używasz wyrażeń regularnych do podświetlania. Chciałbym sprawdzić ["Semantic Bovinator"] (http://www.emacswiki.org/emacs/SemanticBovinator) do analizy plików C/C++ i pracować z tego miejsca. –

+0

Może chcesz rzucić okiem na [highlight-symbol] (http://www.emacswiki.org/emacs/HighlightSymbol). Podświetla wszystkie wystąpienia symbolu w punkcie, a jednocześnie można wyróżnić kilka symboli (w różnych kolorach). Nie dokładnie to, o co prosisz, ale pomaga czytać kod w podobny sposób. – Tarmil

+0

Kolejny niezupełnie komentarz: dopasowanie Regexp prawdopodobnie nie jest do tego wystarczające, ale może ci w tym przeszkodzić. Prostym i interaktywnym sposobem dostosowywania dopasowań regexp jest użycie 'C-M-s'. Zobacz także library ['highlight.el'] (http://www.emacswiki.org/emacs/HighlightLibrary). – Drew

Odpowiedz

4

Nie. Emacs nie ma pojęcia o typie określonego wyrażenia; zrobienie tego byłoby równoznaczne z napisaniem znacznej części kompilatora C w ELisp.

Jednak na końcu tunelu znajduje się światło.

Np. Jeśli edytujesz kod OCaml przy użyciu tuareg-mode, możesz zapytać Emacsa o typ dowolnego wyrażenia, ponieważ kompilator ocaml dostarcza tych informacji; w ten sposób powinieneś być w stanie poprosić o wyróżnienie zmiennych według typu. To jest ścieżka do naśladowania.

Niestety, gcc nie przekazuje tych informacji; jednak jego rozszerzenie to gccxml.

Również inne C kompilatory, np clang, że informacje z pudełka, a tam jest nowy plik semantic-clang.el która opiera się na tych cech (choć tylko na zakończenie, a nie dla podświetlaniem składni).

Nie ma tu nic dla ciebie, ale jeśli chcesz używać clang zamiast gcc i przyczyniać się do rozwoju CEDET, możesz dostać to, co chcesz.

1

Nie, nie jest możliwe selektywne przypisanie danego koloru do danej zmiennej w emacs (lub tylko dla jednego programu).
Jeśli jednak chodzi tylko o podświetlanie składni , którego szukasz, oczywiście, emacs podkreśli większość języków, a nawet możesz stworzyć podświetlanie składni dla języków, których emacs nie będzie wiedział.
Przykł. Smali: https://github.com/strazzere/Emacs-Smali

Powiązane problemy