Maalesef, Emac'ın parantez uyumlu altyapısı çok karakterli jetonların çoğunu anlamıyor. Emacs-23.4'te eklenen yeni SMIE kütüphanesinin kısmen bu sorunu ele alması amaçlanmıştır. Ana modların, dilin sözdizimini (çok sınırlı bir dilbilgisi türünde) tanımlamasına izin verir; bundan sonra C-M-f ve C-M-b gibi şeyler mantıksal elemanların üzerinden nasıl atlanacağını bilir; begin
'dan eşleşen end
'a atlayın. LindyDancer'ın belirttiği gibi, bu tür şeyler genellikle girinti için gereklidir ve aslında SMIE'nin arkasındaki temel motivasyon, jenerik bir girinti motoru sağlamaktı.
Artık Verilog SMIE kullanmıyor ancak benzer gezinme komutlarını uygular. beklenmeyen bir anda tampon sonuna çarparsa verilog-forward-sexp
size uygun uyarı/hata verecektir Yani muhtemelen bilmiyorum
(defun sm-verilog-check-parens()
(save-excursion
(goto-char (point-min))
(while (not (eobp))
(verilog-forward-sexp))))
Tho gibi bir şey deneyebilirsiniz.
Bunun gibi şeyler genellikle girinti motoru tarafından ele alınır. Sözdizimini kontrol etmek için, örneğin tüm arabelleği işaretleyerek ve "indent-region" işlevini çalıştırarak kullanabilirsiniz. Dosyanın sonu yanlış girilirse, bir başlangıç / bitiş uyuşmazlığınız olur. – Lindydancer
@Lindydancer teşekkürler, ama hepsi farklı editörler kullanarak, aynı anda birkaç kişinin düzenlediği kod üzerinde çalışıyorum ve çoğu zaman kodun farklı bölümleri farklı şekillerde girintilidir. Ayrıca bazı dosyalar çok uzun olma eğilimindedir ve tüm "indent-bölge" yi seçmek uzun sürebilir ... – kiteflyingmonkey
Bu durumda, basit/başlangıç çiftleri eşleştiren bir özel paket yazabilirim. Bu önemsiz değil, ama eğer yeni iseniz, elisp'te iyi bir egzersiz olacağını düşünüyorum. – Lindydancer