cmd/cmd_catalog: use filter
authorAlexandre Terrasa <alexandre@moz-code.org>
Tue, 15 May 2018 16:51:10 +0000 (12:51 -0400)
committerAlexandre Terrasa <alexandre@moz-code.org>
Thu, 14 Jun 2018 20:33:09 +0000 (16:33 -0400)
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>

src/doc/commands/commands_catalog.nit

index 0bfe6ab..90f631a 100644 (file)
@@ -44,10 +44,11 @@ class CmdCatalogSearch
                if query == null then return new ErrorNoQuery
                sorter = null
 
+               var filter = self.filter
                var index = model.index
 
                # lookup by name prefix
-               var matches = index.find_by_name_prefix(query).uniq.
+               var matches = index.find_by_name_prefix(query, filter).uniq.
                        sort(lname_sorter, name_sorter, kind_sorter)
                matches = matches.rerank.sort(vis_sorter, score_sorter)
 
@@ -55,6 +56,7 @@ class CmdCatalogSearch
                var malus = matches.length
                if catalog.tag2proj.has_key(query) then
                        for mpackage in catalog.tag2proj[query] do
+                               if filter != null and not filter.accept_mentity(mpackage) then continue
                                matches.add new IndexMatch(mpackage, malus)
                                malus += 1
                        end
@@ -64,7 +66,7 @@ class CmdCatalogSearch
                # lookup by full_name prefix
                malus = matches.length
                var full_matches = new IndexMatches
-               for match in index.find_by_full_name_prefix(query).
+               for match in index.find_by_full_name_prefix(query, filter).
                        sort(lfname_sorter, fname_sorter) do
                        match.score += 1
                        full_matches.add match
@@ -74,7 +76,7 @@ class CmdCatalogSearch
                # lookup by similarity
                malus = matches.length
                var sim_matches = new IndexMatches
-               for match in index.find_by_similarity(query).sort(score_sorter, lname_sorter, name_sorter) do
+               for match in index.find_by_similarity(query, filter).sort(score_sorter, kind_sorter, lname_sorter, name_sorter) do
                        if match.score > query.length then break
                        match.score += 1
                        sim_matches.add match