diff options
| author | StrawberryTea <look@strawberrytea.xyz> | 2024-01-06 04:30:30 -0600 |
|---|---|---|
| committer | Wilfred Hughes <me@wilfred.me.uk> | 2024-06-13 08:23:51 -0700 |
| commit | 4ba24cac9fb14d5fdc32582cd947572040e82b2c (patch) | |
| tree | 3f54afcec09de00603ac875ada0d928a252f7fdf | |
| parent | a835b7ec59004a13f4a09ff127a785a92b957e8f (diff) | |
Fix scan-sexps error for C-defined variables
| -rw-r--r-- | helpful.el | 5 | ||||
| -rw-r--r-- | test/helpful-unit-test.el | 6 |
2 files changed, 10 insertions, 1 deletions
@@ -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 index 0716b0d..26c5077 100644 --- 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)) |
