From e6c5b821b1c13ec0125e2a305f121e763a79ddfc Mon Sep 17 00:00:00 2001 From: Artur Malabarba Date: Sun, 4 Jan 2015 13:16:42 -0200 Subject: sx-tag--get-all also retrieves synonyms --- sx-tag.el | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) (limited to 'sx-tag.el') diff --git a/sx-tag.el b/sx-tag.el index 07b7a77..8c468a6 100644 --- a/sx-tag.el +++ b/sx-tag.el @@ -28,18 +28,24 @@ ;;; Getting the list from a site (defvar sx-tag-filter (sx-filter-from-nil - (tag.name)) + (tag.name + tag.synonyms)) "Filter used when querying tags.") -(defun sx-tag--get-all (site) - "Retrieve all tags for SITE." - (mapcar - (lambda (tag) - (cdr (assoc 'name tag))) +(defun sx-tag--get-all (site &optional no-synonyms) + "Retrieve all tags for SITE. +If NO-SYNONYMS is non-nil, don't return synonyms." + (cl-reduce + (lambda (so-far tag) + (let-alist tag + (cons .name + (if no-synonyms so-far + (append .synonyms so-far))))) (sx-method-call 'tags :get-all t :filter sx-tag-filter - :site site))) + :site site) + :initial-value nil)) (defun sx-tag--get-some-tags-containing (site string) "Return at most 100 tags for SITE containing STRING. -- cgit v1.2.3