Красивые символы Emacs в режиме cperl: :: должны быть окружены моими пробелами - PullRequest
2 голосов
/ 24 апреля 2019

Я использую Emacs с PDE и cperl-mode.Я действительно хочу, чтобы prettify-symbols-mode работал с ним.При использовании только режима perl это происходит:

Mod::thing->new( {c => 'sea'} );

становится

Mod∷thing→new( {c ⇒ 'sea'} );

, однако при использовании cperl то же выражение становится

Mod::thing→new( {c ⇒ 'sea'} );

в режиме cperl :: становится только когда он разделен пробелами с обеих сторон.

Я попытался добавить к cperl - pretty-symbols-alist и pretty-symbols-alist.и до сих пор работают только -> и =>.

Я подумал, что это может быть то, как cperl определяет символы как символы или слова, но -> и => прекрасно работают, не будучи окруженными пробелами.

Ответы [ 2 ]

1 голос
/ 21 мая 2019

Вы также можете сделать это в файле инициализации, чтобы вам не приходилось редактировать файлы, поставляемые с Emacs.Если вы редактируете файлы, которые являются частью Emacs, вам нужно будет обновлять их каждый раз при установке или обновлении.

(with-eval-after-load "cperl-mode"
  (modify-syntax-entry ?: "." cperl-mode-syntax-table))
1 голос
/ 24 апреля 2019

Я понял.Я пошел на /usr/share/emacs/26.1/lisp/progmodes и удалил файл с именем cperl-mode.elc.тогда я вошел в archinve здесь /usr/share/emacs/26.1/lisp/progmodes/cperl-mode.el.gz.Я отредактировал строку 1498 в cperl-mode.el так, чтобы она была (modify-syntax-entry ?: "." cperl-mode-syntax-table) вместо (modify-syntax-entry ?: "_" cperl-mode-syntax-table).Затем я скомпилировал файл и поместил его обратно в /usr/share/emacs/26.1/lisp/progmodes.

...