commit 4ba24cac9fb14d5fdc32582cd947572040e82b2c parent a835b7ec59004a13f4a09ff127a785a92b957e8f Author: StrawberryTea <look@strawberrytea.xyz> Date: Sat, 6 Jan 2024 04:30:30 -0600 Fix scan-sexps error for C-defined variables Diffstat:
| M | helpful.el | | | 5 | ++++- |
| M | test/helpful-unit-test.el | | | 6 | ++++++ |
2 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/helpful.el b/helpful.el @@ -1259,7 +1259,10 @@ If the source code cannot be found, return the sexp used." ;; function. (progn (setq pos (line-beginning-position)) - (forward-list) + ;; HACK Use the elisp syntax table even though the file is a + ;; C file. This is a temporary workaround for issue #329. + (with-syntax-table emacs-lisp-mode-syntax-table + (forward-list)) (forward-char) (narrow-to-region pos (point))) ;; Narrow to the top-level definition. diff --git a/test/helpful-unit-test.el b/test/helpful-unit-test.el @@ -782,6 +782,12 @@ in." (should (s-starts-with-p "(defun " source)))) +(ert-deftest helpful--source-c-fn () + (-let* (((buf pos _opened) (helpful--definition 'mode-line-format nil)) + (source (helpful--source 'mode-line-format nil buf pos))) + (should + (s-starts-with-p "DEFVAR" (s-trim-left source))))) + (ert-deftest helpful--source-autoloaded () "We should include the autoload cookie." (-let* (((buf pos _opened) (helpful--definition #'helpful-at-point t))