Улучшенный отступ в двухрежимном режиме в Emacs

#perl #emacs #code-formatting #verilog

#perl #emacs #форматирование кода #verilog

Вопрос:

Я использую Emacs для изменения кода, который чередует Perl и Verilog. Я использую two-mode-mode для переключения между ними, что работает так, как ожидалось. Проблема в том, что код perl отображается построчно с помощью //; , как показано здесь:

 This is verilog code
// This is a verilog comment
//; This is perl code
//;   This is more perl code
This is verilog code again.
  

Хотя двухрежимный режим распознает, что это Perl, он делает это построчно, поэтому
отступы и тому подобное не имеют смысла в разных строках.

Что я хотел бы сделать, так это отформатировать код Perl как обычно, но не обращая внимания на //; символы (их следует просто оставить отдельно в начале строки, затем Perl отформатируется как обычно). Есть идеи о простом способе сделать это? Я только начал просматривать файлы режима, и они, по понятным причинам, сложны, поэтому буду признателен за любую подсказку!

Ответ №1:

Возможно, вам больше повезет с другим многорежимным режимом:

http://www.emacswiki.org/emacs/MultipleModes

AFAIK, mumamo — самый активный в эти дни.