diff options
| -rw-r--r-- | elisp/geiser-autodoc.el | 15 | ||||
| -rw-r--r-- | elisp/geiser-syntax.el | 6 | 
2 files changed, 15 insertions, 6 deletions
| diff --git a/elisp/geiser-autodoc.el b/elisp/geiser-autodoc.el index f4ffbae..da635cb 100644 --- a/elisp/geiser-autodoc.el +++ b/elisp/geiser-autodoc.el @@ -50,6 +50,10 @@    'font-lock-keyword-face    geiser-autodoc "highlighting #:opt marker in autodoc messages") +(geiser-custom--defface autodoc-key-arg-marker +  'font-lock-keyword-face +  geiser-autodoc "highlighting #:key marker in autodoc messages") +  (defcustom geiser-autodoc-delay 0.2    "Delay before autodoc messages are fetched and displayed, in seconds."    :type 'number @@ -94,10 +98,13 @@ when `geiser-autodoc-display-module-p' is on."  (defun geiser-autodoc--insert-arg (arg current pos)    (let ((p (point))          (str (format "%s" (if (eq arg '\#:rest) "." arg))) -        (face (or (and (eq '\#:opt arg) -                       'geiser-font-lock-autodoc-optional-arg-marker) -                  (and (= current pos) -                       'geiser-font-lock-autodoc-current-arg)))) +        (face (cond ((eq '\#:opt arg) +                     'geiser-font-lock-autodoc-optional-arg-marker) +                    ((eq '\#:key arg) +                     'geiser-font-lock-autodoc-key-arg-marker) +                    ((= current pos) +                     'geiser-font-lock-autodoc-current-arg) +                    (t nil))))      (insert str)      (when (listp arg)        (save-excursion diff --git a/elisp/geiser-syntax.el b/elisp/geiser-syntax.el index 01dd151..f0148e2 100644 --- a/elisp/geiser-syntax.el +++ b/elisp/geiser-syntax.el @@ -76,6 +76,8 @@      (forward-sexp arg)      (delete-region p (point)))) +(defconst geiser-syntax--placeholder (format "___%s___" (random 100))) +  (defun geiser-syntax--complete-partial-sexp (buffer begin end)    (geiser-syntax--with-buffer      (erase-buffer) @@ -87,14 +89,14 @@        (when p ;; inside a comment or string          (let ((str (nth 3 (syntax-ppss))))            (delete-region p (point-max)) -          (when str (insert "XXXpointXXX"))))) +          (when str (insert geiser-syntax--placeholder)))))      (when (cond ((eq (char-after (1- (point))) ?\)) (geiser-syntax--del-sexp -1) t)                  ((eq (char-after (point)) ?\() (delete-region (point) (point-max)) t)                  ((memq (char-after (1- (point))) (list ?. ?@ ?, ?\' ?\` ?\# ?\\))                   (skip-syntax-backward "^-(")                   (delete-region (point) (point-max))                   t)) -      (insert "XXXpointXX")) +      (insert geiser-syntax--placeholder))      (let ((depth (nth 0 (parse-partial-sexp (point-min) (point)))))        (unless (zerop depth) (insert (make-string depth ?\)))))      (when (< (point-min) (point)) | 
