- (case command
- ('interactive (company-begin-backend 'company-gtags))
- ('prefix (and company-gtags-executable
- (memq major-mode company-gtags-modes)
- (not (company-in-string-or-comment))
- (or (company-grab-symbol) 'stop)))
- ('candidates (company-gtags-fetch-tags arg))
- ('sorted t)
- ('location (company-gtags-location arg))))
+ (cl-case command
+ (interactive (company-begin-backend 'company-gtags))
+ (prefix (and company-gtags-executable
+ buffer-file-name
+ (apply #'derived-mode-p company-gtags-modes)
+ (not (company-in-string-or-comment))
+ (company-gtags--tags-available-p)
+ (or (company-grab-symbol) 'stop)))
+ (candidates (company-gtags--fetch-tags arg))
+ (sorted t)
+ (duplicates t)
+ (annotation (company-gtags--annotation arg))
+ (meta (get-text-property 0 'meta arg))
+ (location (get-text-property 0 'location arg))
+ (post-completion (let ((anno (company-gtags--annotation arg)))
+ (when (and company-gtags-insert-arguments anno)
+ (insert anno)
+ (company-template-c-like-templatify anno))))))