Skip to content

Completion after a close paren signals an error. #1540

@Malabarba

Description

@Malabarba

If I place point after (inc 1), and try to trigger completion (tab, in my case) I get the following error.

Debugger entered--Lisp error: (error "Marker does not point anywhere")
  completion-in-region(#<marker in no buffer> nil #[771 "\211\242\302=\206\n�\211\303=?\2053�r\301\204��p\202(�\304 \305�!\203%�\306�!\202&�p\262�q\210\307�\300�!��$)\207" [cider-complete nil boundaries metadata minibuffer-selected-window window-live-p window-buffer complete-with-action] 8 "\n\n(fn STRING PRED ACTION)"] nil)
  completion-at-point()
  indent-for-tab-command(nil)
  funcall-interactively(indent-for-tab-command nil)
  call-interactively(indent-for-tab-command nil nil)
  command-execute(indent-for-tab-command)

It seems to me this is because the following form inside the completion-at-point function

(run-hook-wrapped 'completion-at-point-functions
                  #'completion--capf-wrapper 'all)

returns a value like this (cider-complete-at-point nil nil ...). The elements 1 and 2 on this list are nil, but Emacs expects them to be integers or markers, and so the error is signaled.
IIRC, in a situation where CIDER can't do completion, then it should simply return nil, instead of returning an invalid list.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions