In Verilog racchiudi blocchi di codice tra le parole 'Begin' e 'fine' come questo:Definire parentesi multi-caratteri in Emacs
if(foo) begin
x <= 1'b0;
y <= 1'b0;
end else begin
x <= x_d;
y <= y_d;
end
C'è un modo per impostare iniziare e terminare come parentesi a Emacs, in modo da poter utilizzare check-parens o simili per trovare quelli che non corrispondono?
Ho provato ad aggiungere questo (e le variazioni di) al mio file ~/.emacs, ma non piace ...
(modify-syntax-entry ?begin "(end")
(modify-syntax-entry ?end ")begin")
Grazie.
In genere, le cose vengono gestite dal motore di indentazione. Potresti usarlo per controllare la sintassi, ad esempio contrassegnando l'intero buffer ed eseguendo 'indent-region'. Se la fine del file è rientrata in modo errato, si verifica una mancata corrispondenza iniziale/finale. – Lindydancer
@Lindydancer ringrazia, ma sto lavorando su un codice che viene modificato da più persone contemporaneamente, il tutto utilizzando editor diversi, e così spesso diverse sezioni del codice sono rientrate in modi diversi. Anche alcuni file tendono ad essere molto lunghi, e la selezione di tutti i 'indent-region' può impiegare molto tempo ... – kiteflyingmonkey
In tal caso, scriverei semplicemente un pacchetto personalizzato trovando coppie iniziali/finali corrispondenti. Non è banale, ma penso che sarebbe un buon esercizio di elisp, se sei nuovo ad esso. – Lindydancer