;; matches, so the longest prefix with any matches should be the most useful.
(cl-loop with tables = (yas--get-snippet-tables)
for key-prefix in (company-yasnippet--key-prefixes)
+ ;; Only consider keys at least as long as the symbol at point.
+ when (>= (length key-prefix) (length prefix))
thereis (company-yasnippet--completions-for-prefix prefix
key-prefix
tables)))
(maphash
(lambda (name template)
(push
- (propertize (company-yasnippet--adjust-key key prefix key-prefix)
+ (propertize key
'yas-annotation name
'yas-template template
'yas-prefix-offset (- (length key-prefix)
res))
tables))
-(defun company-yasnippet--adjust-key (key prefix key-prefix)
- (let ((pl (length prefix))
- (kpl (length key-prefix)))
- (cond
- ((= pl kpl)
- key)
- ((> pl kpl)
- (concat (substring prefix 0 (- pl kpl)) key))
- (t
- (substring key (- kpl pl))))))
-
;;;###autoload
(defun company-yasnippet (command &optional arg &rest ignore)
"`company-mode' backend for `yasnippet'.
(unless company-tooltip-align-annotations " -> ")
(get-text-property 0 'yas-annotation arg)))
(candidates (company-yasnippet--candidates arg))
+ (no-cache t)
(post-completion
(let ((template (get-text-property 0 'yas-template arg))
(prefix-offset (get-text-property 0 'yas-prefix-offset arg)))