From eda610de4c00b648c5e2713838654600e546b481 Mon Sep 17 00:00:00 2001 From: Jose Antonio Ortega Ruiz Date: Mon, 9 Feb 2009 12:14:04 +0100 Subject: Better argument position detection in autodoc. --- elisp/geiser-syntax.el | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'elisp/geiser-syntax.el') diff --git a/elisp/geiser-syntax.el b/elisp/geiser-syntax.el index 07aafbb..9a476ce 100644 --- a/elisp/geiser-syntax.el +++ b/elisp/geiser-syntax.el @@ -52,14 +52,20 @@ ;;; Code parsing: +(defsubst geiser-syntax--end-of-thing () + (let ((sc (syntax-class (syntax-after (point))))) + (when (= sc 7) (forward-char)) + (cond ((nth 3 (syntax-ppss)) + (skip-syntax-forward "^\"") + (forward-char)) + ((= sc 5) (forward-char)) + ((not (or (= sc 0) (= sc 12))) ;; comment, whitespace + (ignore-errors (forward-sexp)))) + (point))) + (defun geiser-syntax--enclosing-form-data () (save-excursion - (let ((p (progn (ignore-errors - (unless (zerop (car (syntax-after (point)))) - (forward-sexp) - (when (= 7 (car (syntax-after (point)))) - (forward-char)))) - (point))) + (let ((p (geiser-syntax--end-of-thing)) (arg-no 0) (proc)) (condition-case nil -- cgit v1.2.3