Şimdi, SMIE girinti kuralı / dilbilgisi / şey çalışma her türlü almaya çalışırken çok, çok saat geçirdim.
Gerçekte nasıl çalıştığına dair belgelere sahip küçük, oyuncak veya iskelet SMIE tabanlı bir mod örneği veya nasıl kullanılacağı hakkında herhangi bir tartışma var mı? Diyelim ki, bir ifade, noktalı virgülle biten belirteçler dizisi ve bir blok, parantezler ve başka hiçbir şey arasındaki bazı ifadeler olarak tanımlanır. Gerçekten, gerçekten basit mi?
Özel sorular: smie-config-show-indent kullanırken% 90 zamanını alırım: ': list-intro "" -> nil'. List-intro ifadesini veya ifade listesini temel alan nedir? Neden nil diyor ve hala aşağıdaki satırlara girintiliyor? Nasıl değiştiririm?
İkincisi: dilbilgim ile smie-kurallarım arasında herhangi bir ilişki var mı? İkisinin de smie-kurulumuna geçtiği için var olduğunu varsayıyorum, ancak "bir blok" gördüğünüzde, içeriği girintili hale getirdiğinizde ", örneğin, bir bloğu tanımlayan bir dilbilgisine dayanarak söylemenin bir yolunu bulamıyorum .
Üçüncüsü, SMIE'nin "pişmiş" birçok kuralı var gibi görünüyor. Sadece onu başlatmak, örneğin parantez, parantez ve parantezin genel olarak ele alınmasını sağlar. Bu kuralları görmenin veya değiştirmenin bir yolu var mı? Ya da sözdizimi tablosunun tüm bunları yapması ve SMIE'nin tam anlamıyla hiçbir şey yapmaması (şüphelenmeye başladım).
Son olarak, SMIE hata ayıklamaya çalışırken "edit, eval mode buffer, diğer buffer, MX <my mode>, test" döngüsünde örnek koda gitmeye çalışıyorum, ancak etraftaki her gezinin kuralları temizlemediği anlaşılıyor önceki döngü. Tanımdan türetilmiş modun temiz bir sayfadan başladığından nasıl emin olabilirim? Orada (tüm yerel değişkenleri öldür) var ama yeterli görünmüyor ve sonunda emac'ları kapatmak zorunda kalıyorum.
Sahip olduğum şeylere örnek vermiyorum çünkü vurgulamanın yanı sıra belirsiz bir şekilde işe yarayan hiçbir şeyim yok (yazı tipi-kilit-varsayılanlarını kullanarak, sanırım gerçekten SMIE bile değil). Bazı gerçek bebek adımlarına ihtiyacım var.
lisp/progmodes/sh-script.el
gibi görünüyor fark ettim smie.el
. Ayrıca kullanımlarını belgeliyor gibi görünüyorlar, belki bu daha iyi bir örnek olabilir mi?