Wilfred / elisp-refs

semantic code search for emacs lisp
117 stars 18 forks source link

Accessing the last character in a result line can crash #3

Open Wilfred opened 7 years ago

Wilfred commented 7 years ago

Traceback:

Debugger entered--Lisp error: (wrong-type-argument number-or-marker-p nil)
  +(33 nil)
  (let* ((path (get-text-property (point) (quote elisp-refs-path))) (pos (get-text-property (point) (quote elisp-refs-start-pos))) (unindent (get-text-property (point) (quote elisp-refs-unindented))) (column-offset (current-column)) (target-offset (+ column-offset unindent)) (line-offset -1)) (if (null path) (progn (user-error "No match here"))) (save-excursion (while (equal pos (get-text-property (point) (quote elisp-refs-start-pos))) (forward-line -1) (setq line-offset (1+ line-offset)))) (find-file path) (goto-char pos) (forward-line line-offset) (beginning-of-line) (let ((i 0)) (while (< i target-offset) (if (looking-at "   ") (setq i (+ i tab-width)) (setq i (1+ i))) (forward-char 1))))
  elisp-refs-visit-match()
  funcall-interactively(elisp-refs-visit-match)
  call-interactively(elisp-refs-visit-match nil nil)
  command-execute(elisp-refs-visit-match)

This seems to only occur when the last character in the line is not part of the highlighted sexp, e.g. (searching-for-this-func 1 2))))

Wilfred commented 7 years ago

This is particularly noticeable with elisp-refs-symbol.