У мові (julia), яка містить блоки, визначені ключовими словами, такими як for..end
, begin..end
а також дужки, який хороший спосіб пропустити такий блок? Крім того, end
це не лише ключове слово, але і дійсний ідентифікатор, який використовується в інших місцях.
Один із способів - шукати регулярно-стартовий / закриваючий регулярний вираз і пропускати всі рядки, коментарі та end
s тощо, але це дещо неефективно і трохи некрасиво.
Чи є спосіб зробити власний аналіз синтаксису emacs розпізнавати такі ключові слова блоку, щоб forward/backward-sexp
вони автоматично працювали, і щоб можна було швидко повідомити початок поточного блоку з виводу, наприклад syntax-ppss
,?
[Примітка. Я не проти сам розібрати файл, але в цьому випадку я все-таки хотів би знати, як мій аналізатор повинен бути підключений до решти emacs.]
ruby-mode
що робить щось подібне для рубіну. Інший варіант - підключитись до smartparens , він має спеціальну конфігурацію для режиму рубіну, яку можна використовувати як вихідну точку