Я получаю up-list: Scan error: "Unbalanced parentheses"
от этой позиции:Emacs: bulletproof up-list?
(foo "bar|")
Отрывок из up-list
документ:
Эта команда предполагает, что точка не находится в строке или комментарий.
Так что это ожидаемое поведение. Но мне все равно. Я просто хочу подняться из списка. Может ли кто-нибудь предложить клон up-list
, который делает правильную вещь?
Я ищу что-то лучше, чем этот наивный код:
(defun up-list-naive()
(interactive)
(while (not (ignore-errors (up-list) t))
(forward-char)))
Спасибо, @Tyler, но ваш код выглядит для меня наивным, как моя: синтаксического анализа, переместите один символ, разобрать, переместить один символ .... Я ищу что-то, что анализирует только один раз. –
Я не думаю, что это возможно. Я не могу найти ни одной функции, которая делает то, что вы хотите, не пройдя через цитату. См. Например, код в https://github.com/magnars/expand-region.el/blob/master/er-basic-expansions.el строке 116 и далее (;; Цитаты) – Tyler
Если (nth 3 (синтаксис-ppss)) является истинным, существует начальная позиция в (nth 8 (синтаксис-pps). Нет необходимости «в то время», прыгать напрямую. Кстати, это своего рода долгожданные ошибки, см. также http://debbugs.gnu.org/cgi/ bugreport.cgi? bug = 3416 –