[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Error in post-command-hook (completion-in-region--postch): (wrong-type-a

From: Tassilo Horn
Subject: Error in post-command-hook (completion-in-region--postch): (wrong-type-argument stringp nil)
Date: Fri, 24 Aug 2012 10:25:37 +0200
User-agent: Gnus/5.130006 (Ma Gnus v0.6) Emacs/24.2.50 (gnu/linux)

Hi all,

I'm writing a completion at point function for nREPL (which is about the
same as SLIME/Swank is for Common Lisp).  However, if my function is in
`completion-at-point-functions' I frequently get the error in the
subject, and as a annoying result `completion-in-region-mode' isn't
toggled off anymore.

I've read the docs about completion at point several times, and my
function looks good to me.  It'll always return


with valid positions and the completions really being strings, or nil if
there's no possible completion.

--8<---------------cut here---------------start------------->8---
(defun nrepl-complete-at-point ()
  (let ((sap (symbol-at-point)))
    (when (and sap (not (in-string-p)))
      (nrepl-send-string "(require 'complete.core)" "user" 'identity)
      (let ((form (format "(complete.core/completions \"%s\" *ns*)" sap))
            (bounds (bounds-of-thing-at-point 'symbol)))
        (let ((completions (car (read-from-string
                                 (plist-get (nrepl-send-string-sync form 
          (when completions
            ;; TODO: Remove me again!
            (assert (null (remove-if 'stringp completions)))
            (list (car bounds) (cdr bounds) completions)))))))
--8<---------------cut here---------------end--------------->8---

Looking at the definition of `completion-in-region--postch' the only
place where the error might be triggered is in the

  (funcall completion-in-region-mode--predicate)

line.  The value of that is

--8<---------------cut here---------------start------------->8---
completion-in-region-mode--predicate is a variable defined in `minibuffer.el'.
Its value is #[0 "\301 \242\300=\207"
    [9284 nrepl-complete-at-point]
    2 "\n\n(fn)"]
--8<---------------cut here---------------end--------------->8---

There are no other function in `completion-at-point-functions'.

I'm happy for any pointers!


reply via email to

[Prev in Thread] Current Thread [Next in Thread]