turn-on-rdebug-track-mode показывает неверный номер строки в emacs
Я отлаживаю довольно большой проект rails, и я нашел библиотеку rdebug для emacs, которая очень помогает. Однако одно раздражение вызывает указатель в источнике, показывающий неправильную строку. В приведенном ниже примере код выполняет строку #277 (как показано на левом терминале), но указатель в коде находится на следующей строке (показано на правом терминале).
У кого-нибудь есть идеи как отследить эту ошибку? Я думаю, что это в пакете ruby-debug-extras, но я не взломал emacs, поэтому я даже не знаю правильного списка рассылки, чтобы сообщить об этой ошибке.
1 ответ
Я не могу утверждать, что особенно хорошо понимаю функции elisp или emacs, но у меня была та же проблема (и некоторые другие проблемы), и я решил взломать этот коммит моего форка ruby-debug-extra. Патч просто корректирует lineno
переменная по одному:
--- a/emacs/rdebug-track.el
+++ b/emacs/rdebug-track.el
@@ -212,8 +212,8 @@ problem as best as we can determine."
"line number cue not found"
;;else
(let* ((filename (match-string rdebug-marker-regexp-file-group block-str))
- (lineno (string-to-number
- (match-string rdebug-marker-regexp-line-group block-str)))
+ (lineno (- (string-to-number
+ (match-string rdebug-marker-regexp-line-group block-str)) 1))