2014-06-27 17 views
5

Nowe prettify-symbole-mode w Emacs działa pięknie do tłumaczenia:Tryb Emacs-upiększa-tryb symboli działa na nie oddzielonych znakach.

lambda something -> λ something 

Chciałbym również, aby:

lambda.something -> λsomething 

Niestety prettify-symbole-mode rozpoznaje tylko spacji jako słowo/separatory symboli domyślnie.

Wszelkie pomysły na temat używania "." jako separator znaczników?

+0

używam ładny-mode i to zachowanie domyślne, może po prostu przełączyć do tego. z jakiego języka korzystasz? –

+0

@JordonBiondo, to fajna opcja, ale 'prettify-symbols-mode' ma tę zaletę, że jest wbudowany w Emacsa (od wersji 24.3, myślę). – Chris

+0

Tak. Chciałbym zachować prettify-symbols-mode, ponieważ jest on dostarczany z Emacsem (teraz) i wydaje się bardzo stabilny. Miałem problemy z ładnym trybem symboli, ale nie próbowałem ładnego trybu. Aby odpowiedzieć na pytanie Jordona, moim zamierzonym zastosowaniem jest wizualne skompresowanie self.method w Pythonie do czegoś podobnego do ◎ metody. – Jarpy

Odpowiedz

2

Dzięki Lindydancer, skończyło się w ten sposób:

(add-hook 'python-mode-hook 
      (lambda() 
      (push '("self" . ?◎) prettify-symbols-alist) 
      (modify-syntax-entry ?. "."))) 

co skutkuje rozsądnym wyjściem kompromisowym:

◎.method 
2

Kod, który ma faktyczne zastąpienie to prettify-symbols--compose-symbol w prog-mode.el. Wyklucza dopasowania, jeśli znak przed lub po słowie ma symbol typu słowo lub symbol. W wielu trybach, na przykład emacs-lisp-mode, znak . ma typ symbolu.

Można było albo zmienić kod składni dla . w trybie głównej, można powiedzieć font-lock użyć innego kodu znaków podczas zaznaczania (patrz zmienna font-lock-defaults szczegółów), czy można zrobić ju-jutsu trybu prettify-symbols--compose-symbol jak modyfikowanie go za pomocą defadvice lub po prostu zastąpić go swoim własnym.

Powiązane problemy