Add category map support

Maps from templates to categories - should help reduce trigger
redundancy.
master
Ben Moon 2016-02-14 14:52:03 +00:00
parent 982295cfb6
commit 4b4c2a1740
2 changed files with 46 additions and 1 deletions

View File

@ -99,6 +99,13 @@ sub make_all_triggers {
}
# Parse the category map defined in 'categories.json'.
sub get_category_map {
my $categories_json = share('categories.json')->slurp();
my $categories = decode_json($categories_json);
return $categories;
}
sub get_aliases {
my @files = File::Find::Rule->file()
->name("*.json")
@ -137,6 +144,8 @@ sub get_aliases {
my $aliases = get_aliases();
my $category_map = get_category_map();
my ($trigger_lookup, $cheat_triggers) = generate_triggers($aliases);
triggers any => @{$cheat_triggers->{any}}
@ -159,7 +168,11 @@ sub cheat_sheet_name_from_id {
sub supported_categories {
my $data = shift;
my $template_type = $data->{template_type};
my @categories = ("standard", $data->{template_type});
my @additional_categories = @{$data->{categories}}
if defined $data->{categories};
my %categories = %{$category_map->{$template_type}};
my @categories = (@additional_categories,
grep { $categories{$_} } (keys %categories));
return @categories;
}

View File

@ -0,0 +1,32 @@
{
"keyboard": {
"keyboard": 1,
"reference": 1,
"standard": 1
},
"reference": {
"reference": 1,
"standard": 1
},
"terminal": {
"terminal": 1,
"standard": 1
},
"language": {
"language": 1,
"standard": 1
},
"code": {
"code": 1,
"reference": 1,
"standard": 1
},
"math": {
"math": 1,
"standard": 1
},
"links": {
"links": 1,
"standard": 1
}
}