ฉันใช้เวลาหลายชั่วโมงหลายชั่วโมงพยายามที่จะทำให้การเยื้องของ SMIE / ไวยากรณ์ / สิ่งต่าง ๆ ทำงานได้
มีตัวอย่างของโหมด SMIE ขนาดเล็กของเล่นหรือโครงกระดูกที่มีเอกสารประกอบเกี่ยวกับวิธีการใช้งานจริงหรือการอภิปรายใด ๆ เกี่ยวกับวิธีการใช้งานหรือไม่? สิ่งที่พูดกำหนดนิพจน์เป็นสตริงของโทเค็นที่ลงท้ายด้วยเซมิโคลอนและบล็อกเป็นนิพจน์บางอย่างระหว่างวงเล็บและไม่มีอะไรอื่น ง่ายจริงๆเหรอ?
คำถามเฉพาะเมื่อใช้ smie-config-show-indent 90% ของเวลาที่ฉันได้รับการตอบสนอง ': list-intro "" -> ไม่มี' list-intro อ้างอิงตามคำจำกัดความของนิพจน์หรือรายการของนิพจน์อะไร ทำไมมันบอกว่าไม่มีและยังคงเยื้องบรรทัดต่อไปนี้? ฉันจะเปลี่ยนได้อย่างไร
ประการที่สอง: มีความสัมพันธ์ใด ๆ ระหว่างไวยากรณ์และกฎระเบียบ smie ของฉันหรือไม่ ฉันคิดว่ามีเพราะทั้งคู่ผ่านเข้าไปใน smie-setup แต่ฉันไม่สามารถหาวิธีพูดว่า "เมื่อคุณเห็น 'บล็อก' เยื้องเนื้อหา 'ตัวอย่างเช่นอิงตามไวยากรณ์ที่ระบุบล็อก .
ประการที่สาม SMIE ดูเหมือนจะมีกฎมากมาย "อบใน" เพียงแค่เตะมันออกไปจะช่วยให้สามารถจัดการกับวงเล็บ, วงเล็บปีกกาและวงเล็บโดยทั่วไป มีวิธีใดบ้างที่จะเห็นกฎเหล่านี้หรือแก้ไขมัน? หรือว่าตารางไวยากรณ์กำลังทำสิ่งนี้ทั้งหมดและ SMIE ไม่ได้ทำอะไรเลย (ซึ่งฉันเริ่มสงสัย)
ในที่สุดเมื่อพยายามที่จะแก้ปัญหา SMIE ฉันพยายามที่จะ "แก้ไข, โหมดบัฟเฟอร์ eval ไปที่ตัวอย่างรหัสในบัฟเฟอร์อื่น ๆ MX <โหมดของฉัน> ทดสอบ" วงจร แต่ดูเหมือนว่าการเดินทางแต่ละรอบไม่ได้ล้างกฎจาก รอบก่อนหน้า ฉันจะแน่ใจได้อย่างไรว่าโหมด define-coming-mode เริ่มต้นจากคลีนชีต? ฉันมี (kill-all-local-variables) ในนั้น แต่ดูเหมือนจะไม่เพียงพอและท้ายที่สุดฉันต้องปิด emacs
ฉันไม่ได้โพสต์ตัวอย่างใด ๆ ของสิ่งที่ฉันมีเพราะฉันไม่มีสิ่งใดที่แม้แต่คลุมเครือนอกเหนือจากการไฮไลต์ (โดยใช้ฟอนต์ล็อคแบบปริยายดังนั้นจึงไม่ใช่ SMIE ที่ฉันเดาจริงๆ) ฉันต้องการขั้นตอนทารกจริง ๆ
lisp/progmodes/sh-script.el
ดูเหมือนจะใช้smie.el
อย่างกว้างขวาง พวกเขาดูเหมือนจะบันทึกการใช้งานของพวกเขาด้วยบางทีนี่อาจเป็นตัวอย่างที่ดีกว่า?