X-Git-Url: https://code.delx.au/gnu-emacs-elpa/blobdiff_plain/724e6dda0741ce0ed3581691c46b348e837e937d..7d2d49bea57acd8f9ea07a8286144ee3ae1110c8:/company.el diff --git a/company.el b/company.el index 51aad7be4..9756402ec 100644 --- a/company.el +++ b/company.el @@ -432,7 +432,8 @@ Asynchronous backends The return value of each command can also be a cons (:async . FETCHER) where FETCHER is a function of one argument, CALLBACK. When the data arrives, FETCHER must call CALLBACK and pass it the appropriate return -value, as described above. +value, as described above. That call must happen in the same buffer as +where completion was initiated. True asynchronous operation is only supported for command `candidates', and only during idle completion. Other commands will block the user interface, @@ -832,7 +833,8 @@ means that `company-mode' is always turned on except in `message-mode' buffers." If EXPRESSION is non-nil, return the match string for the respective parenthesized expression in REGEXP. Matching is limited to the current line." - (company-grab regexp expression (point-at-bol))) + (let ((inhibit-field-text-motion t)) + (company-grab regexp expression (point-at-bol)))) (defun company-grab-symbol () "If point is at the end of a symbol, return it. @@ -854,7 +856,7 @@ Otherwise, if point is not inside a symbol, return an empty string." (defun company-grab-symbol-cons (idle-begin-after-re &optional max-len) "Return a string SYMBOL or a cons (SYMBOL . t). -SYMBOL is as returned by `company-grab-symbol'. If the text before poit +SYMBOL is as returned by `company-grab-symbol'. If the text before point matches IDLE-BEGIN-AFTER-RE, return it wrapped in a cons." (let ((symbol (company-grab-symbol))) (when symbol @@ -1164,10 +1166,11 @@ can retrieve meta-data for them." t)))) (defun company--fetch-candidates (prefix) - (let ((c (if company--manual-action - (company-call-backend 'candidates prefix) - (company-call-backend-raw 'candidates prefix))) - res) + (let* ((non-essential (not (company-explicit-action-p))) + (c (if company--manual-action + (company-call-backend 'candidates prefix) + (company-call-backend-raw 'candidates prefix))) + res) (if (not (eq (car c) :async)) c (let ((buf (current-buffer))