- (let ((predicate (company-elisp-candidates-predicate prefix)))
- (append (company-elisp-locals prefix (eq predicate 'fboundp))
- (company-elisp-globals prefix predicate))))
-
-(defun company-elisp-globals (prefix predicate)
+ (let* ((predicate (company-elisp--candidates-predicate prefix))
+ (locals (company-elisp--locals prefix (eq predicate 'fboundp)))
+ (globals (company-elisp--globals prefix predicate))
+ (locals (cl-loop for local in locals
+ when (not (member local globals))
+ collect local)))
+ (if company-elisp-show-locals-first
+ (append (sort locals 'string<)
+ (sort globals 'string<))
+ (append locals globals))))
+
+(defun company-elisp--globals (prefix predicate)