В Verilog вы заключаете блоки кода между словами «начать» и «конец», как это:Определение нескольких символов скобки в Emacs
if(foo) begin
x <= 1'b0;
y <= 1'b0;
end else begin
x <= x_d;
y <= y_d;
end
Есть ли способ, чтобы установить начало и конец, как скобки в Emacs, так что вы можете использовать check-parens или подобное, чтобы найти какие-либо несоответствующие?
Я пытался добавить это (и вариации) в моем файле ~/.emacs, но это не нравится ...
(modify-syntax-entry ?begin "(end")
(modify-syntax-entry ?end ")begin")
Спасибо.
Такие операции, как правило, обрабатываются двигателем вдавливания. Вы можете использовать его для проверки синтаксиса, например, путем маркировки всего буфера и запуска 'indent-region'. Если конец файла имеет неправильный отступ, у вас есть несоответствие начала и конца. – Lindydancer
@ Lindydancer спасибо, но я работаю над кодом, который редактируется несколькими людьми одновременно, причем все используют разные редакторы, поэтому часто разные разделы кода отступают по-разному. Кроме того, некоторые из файлов имеют тенденцию быть очень длинными, и выбор всей области «indent-region» может занять много времени ... – kiteflyingmonkey
В этом случае я бы просто написал собственный пакет, на котором были найдены совпадающие пары начала и конца. Это не тривиально, но я думаю, что это будет хорошее упражнение в elisp, если вы новичок в этом. – Lindydancer