diff options
Diffstat (limited to 'elisp')
-rw-r--r-- | elisp/geiser-chicken.el | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/elisp/geiser-chicken.el b/elisp/geiser-chicken.el index 88d60cf..0d9c8e7 100644 --- a/elisp/geiser-chicken.el +++ b/elisp/geiser-chicken.el @@ -67,7 +67,7 @@ (geiser-custom--defcustom geiser-chicken-prefix-delimiters '("^:" "^#") - "Regex to match symbol prefix delimiters." + "Regex to match symbol prefix delimiters. Consider that it will be placed inside []." :type '(repeat string) :group 'geiser-chicken) @@ -189,16 +189,18 @@ This function uses `geiser-chicken-init-file' if it exists." (defun geiser-chicken--exit-command () ",q") (defun geiser-chicken--symbol-begin (module) - (let ((distance-to-beginning-of-line (- (point) (line-beginning-position)))) - (apply - 'max - (append - (list (save-excursion (skip-syntax-backward "^'(>" distance-to-beginning-of-line) - (point))) + (apply + 'max + (cons + (if module + (max (save-excursion (beginning-of-line) (point)) + (save-excursion (skip-syntax-backward "^(>") (1- (point)))) + (save-excursion (skip-syntax-backward "^'-()>") (point))) + (let ((distance-to-beginning-of-line (- (point) (line-beginning-position)))) (mapcar (lambda (match-string) - (save-excursion (skip-chars-backward match-string distance-to-beginning-of-line) - (point))) + (save-excursion + (skip-chars-backward match-string distance-to-beginning-of-line) (point))) geiser-chicken-prefix-delimiters))))) |