На каком языке (julia) есть блоки, определяемые ключевыми словами, такими как for..end
, begin..end
а также круглые скобки, как можно пропустить такой блок? Кроме того, end
это не только ключевое слово блока, но и действительный идентификатор, используемый в других местах.
Один из способов - найти регулярное выражение для начала / закрытия блока и пропустить все строки, комментарии, и end
т. Д., Но это несколько неэффективно и немного уродливо.
Есть ли способ заставить собственный синтаксический анализ в emacs распознавать такие ключевые слова блока, чтобы forward/backward-sexp
он работал автоматически и чтобы можно было быстро отличить начало текущего блока от вывода, например syntax-ppss
,?
[Примечание: я не против разбора файла сам, но в этом случае я все еще хотел бы знать, как мой синтаксический анализатор должен быть подключен к остальной части emacs.]
ruby-mode
что-то похожее на ruby. Другой вариант - подключиться к smartparens , он имеет специальную конфигурацию для режима ruby, которую вы можете использовать в качестве отправной точки