diff --git a/lib/App/Controller/Paste.pm b/lib/App/Controller/Paste.pm index eddeac9..680429d 100644 --- a/lib/App/Controller/Paste.pm +++ b/lib/App/Controller/Paste.pm @@ -91,6 +91,7 @@ sub get_paste { $c->stash({page_tmpl => 'viewer.html'}); $c->stash({paste_id => $pasteid}); $c->stash({eval => $evalout}); + $c->stash({perl_sort_versions => \&{$c->languages->perl_sort_versions}}); $c->render('page'); }); diff --git a/lib/App/Model/Languages.pm b/lib/App/Model/Languages.pm index fd2d674..9332fc1 100644 --- a/lib/App/Model/Languages.pm +++ b/lib/App/Model/Languages.pm @@ -31,6 +31,13 @@ my @langs = ( ); +# Add a sorting rank to each language +for my $i (0..$#langs) { + my $r = $i; + $r = -1 if ($langs[$i]{name} eq 'perl'); # specially handle blead as being top dog + $langs[$i]{rank} = $r; +} + my %langs = ( map {$_->{name} => $_} @langs, ); @@ -49,4 +56,8 @@ sub get_languages { return \@langs } +sub perl_sort_languages { + return sort {$langs{$a}//0 <=> $langs{$b}//0} @_; +} + 1; diff --git a/templates/editor.html b/templates/editor.html index 49374fe..fb4166b 100755 --- a/templates/editor.html +++ b/templates/editor.html @@ -210,7 +210,7 @@ //safely delete all bindings var save_keys={}; - Object.keys(editor.keyBinding.$defaultHandler.commandKeyBinding)\ + Object.keys(editor.keyBinding.$defaultHandler.commandKeyBinding) .filter((value) => value.match(/(?:(?:backspac|hom)e|d(?:elete|own)|(?:righ|lef)t|end|up)/)) .forEach((key) => save[key] = editor.keyBinding.$defaultHandler.commandKeyBinding[key]); diff --git a/templates/viewer.html b/templates/viewer.html index e05f67e..60f13f8 100755 --- a/templates/viewer.html +++ b/templates/viewer.html @@ -87,7 +87,7 @@
- [% FOR lang IN eval.keys.sort %] + [% FOR lang IN perl_sort_versions(eval.keys) %] [% END %]
LanguageOutput
[% lang %]
[% eval.$lang | html %]